21.12.2016, 17:58 | #1 |
Участник
|
Блокировка Batch при списании журналов операций
Добрый день!
При списании журналов операции в пакетном режиме на SQL возникает блокировка на запросе: (@P1 int,@P2 datetime2,@P3 int,@P4 int,@P5 int,@P6 int,@P7 int,@P8 int,@P9 int,@P10 int,@P11 int,@P12 int)UPDATE BATCH SET STATUS=@P1,MODIFIEDDATETIME=@P2,RECVERSION=@P3 WHERE ((STATUS=@P4) AND (CONSTRAINTTYPE=@P5)) AND EXISTS (SELECT 'x' FROM BATCHJOB T2 WITH ( READCOMMITTEDLOCK) WHERE ((T2.STATUS=@P6) AND (BATCH.BATCHJOBID=T2.RECID)) AND NOT (EXISTS (SELECT 'x' FROM BATCHCONSTRAINTS T3 WITH ( READCOMMITTEDLOCK) WHERE EXISTS (SELECT 'x' FROM BATCH T4 WITH ( READCOMMITTEDLOCK) WHERE (((T3.DEPENDSONBATCHID=T4.RECID) AND (T3.BATCHID=BATCH.RECID)) AND ((((T4.STATUS<>@P7) AND (T4.STATUS<>@P8)) OR ((T3.EXPECTEDSTATUS=@P9) AND (T4.STATUS=@P10))) OR ((T3.EXPECTEDSTATUS=@P11) AND (T4.STATUS=@P12)))))))) Данный запрос вызывает метод Classes\BatchRun\serverProcessDependencies. В результате полностью блокируется таблица Batch, перестают выполняться пакетные задания, которые даже не отностятся к данной группе пакетов и к текущей компании. Никто не решал данную проблему? AX2012 R3, SQL2012 |
|
Теги |
ax2012, deadlock, пакетная обработка |
|
|