Цитата:
Сообщение от
sable102
Проблема в пакетнике, если аксапта вылетает, то пакетник соответсвенно отключается, и некоторые ночные пересчеты не выполняются.
Хотел сделать, чтоб клиент аксапты запускался как служба. И поставить при сбое этой службы перезапуск. Но из-за этого окна клиент не закрывается при сбое аоса.
Есть какие нибудь другие варианты решения проблемы перезапуска пакетника?
- Создайте новую таблицу в AX, аля "SysBatchAliveStatus" c единственным полем "LastActivityDateTime"
- Обновляйте это поле текущей датой\временем при обработке пакетников (либо непосредственно из критически важного пакетника)
- Напишите на .net небольшую утилитку по чтению этого поля напрямую из БД AX. Её можно будет запустить как сервис.
- В случае, если поле давно не обновлялось, делаем вывод о повисшей\отвалившейся сессии, перезапускаем клиент\ либо АОС либо делаем ещё что-то
ну как-то так навскидку. Когда-то я тоже боролся с подобными проблемами, практика показала, что надежнее всего сделать подобный external-watchdog.
Дальше можно расширить, скажем, в таблицу кроме последней даты выполнения, записывать ID процесса клиента AX, таким образом, иметь возможность убивать отвалившийся процесс клиента.