Показать сообщение отдельно
Старый 11.02.2021, 05:51   #14  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Для истории: есть KB 3216955 KB 3216955, Bug Id 3804879 "Continuous dead locks in batch" для AX 2012 R2, где реализован целый ряд исправлений в классе BatchRun. Они сводятся к тому, чтобы при обновлении таблиц пакетной инфраструктуры вместо оптимистичной конкуренции использовать mutex на уровне СУБД, управляемый с помощью класса ReqReaderWriterLock. Такой подход позволяет надежно синхронизировать различные потоки пакетных обработчиков, в том числе выполняющиеся на разных пакетных серверах. См. также соотв. изменения в коде.
А кстати кто-нибудь включал это обновление?
Просто установить недостаточно, необходимо еще включить, вставив запись в sysGlobalConfig
Мы пробовали сделать на одном из клиентов(у них очень много пакетных заданий), в итоге это работало где-то день, потом все зависло. Т.е. какая-то сессия взяла этот мутекс и при этом ничего не делала.
Попробовали еще раз, такая же история через день.
В итоге решили что постоянные деадлоки это меньшее зло, чем полностью зависающая система
Вопрос - кто нибудь побеждал эти деадлоки(они встречаются практически на всех клиентах, где несколько пакетных АОСов) и если да, то как?
X++:
#define.ConfigName_EnableBatchRunServerTaskLock('EnableBatchRunServerTaskLock')

    select Value from sysGlobalConfig
        where sysGlobalConfig.Name == #ConfigName_EnableBatchRunServerTaskLock;