Ora 11, СМ 1.028.2 SP5
Сегодня получил такое сообщение при сохранении нового МХ:
Цитата: 2011.12.26 (Monday) 08:33:45
----- Прерывание работы программы -----
сообщение: "Критическая ошибка SEH: ACCESS_VIOLATION, код = 0xc0000005. Состояние программы нестабильно. Как можно быстрее завершите приложение."
исключение: Sm.Core.InteropException
hResult: 8000FFFFh; доп. код: 0
источник: Супермаг+
Никто не сталкивался? Чего ожидать?
Добавлено через 20 минут 6 секунд
на фтп С+ в папке к СП1 версии 1.029.0 лежит файл readmy.txt... в нем написано:
Цитата: В перечне работ сервис пака есть следующий пункт:
- Реализована выдача пользователю предупреждения о недостаточности ресурсов (объекты USER) при открытии раздела.
Эта работа связана со следующей проблемой. В ОС имеется ограничение на количество описателей окон, которые могут использоваться одним приложением и одним пользователем (все приложения одной сессии). Это 10000 и 32000 окон, соответственно. Кроме того, имеется ограничение на размер памяти для хранения описателей окон. В Windows XP по умолчанию это 3 МБ, в Windows Vista sp1 и Windows 7 это 12 МБ. 3 МБ хватает примерно для хранения 10000 описателей.
В Супермаге любой раздел документов при старте открывает около 400 окон и если открыть все возможные разделы Супермага или примерно 24 раздела накладных, то предел в 10000 окон будет гарантировано достигнут. В этом случае может появиться сообщение вида:
"Критическая ошибка SEH: ACCESS_VIOLATION, код = 0xc0000005. Состояние программы нестабильно. Как можно быстрее завершите приложение."
Сообщение может и не появиться. Приложение может безнадежно зависнуть, если ОС не успела сама понять, что ресурсов недостаточно и попыталась занять их больше, чем разрешено.
В сервис паке реализована проверка достаточности свободных описателей окон перед стартом раздела, что позволяет избежать зависания приложения. Однако, надежно эта проверка работает только в Windows 7. В Windows XP Супермаг может столкнутся с недостаточностью памяти (хипа) для хранения описателей, если запущены другие приложения, открывающие много окон, например, второй экземпляр Супермага. В этом случае при наличии достаточного количества свободных описателей, ОС также может выдать описанное выше сообщение или заблокировать приложение. Последствия в этом случае могут быть тяжелыми, поскольку и все другие приложения рабочего стола также не смогут стартовать, включая системные приложения. Описанное ограничение невозможно проверить изнутри приложения и в настоящий момент у нас нет средств его диагностики, из-за чего в среде Windows XP могут встречаться подобные ошибки. В этом случае надо либо рекомендовать перейти на Windows 7, либо не открывать слишком много разделов, например, более 15.
что самое интересное - кроме СМ других окон запущено не было, терминальных пользователей нет. в самом СМ были открыты 3 раздела - Структура разделов, Цены и Склады и магазины. Сообщение о критической ошибке появляется в момент сохранения МХ.