|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть задача - импортировать 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.
в терминале: >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 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 21:26 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 22:51 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
А если кардинально не хватает памяти? Есть способы загрузить XML без ручного распарсивания тегов? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 23:08 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Блок А.Н.А если кардинально не хватает памяти? Есть способы загрузить XML без ручного распарсивания тегов?на 2012.2 bbsiz уже почти не ограничен а так наверно все зависит от того насколько большое описание одного объекта в этой XML, если один объект там занимает очень много то наверно тяжело будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 23:35 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Блок А.Н. , %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 Блок А.Н.А если кардинально не хватает памяти?Докупить. Или чтобы один объект всё-таки помещался в доступную памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 23:46 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
servitДля загрузки XML в глобалы придётся использовать %XML.TextReader Собственно, весь вопрос заключается в том, чтобы этого избежать. servitБлок А.Н.А если кардинально не хватает памяти?Докупить. Или чтобы один объект всё-таки помещался в доступную памяти.Объект находится в файле, повлиять на размер файла нет возможности. bbsiz сейчас равен примерно 32000, что означает где-то 32 Мб. Увеличить до 48мб (или сколько там?) - совсем не кардинальное решение проблемы. PS. Вообще завязка объектов IS на оперативную память практически исключает их использование при обработке данных. К сожалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 00:14 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Блок А.Н.bbsiz сейчас равен примерно 32000, что означает где-то 32 Мб. Увеличить до 48мб (или сколько там?) - совсем не кардинальное решение проблемы.как то очень даже скромно, а сколько буфер глобалов тогда на этом сервере. я думаю что при возможности использовать больше оперативной памяти, то лучше работать в ней. лучше не использовать глобалы в качестве временных структур когда есть возможность работать с локальными переменными, в том числе и приватные глобалы (^||global), потому как работа с любыми глобалами в каше построена одинаково и работает медленнее чем с локалами. так что для улучшения быстродействия стоит переходить на локалы. и кстати на 2012.2 по умолчанию bbsiz 262Mb ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 00:23 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Cache 2012.2.3. Ради эксперимента попробовал в одном из реальных запросов к БД заменить самый нагруженный глобал на локальный массив. Размер массива оказался порядка 5MB - это немного, но по воспоминаниям в старых версиях Cache локальные массивы начинали проигрывать в скорости глобальным гораздо раньше. Получил ускорение примерно в 10%. Мой тест был несколько искусственным, т.к. именно этот глобал как раз должен был остаться глобалом - я выбрал его лишь по причине наибольшей нагруженности, чтобы увидеть эффект. На совсем тупом тесте (for i=1:1:3000000 set glvn(i)=i) ускорение составило около 30%. Вопрос: что реально можно делать с (быстрыми) локальными массивами? Работая с глобалами, программист хотя бы уверен, что у него не случится <STORE>. Здесь такая уверенность пропадает: когда-нибудь (как всегда, в самый неподходящий момент) 256MB может не хватить. Альтернатива: снять и этот предел, выставив 2TB, рискуя из-за чьей-то ошибки отправить в глубокий своп весь сервер - мне кажется, едва ли лучше. Так что рисковать ли надёжностью работы ради эфемерного выигрыша 10% (и даже 30%) в скорости на отдельных участках кода - пусть каждый решает сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 10:24 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
DAiMorкак то очень даже скромно, а сколько буфер глобалов тогда на этом сервере. Скромно, но это вопрос к IS, почему они так сильно ограничивают память процесса. Буфер глобалов достаточный, но это к вопросу вряд ли относится. На каше 2012 сейчас перейти нельзя. К тому же, опять не факт, что 256 мб хватит на все нужды. Т.е. это только откладывание проблемы, а не решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 11:14 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Alexey Maslov, Именно так. К тому же, гораздо большее ускорение можно получить оптимизацией алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 11:16 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Надо ещё учитывать, что в отличие от глобалов, локальные массивы организованы как trie-деревья (технические подробности, к сожалению, мне неизвестны). Поэтому расход памяти существенно выше. В тупом тесте на вставку 3000000 узлов размер глобала - 38MB, а локального массива ~ 92-98MB. Размер локального массива вычислял как разность $s до и после (получилось 98) и по разнице показаний top (столбец RES - получилось 92), так что показания более-менее сошлись. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 13:42 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Да насчет того что локальные массивы занимают больше чем тот же массив в глобале это мы знаем наше приложение активно использует битовые массивы, объем одного массива пока может достигать до 30Mb, в некоторых случаях, например чтобы провести логическую операцию, будет существовать 3 таких одновременно и проводить все это в глобалах не очень быстро. Конечно все зависит от приложения, но на данный момент у нас с переходом на 2012.2 и после проведенной оптимизации на большее использование локалов, скорость заметно улучшилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2013, 15:41 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Приветствую. Тоже возникла ошибка вида <Storage> - и тоже при выгрузке в XML. Получается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? В разделе "Система > Конфигурация > Память и Старт Системы" пытался изменить настройку "Выделено памяти под кеш программ (МБ)", однако она меняется только для области %Sys(невозможно переключиться на требуемую область). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 11:24 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegПриветствую. Тоже возникла ошибка вида <Storage> - и тоже при выгрузке в XML. Получается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? В разделе "Система > Конфигурация > Память и Старт Системы" пытался изменить настройку "Выделено памяти под кеш программ (МБ)", однако она меняется только для области %Sys(невозможно переключиться на требуемую область). этот параметр был в разных местах в разных версиях, на последних начиная с 2011 или 2012 версии, в Память и старт системы, но другой параметр это "Максимальный объем памяти в расчете на процесс " на версии 2010 Конфигурация, Дополнительные настройки памяти - bbsiz ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 11:35 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegПолучается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? bbsiz ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 11:37 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
servitfeanorchegПолучается, нам нужно увеличить размер глобали bbsiz? Как это сделать? Где именно искать её значение? bbsiz Спасибо, но ответа на вопрос так и не увидел. Если обращаться к bbsiz через портал управления, то как переключить ту область, которая нам нужна? И если обращаться, как показано в ссылке выше, то что именно нужно писать? Это обращение через терминал? Нужно ли писать галки, проценты? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 11:49 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegСпасибо, но ответа на вопрос так и не увидел. Если обращаться к bbsiz через портал управления, то как переключить ту область, которая нам нужна? И если обращаться, как показано в ссылке выше, то что именно нужно писать? Это обращение через терминал? Нужно ли писать галки, проценты?Для изменения через Портал не нужно менять никаких областей. Эти настройки действуют на все вновь запущенные процессы для любых областей. По указанной же ссылке приводится описание параметра из файла cache.cpf , на что указывает вверху путь [Documentation] > [System References] > [Parameter File Reference] > [[config]] > [bbsiz] ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:09 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
Ох, изменял из портала, изменял из файлика cache.cpf - всё бес толку. Ошибка всё равно вылетает, несмотря ни на что... При том если выполнять ту же подпрограмму для выгрузки за один месяц - всё нормально работает при базовых настройках. При увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку... Перезагружаю после изменений каждый раз. В чём еще может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:31 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegПри увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку$zv ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:32 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
servitfeanorchegПри увеличении срока до двух месяцев - сколько не увеличивай память, всё равно свалится на ошибку$zv ? Cache for Windows (x86-32) 2012.1 (Build 510U) Wed Nov 2 2011 18:44:24 EDT ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 12:35 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorcheg , К сожалению, в этой версии максимально допустимый предел памяти на процесс ~ 48Мб. В версии 2012.2 его подняли до 2 Тб. Чтобы удостовериться, что дело всё же в нехватке bbsize, посмотрите детали процесса (параметр Memory in Use) через Портал: Display Process Details PS: попробуйте ещё увеличить gmheap и locksiz ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 13:06 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
servit feanorcheg , К сожалению, в этой версии максимально допустимый предел памяти на процесс ~ 48Мб. В версии 2012.2 его подняли до 2 Тб. Чтобы удостовериться, что дело всё же в нехватке bbsize, посмотрите детали процесса (параметр Memory in Use) через Портал: Display Process Details PS: попробуйте ещё увеличить gmheap и locksiz Подскажите пожалуйста, насколько трудоёмкой может быть задача обновления Cache до версии 2012? Или может быть есть какая-то утилита или на подобии? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 13:27 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegПодскажите пожалуйста, насколько трудоёмкой может быть задача обновления Cache до версии 2012?Достаточно следовать нехитрым инструкциям и пройтись по Caché 2012.2 Upgrade Checklist . Очень желательно перед этим поэкспериментировать на тестовой машине: с той же 32-битной ОС и с тем же объёмом RAM. PS: почему бы сразу не перейти на версию 2013.1.1 , которая буквально вчера вышла? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 13:42 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
servit, Ну надо с начальством обсудить - они олдфагеры=) По поводу изменения файлика cache.cpf - увеличил bbsiz в три раза, и на смену ошибке <Store> пришла ошибка <No current object>. Странно, она не должна быть связана с памятью ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 13:59 |
|
ошибка <STORE> при импорте xml в обьект
|
|||
---|---|---|---|
#18+
feanorchegПо поводу изменения файлика cache.cpf - увеличил bbsiz в три раза, и на смену ошибке <Store> пришла ошибка <No current object>.Это уже лучше, то есть увеличение bbsiz дало таки эффект.feanorchegСтранно, она не должна быть связана с памятьюВсё верно: <NO CURRENT OBJECT> (System Error Messages - K to O). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2013, 14:09 |
|
|
start [/forum/topic.php?fid=39&msg=38318354&tid=1557115]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 267ms |
total: | 416ms |
0 / 0 |