powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ошибка <STORE> при импорте xml в обьект
25 сообщений из 34, страница 1 из 2
ошибка <STORE> при импорте xml в обьект
    #38298345
login54
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Есть задача - импортировать xml файл в обьект, после сохранить обьект. На xml файлах размером меньше 1мб пользовался для этого %XML.Reader, когда файлы с той же структурой стали размером 13мб появилась ошибка "ERROR #5002: Cache error: <STORE>". Кто-нибудь сталкивался с подобным?
Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
ClassMethod LoadFileToDB(filename As %String = "")
{
 s xmlReader=##class(%XML.Reader).%New()
 w "open file"
 s sc= xmlReader.OpenFile(filename)
 d:$$$ISERR(sc) $System.Status.DisplayError(sc)
 q:$$$ISERR(sc) -1
 d xmlReader.CorrelateRoot("SP.Request")
 w !,"xmlReader.Next"
 d xmlReader.Next(.obj,.sc) 
 d:$$$ISERR(sc) $System.Status.DisplayError(sc) 
 q:$$$ISERR(sc) -1
 w !,"save obj"
 s sc= obj.%Save()
 d:$$$ISERR(sc) $System.Status.DisplayError(sc)
 q:$$$ISERR(sc) -1
}


в терминале:
>d ##class(SP.File).LoadFileToDB("E:\spfile_test3.xml")
open file
xmlReader.Next
ERROR #5002: Cache error: <STORE>XMLImportTrap+2^SP.Record.1
q:('sc) -1
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298381
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
login54 ,

bbsiz
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298393
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если кардинально не хватает памяти?
Есть способы загрузить XML без ручного распарсивания тегов?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298407
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.А если кардинально не хватает памяти?
Есть способы загрузить XML без ручного распарсивания тегов?на 2012.2 bbsiz уже почти не ограничен
а так наверно все зависит от того насколько большое описание одного объекта в этой XML, если один объект там занимает очень много то наверно тяжело будет.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298413
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. ,

%XML.Reader рассчитан на %RegisteredObject, который в памяти.Цитата из документации Note that the object instances created by %XML.Reader are not stored within the database; they are in-memory objects. If you want to store objects within the database, you must call the %Save() method (for persistent objects) or copy the relevant property values to a persistent object and save it.
источник Для загрузки XML в глобалы придётся использовать %XML.TextReader Блок А.Н.А если кардинально не хватает памяти?Докупить. Или чтобы один объект всё-таки помещался в доступную памяти.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298433
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitДля загрузки XML в глобалы придётся использовать %XML.TextReader
Собственно, весь вопрос заключается в том, чтобы этого избежать.

servitБлок А.Н.А если кардинально не хватает памяти?Докупить. Или чтобы один объект всё-таки помещался в доступную памяти.Объект находится в файле, повлиять на размер файла нет возможности.
bbsiz сейчас равен примерно 32000, что означает где-то 32 Мб. Увеличить до 48мб (или сколько там?) - совсем не кардинальное решение проблемы.

PS. Вообще завязка объектов IS на оперативную память практически исключает их использование при обработке данных. К сожалению.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298443
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.bbsiz сейчас равен примерно 32000, что означает где-то 32 Мб. Увеличить до 48мб (или сколько там?) - совсем не кардинальное решение проблемы.как то очень даже скромно, а сколько буфер глобалов тогда на этом сервере.
я думаю что при возможности использовать больше оперативной памяти, то лучше работать в ней.
лучше не использовать глобалы в качестве временных структур когда есть возможность работать с локальными переменными, в том числе и приватные глобалы (^||global), потому как работа с любыми глобалами в каше построена одинаково и работает медленнее чем с локалами.
так что для улучшения быстродействия стоит переходить на локалы.

и кстати на 2012.2 по умолчанию bbsiz 262Mb
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298540
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cache 2012.2.3.
Ради эксперимента попробовал в одном из реальных запросов к БД заменить самый нагруженный глобал на локальный массив. Размер массива оказался порядка 5MB - это немного, но по воспоминаниям в старых версиях Cache локальные массивы начинали проигрывать в скорости глобальным гораздо раньше.
Получил ускорение примерно в 10%. Мой тест был несколько искусственным, т.к. именно этот глобал как раз должен был остаться глобалом - я выбрал его лишь по причине наибольшей нагруженности, чтобы увидеть эффект. На совсем тупом тесте (for i=1:1:3000000 set glvn(i)=i) ускорение составило около 30%.
Вопрос: что реально можно делать с (быстрыми) локальными массивами? Работая с глобалами, программист хотя бы уверен, что у него не случится <STORE>. Здесь такая уверенность пропадает: когда-нибудь (как всегда, в самый неподходящий момент) 256MB может не хватить. Альтернатива: снять и этот предел, выставив 2TB, рискуя из-за чьей-то ошибки отправить в глубокий своп весь сервер - мне кажется, едва ли лучше.
Так что рисковать ли надёжностью работы ради эфемерного выигрыша 10% (и даже 30%) в скорости на отдельных участках кода - пусть каждый решает сам.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298546
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorкак то очень даже скромно, а сколько буфер глобалов тогда на этом сервере.
Скромно, но это вопрос к IS, почему они так сильно ограничивают память процесса. Буфер глобалов достаточный, но это к вопросу вряд ли относится.
На каше 2012 сейчас перейти нельзя. К тому же, опять не факт, что 256 мб хватит на все нужды. Т.е. это только откладывание проблемы, а не решение.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298548
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Maslov,

Именно так. К тому же, гораздо большее ускорение можно получить оптимизацией алгоритма.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298592
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо ещё учитывать, что в отличие от глобалов, локальные массивы организованы как trie-деревья (технические подробности, к сожалению, мне неизвестны). Поэтому расход памяти существенно выше. В тупом тесте на вставку 3000000 узлов размер глобала - 38MB, а локального массива ~ 92-98MB. Размер локального массива вычислял как разность $s до и после (получилось 98) и по разнице показаний top (столбец RES - получилось 92), так что показания более-менее сошлись.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38298619
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да насчет того что локальные массивы занимают больше чем тот же массив в глобале это мы знаем
наше приложение активно использует битовые массивы, объем одного массива пока может достигать до 30Mb, в некоторых случаях, например чтобы провести логическую операцию, будет существовать 3 таких одновременно и проводить все это в глобалах не очень быстро.
Конечно все зависит от приложения, но на данный момент у нас с переходом на 2012.2 и после проведенной оптимизации на большее использование локалов, скорость заметно улучшилась.
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318324
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.
Тоже возникла ошибка вида <Storage> - и тоже при выгрузке в XML.
Получается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? В разделе "Система > Конфигурация > Память и Старт Системы" пытался изменить настройку "Выделено памяти под кеш программ (МБ)", однако она меняется только для области %Sys(невозможно переключиться на требуемую область).
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318350
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegПриветствую.
Тоже возникла ошибка вида <Storage> - и тоже при выгрузке в XML.
Получается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? В разделе "Система > Конфигурация > Память и Старт Системы" пытался изменить настройку "Выделено памяти под кеш программ (МБ)", однако она меняется только для области %Sys(невозможно переключиться на требуемую область).
этот параметр был в разных местах в разных версиях,
на последних начиная с 2011 или 2012 версии, в Память и старт системы, но другой параметр это "Максимальный объем памяти в расчете на процесс "
на версии 2010 Конфигурация, Дополнительные настройки памяти - bbsiz
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318354
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegПолучается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? bbsiz
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318379
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitfeanorchegПолучается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? bbsiz

Спасибо, но ответа на вопрос так и не увидел. Если обращаться к bbsiz через портал управления, то как переключить ту область, которая нам нужна?

И если обращаться, как показано в ссылке выше, то что именно нужно писать? Это обращение через терминал? Нужно ли писать галки, проценты?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318427
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegСпасибо, но ответа на вопрос так и не увидел. Если обращаться к bbsiz через портал управления, то как переключить ту область, которая нам нужна?

И если обращаться, как показано в ссылке выше, то что именно нужно писать? Это обращение через терминал? Нужно ли писать галки, проценты?Для изменения через Портал не нужно менять никаких областей. Эти настройки действуют на все вновь запущенные процессы для любых областей.
По указанной же ссылке приводится описание параметра из файла cache.cpf , на что указывает вверху путь [Documentation] > [System References] > [Parameter File Reference] > [[config]] > [bbsiz]
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318502
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ох, изменял из портала, изменял из файлика cache.cpf - всё бес толку. Ошибка всё равно вылетает, несмотря ни на что... При том если выполнять ту же подпрограмму для выгрузки за один месяц - всё нормально работает при базовых настройках. При увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку... Перезагружаю после изменений каждый раз. В чём еще может быть проблема?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318503
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegПри увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку$zv ?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318506
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servitfeanorchegПри увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку$zv ?

Cache for Windows (x86-32) 2012.1 (Build 510U) Wed Nov 2 2011 18:44:24 EDT
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318568
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorcheg ,

К сожалению, в этой версии максимально допустимый предел памяти на процесс ~ 48Мб.
В версии 2012.2 его подняли до 2 Тб.
Чтобы удостовериться, что дело всё же в нехватке bbsize, посмотрите детали процесса (параметр Memory in Use) через Портал: Display Process Details

PS: попробуйте ещё увеличить gmheap и locksiz
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318612
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit feanorcheg ,

К сожалению, в этой версии максимально допустимый предел памяти на процесс ~ 48Мб.
В версии 2012.2 его подняли до 2 Тб.
Чтобы удостовериться, что дело всё же в нехватке bbsize, посмотрите детали процесса (параметр Memory in Use) через Портал: Display Process Details

PS: попробуйте ещё увеличить gmheap и locksiz

Подскажите пожалуйста, насколько трудоёмкой может быть задача обновления Cache до версии 2012? Или может быть есть какая-то утилита или на подобии?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318647
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegПодскажите пожалуйста, насколько трудоёмкой может быть задача обновления Cache до версии 2012?Достаточно следовать нехитрым инструкциям и пройтись по Caché 2012.2 Upgrade Checklist .
Очень желательно перед этим поэкспериментировать на тестовой машине: с той же 32-битной ОС и с тем же объёмом RAM.

PS: почему бы сразу не перейти на версию 2013.1.1 , которая буквально вчера вышла?
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318686
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

Ну надо с начальством обсудить - они олдфагеры=)

По поводу изменения файлика cache.cpf - увеличил bbsiz в три раза, и на смену ошибке <Store> пришла ошибка <No current object>. Странно, она не должна быть связана с памятью
...
Рейтинг: 0 / 0
ошибка <STORE> при импорте xml в обьект
    #38318719
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegПо поводу изменения файлика cache.cpf - увеличил bbsiz в три раза, и на смену ошибке <Store> пришла ошибка <No current object>.Это уже лучше, то есть увеличение bbsiz дало таки эффект.feanorchegСтранно, она не должна быть связана с памятьюВсё верно: <NO CURRENT OBJECT> (System Error Messages - K to O).
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ошибка <STORE> при импорте xml в обьект
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]