04.10.2018, 20:07 | #1 |
Участник
|
Ax2012R3 Пакетное задание завершено, но не выполнено
Проблема указана в теме. Пакетное задание перешло в статус "Завершено", но все задачи внутри этого задания в статусе "Не выполнялось"
Проблема возникает не всегда, но неожиданно Из обнаруженных закономерностей - При массовых сбоях обращений к базе данных. Как правило, конфликты обновлений - При выполнении пакетных заданий, созданных через batchHeader.addRuntimeTask() Есть какие-нибудь идеи по этому поводу? PS: Замена addRuntimeTask() на addTask() крайне не желательна по организационным причинам
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
05.10.2018, 10:19 | #2 |
Участник
|
Установлено обновление, в котором в при обновлении статусов начала использоваться класс ReqReaderWriterLock?
|
|
05.10.2018, 13:48 | #3 |
Участник
|
\Classes\BatchRun\serverProcessFinishedJobs
Начинается с установки блокировки и кончается снятием блокировки X++: server static void serverProcessFinishedJobs(boolean forceProcessing = false) { (...) ReqReaderWriterLock lock; ; (...) lock = ReqReaderWriterLock::construct(); lock.enterWriterLock(#BatchRunServerTaskLock); (...) lock.exit(#BatchRunServerTaskLock); } PS: Хм.. Это пока только на разработке. На продуктив эту модифу еще не перенесли
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 05.10.2018 в 13:50. |
|
06.10.2018, 11:01 | #4 |
Участник
|
Жалко, я как раз хотел бы выяснить помогает ли такой подход (там, кстати, важно чтобы такие блокировки были не в одном методе, а во всех, в которых есть изменение статусов в Batch) - с подобными проблемами сталкиваемся на DAX2009 и интересно стоит ли там реализовать что-то подобное.
|
|
08.10.2018, 08:49 | #5 |
Участник
|
Это хорошо, когда ВСЕ задачи в пакете не выполнились! У меня такие пакетные задания с задачами Job на SQL перещелкивает в ожидание, а вот что делать, когда часть выполнилась, а часть перешла в "Не выполнялось", кроме e-mail матюгальника я не придумал. Запрет на одновременное обновление табличек Batch* в классе BatchRun у меня реализован через отдельную блокировочную табличку, иначе это приводило к другим занятным вещам (писал здесь ранее).
|
|
Теги |
ax2012, ax2012r3, batch, batchrun, reqreaderwriterlock, баг, блокировки |
|
|