Показать сообщение отдельно
Старый 30.12.2014, 15:25   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от sable102 Посмотреть сообщение
Проблема в пакетнике, если аксапта вылетает, то пакетник соответсвенно отключается, и некоторые ночные пересчеты не выполняются.
Хотел сделать, чтоб клиент аксапты запускался как служба. И поставить при сбое этой службы перезапуск. Но из-за этого окна клиент не закрывается при сбое аоса.
Есть какие нибудь другие варианты решения проблемы перезапуска пакетника?
- Создайте новую таблицу в AX, аля "SysBatchAliveStatus" c единственным полем "LastActivityDateTime"
- Обновляйте это поле текущей датой\временем при обработке пакетников (либо непосредственно из критически важного пакетника)
- Напишите на .net небольшую утилитку по чтению этого поля напрямую из БД AX. Её можно будет запустить как сервис.
- В случае, если поле давно не обновлялось, делаем вывод о повисшей\отвалившейся сессии, перезапускаем клиент\ либо АОС либо делаем ещё что-то

ну как-то так навскидку. Когда-то я тоже боролся с подобными проблемами, практика показала, что надежнее всего сделать подобный external-watchdog.
Дальше можно расширить, скажем, в таблицу кроме последней даты выполнения, записывать ID процесса клиента AX, таким образом, иметь возможность убивать отвалившийся процесс клиента.