30.06.2015, 14:31 | #1 |
Участник
|
Как понять что пакетник (BatchRun) не работает.
Dax4 еще.
В пакетной обработке запущенной на ночь случается падают задания. Возникают ошибки которые не ловятся в try..catch в runJob. Соответственно останавливается пакетная очередь и к утру ничего что стояло в дальнейшей очереди не выполнено. Кто-то решал такую проблему? Как поймать что пакетная обработка уже остановилась, хотя в выполняемых еще висит задание? |
|
30.06.2015, 16:32 | #2 |
Злыдни
|
Написать вьюху на sql, которая будет проверять, на какое время назначено выполнение пакета, прибавлять к нему временной лаг пакетного сервера и, в случае превышения этого времени текущим, отправлять с сервера сообщение о возникновении ситуации с задержкой. Создать задачу на сервере с указанием операторов, которым должно приходить оповещение.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
30.06.2015, 16:58 | #3 |
Злыдни
|
Пример такого задания, написанного одним из моих коллег, во вложении.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
01.07.2015, 06:04 | #4 |
Участник
|
Цитата:
Сообщение от KiselevSA
Написать вьюху на sql, которая будет проверять, на какое время назначено выполнение пакета, прибавлять к нему временной лаг пакетного сервера и, в случае превышения этого времени текущим, отправлять с сервера сообщение о возникновении ситуации с задержкой. Создать задачу на сервере с указанием операторов, которым должно приходить оповещение.
|
|
01.07.2015, 11:11 | #5 |
Участник
|
У нас написали свой отдельный пакетник, который по определенным критериям каждые 10 минут проверяет остальные пакеты и если какой-то упал в ошибку или не запустился, хотя должен был, то отправляет страшные письма в техподдержку.
Последний раз редактировалось Logger; 01.07.2015 в 11:13. |
|
01.07.2015, 13:11 | #6 |
Участник
|
Ну вот и вопрос. А какие это критерии? Если упал в ошибку понятно, если не запустился понятно. А если запустился, нов ошибку не упал Просто из-за ошибки в каком то из пакетов прервалась сама пакетная обработка? И все мирно лежит в выполнении. Хотя ничего на самом деле не исполняется
|
|
01.07.2015, 13:19 | #7 |
Участник
|
Ну критерии вы сами определяете.
У нас все пакеты за которыми следят запущены от одного пользователя. Смотрят за такими пакетами и их статусом и ожидаемым временем старта. |
|
01.07.2015, 13:35 | #8 |
Участник
|
Цитата:
Цитата:
Код: -internal=nomodalboxes |
|
|
За это сообщение автора поблагодарили: Logger (3). |
01.07.2015, 13:39 | #9 |
Злыдни
|
Если произошло что-то с самим пакетным сервером, то при организации проверки через пакетные задания из Аксапты, долго будете ждать у моря погоды. Можно, конечно, вклиниться в рассылку оповещений, но у меня нет уверенности в том, что эта рассылка не использует пакетный сервер. Обычно, любой проверочный механизм работоспособности организуется в параллельном сервисе, а не в самом сервисе, т.к., если сервис не работает, он заведомо не может сообщить об этом. А проверка на уровне SQL еще и диагностика того, что AOS не остановили или, для 4, что не забыли пакетник запустить.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
01.07.2015, 16:26 | #10 |
Участник
|
Цитата:
Ну каждый извращается как может. Нам такого достаточно для большинства случаев (как правило пакетный сервер был жив, просто с конкретными заданиями проблемы бывают). На крайняк можно виндовый шедулер настроить который будет периодически стартовать клиента аксапты и делать ту же самую проверку, а в случае ошибки тоже письмо слать, но виндовые средствами - что не получилось проверить |
|
02.07.2015, 05:52 | #11 |
Участник
|
Цитата:
Сообщение от gl00mie
Ну как это обработка прервалась, а пакетное задание осталось в выполнении? Клиент и по совместительству пакетный сервер (коль скоро речь о 4.0) висит с модальным MsgBox'ом и сообщением "шеф, всё пропало"? Так запускайте его с параметром
Код: -internal=nomodalboxes Была мысль все запускать в runAs - ну типа там своя сессия, сохранять ее в Batch вместо родительской, как сейчас. И вот сессия runas как раз при таких ошибках тоже завершается. ну и потом в параллельной пакетной обработке проверять живость сессии записанной в выполняемом пакете. Но вот интересуюсь, а кто как выпутывались? |
|
02.07.2015, 06:01 | #12 |
Участник
|
Цитата:
Сообщение от KiselevSA
Если произошло что-то с самим пакетным сервером, то при организации проверки через пакетные задания из Аксапты, долго будете ждать у моря погоды. Можно, конечно, вклиниться в рассылку оповещений, но у меня нет уверенности в том, что эта рассылка не использует пакетный сервер. Обычно, любой проверочный механизм работоспособности организуется в параллельном сервисе, а не в самом сервисе, т.к., если сервис не работает, он заведомо не может сообщить об этом. А проверка на уровне SQL еще и диагностика того, что AOS не остановили или, для 4, что не забыли пакетник запустить.
|
|
02.07.2015, 08:26 | #13 |
Злыдни
|
Я как раз про четверку и говорю. Для того, чтобы они обрабатывались, надо где-то запустить клиентскую сессию, и оттуда запустить обработчики. Причем для каждой группы заданий обработчик может быть свой. Перегрузили сервер, на котором сессия крутиться. В какой момент администратор Аксапты узнает о том, что про запуск клиентской сессии от имени специального пользователя забыли?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
02.07.2015, 11:48 | #14 |
Участник
|
Цитата:
Сообщение от KiselevSA
Я как раз про четверку и говорю. Для того, чтобы они обрабатывались, надо где-то запустить клиентскую сессию, и оттуда запустить обработчики. Причем для каждой группы заданий обработчик может быть свой. Перегрузили сервер, на котором сессия крутиться. В какой момент администратор Аксапты узнает о том, что про запуск клиентской сессии от имени специального пользователя забыли?
|
|
08.04.2016, 12:54 | #15 |
Участник
|
Цитата:
А кто-нить пользовался этим параметром -internal=nomodalboxes ? Как он работает? У меня как я себе вообразил ничего не вышло. В командной строке запуска добавляю в конце -internal=nomodalboxes. Запускаю аксапу. Запускаю класс в run которого: X++: Box::okCancel("блабла", DialogButton::Ok); И да.. DAX4 |
|
08.04.2016, 13:17 | #16 |
Участник
|
Не пользовался этим ключом, но предположу что он влияет на мессиджбоксы, генерируемые ядром, а не из X++.
По поводу вопросов из диалогов - в стандартном коде часто замечал проверки - не работает ли код в пакете, если в пакете то диалог не выдается и используется какой-то предполагаемый ответ. может быть вам также сделать ? Кстати аналогичные азплатки можно понатыкать в статические методы класса Box. Их там немного. Около десятка. |
|
Теги |
internal, nomodalboxes, startup command |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|