Please, pay attention that now you are in public part of FAQ-Area. Register and find more FAQ-articles in Personal Cabinet.

FAQ#700319: Ошибка Stream Read Error или Out of Memory при возврате объекта в БД

Keywords: ошибка stream read error out memory variant array Created: 2008-05-14 08:15:15
Linked Articles: Changed: 2018-10-05 12:41:36

Problem:

При возврате объекта в БД возникает ошибка "Stream Read Error" или "Out of memory".
Объект в БД не возвращается.
Что делать и как вернуть объект в БД со всеми внесенными изменениями ?
Существует ли ограничение на размер сохраняемого файла?

Solution:


Ошибка Stream Read Error возникает, когда серверу приложений ЛОЦМАН не достаточно памяти для того, чтобы вернуть все объекты в базу данных.
Если после возникновения ошибки открыть диспетчер задач, то можно увидеть, что скорее всего использованы все доступные ресурсы оперативной и виртуальной памяти. Проблема скорее системная.

Сервер приложений ЛОЦМАН:PLM не ограничивает размер сохраняемого файла.
Существует ограничение ADO/OLEDB (интерфейс MS SQL Server): при работе с файлами требуется НЕПРЕРЫВНЫЙ БЛОК ПАМЯТИ РАЗМЕРА СООТВЕТСТВУЮЩЕГО ФАЙЛУ , который не всегда доступен в системе (даже небольшого размера) - это зависит от степени фрагментированности оперативной памяти.

При использовании Файлового архива это ограничение не действует,
В СУБД Oracle описанная проблема не возникает.

В том случае, если ошибка возникает при наличии файлового архива, в первую очередь необходимо проверить наличие свободного места в архиве. 

Свободное место, доступное для файлового архива указано в ЦУК:
Файловые архивы - [имя файлового архива] справа в информационной области.
Объем памяти, свободный в архиве, и объем памяти доступный на ресурсе где расположен архив не одно и то же!
Так, под архив может быть выделено 50Гб, а на диске свободно 500Гб.
Архив сможет использовать только выделенные ему 50Гб, не зависимо от того, сколько памяти доступно на диске.

Например, в архиве доступно 0,008 Мб, при сохранении файла объемом 30Мб возникает ошибка
Out of memory, Error creating variant or safe array.
Необходимо открыть свойства файлового архива и увеличить максимальный размер архива, в зависимости от потребностей.
 

Рекомендации по избежанию проблемы:
  1. Используйте файловый архив.  
    Перенесите файлы из базы данных в него.  
    Для хранения большого объема файлов лучше использовать файловый архив, а не таблицы базы данных.  
    Подробнее о создании и о работе с файловыми архивами описано в справке на ЦУК/ЛОЦМАН Администратор.
  2. Старайтесь чаще сохранять информацию в БД малыми порциями, тогда вероятность появления упомянутой ошибки снизится.
  3. Установка дополнительных модулей оперативной памяти на машине, где работает сервер приложений ЛОЦМАН.