Показать сообщение отдельно
Старый 17.05.2018, 02:09   #7  
alicedr is offline
alicedr
Участник
 
173 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Причиной многократных попыток запустить на обработку одну и ту же накладную оказался стандартный FormLetterService.run(), который при exceptioneadlock удаляет из лога данные о транзакции и запускает все по-новой.

Deadlock происходит на апдейте MCRCustPaymTable и происходит это только во время выполнения батча, когда запускаются все накладные за день в несколько потоков. Запуск нескольких накладных в батче проходит без изъянов, роль играет явно количество.

SQL 2014, флаг 1224 для lock escalation включен.
В trace parser получилось найти только один из двух запросов из дедлока.
В trace parser'e также получилось идентифицировать, что сообщение об ошибке было следующее:
X++:
Deadlock, where one or more users have simultaneously locked the whole table or part of it