28.10.2024, 06:26 | #1 |
Участник
|
DAX2009 учетка AOS перевела ряд пакетов в 'Отложено'
Привет.
Подскажите какие причины могут побудить систему AX перевести ряд пакетов в статус Отложено (Withhold) ? Столкнулся с такой ситуацией первый раз. |
|
28.10.2024, 06:36 | #2 |
Участник
|
Кидаю как версию.
Может ли быть причина редактирование прав пользователя под которым была запущено пакетное задание? Т.к. около 10-15 пакетных заданий попали в такой статус запущенные под определенным пользователем. Пользователь включен и не отключался. Поэтому пока не знаю причину. |
|
28.10.2024, 10:39 | #3 |
Участник
|
Насколько я знаю, штатно, автоматического перевода в статус "Отложено" быть не может. Этот статус может быть присвоен только и исключительно вручную. Или же у Вас сделана какая-то модификация обработки пакетных заданий
Посмотрите по перекрестным ссылкам, где происходит присвоение значения полю "Статус" для BatchJob.Status и что надо делать, чтобы был присвоен статус "Отложено"
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
28.10.2024, 11:36 | #4 |
Участник
|
Я почему подумал так, т.к. по журналу истории БД вижу что значение BatchJob.Status было изменено на "Ожидание" userId = -AOS-.
|
|
28.10.2024, 12:18 | #5 |
Участник
|
Случайно нет функционанальности "Запуск от имени пользователя"?
Если есть, то не запускал ли пользователь пакета экземпляры Аксапты под именем другого пользователя? |
|
31.10.2024, 07:37 | #6 |
Участник
|
Функционал такой есть, но не запускал это точно.
Это же системная учетка в UserInfo записи Id = '-AOS-' даже нет. Запустить под такой клиент не возможно (поправьте если ошибаюсь). |
|
31.10.2024, 12:24 | #7 |
Участник
|
Ответ на этот вопрос содержится в перекрестных ссылках.
Система сама может выставлять данный статус. Скорее всего пользователь создавший данные пакетные задания был отключен. PS Обычно к журналу БД "прикручивают" сбор информации о стеке вызова - это сильный инструмент для расследования подобных сценариев. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
01.11.2024, 16:38 | #8 |
Участник
|
Цитата:
Просто в некоторых реализациях этого функционала на время запуска от имени другого пользователя сам пользователь блокируется. И если в это время запустится очистка пакетов по зависшим задачам (как раз без клиентской сессии, то есть -AOS-), то одно из действий - перевод задач заблокированных пользователей в отложенные. |
|
01.11.2024, 20:57 | #9 |
Участник
|
Если мне не изменяет память, в классе batchrun есть код, переводящий пакеты в отменено, если юзер выключен или учетка заблокирована.
Методы класса дергаются ядром аоса, поэтому автор модификации -AOS- В перекрестные могло не попадать так как там update_recordset а он в 2009й перекрестными не ловится. |
|
|
За это сообщение автора поблагодарили: oleggy (2). |
14.11.2024, 13:21 | #10 |
Участник
|
Цитата:
Так? Хрошо, а если учетка потом была разблокирована то обратно из Отложено я так понимаю не переведется в Ожидание. Так? |
|
14.11.2024, 14:36 | #11 |
Участник
|
|
|
14.11.2024, 14:42 | #12 |
Участник
|
\Classes\BatchRun\serverCleanUpDeadTasks
X++: //cancel executing jobs for disabled users update_recordset batchJob setting Status = BatchStatus::Cancelling where batchJob.Status == BatchStatus::Executing exists join userInfo where userInfo.Id == batchJob.CreatedBy && userInfo.Enable == false; ... //Send waiting jobs to hold update_recordset batchJob setting Status = BatchStatus::Hold where batchJob.Status == BatchStatus::Waiting exists join userInfo where userInfo.Id == batchJob.CreatedBy && userInfo.Enable == false; Но вроде бы это приводило к аналогичному результату. |
|
|
|