Имя: Пароль:
1C
1С v8
Решить проблему Конфликт блокировок при выполнении транзакци
0 raslvot
 
05.10.20
12:12
Имеем самописную 1с которая была написана для 8.1
Сейчас работает на 8.3 (в режиме совместимости 8.2)

В конфигурации и управляемые и автоматические блокировки
В настройка конфигурации указано управляемая. В настройках некоторых объектов управляемая, а в некоторых автоматические.

Возникает ошибка почти каждый день, помогает только принудительная перезагрузка.

{Обработка.ВыдачаПоЗвонку.Форма.ВыдачаПоЗвонку.Форма(852)}: Ошибка при вызове метода контекста (Записать)
ДокРассмотрение.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.Рассмотрение.МодульОбъекта(565)}: Ошибка при вызове метода контекста (Выполнить)
ДокРассмотрение.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Ошибка выполнения запроса
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 11.0: Lock request time out period exceeded.
HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=33, Severity=10, native=1222, line=1

Физический сервер: Xeon 2620 (2 процессора) (hyper threading включен) Оперативная память: 128 ГБ Используется виртуализация Hyper-V (Гостевая ОС Windows Hyper-V 2016). Охват узлов Numa выключен

Виртуальная машина, куда подключаются пользователи по RDP: ОЗУ: 38 ГБ, виртуальных процессоров 12 из 24 возможных (100% нагрузки при этом почти никогда не бывает), vhdx системного раздела, динамически расширяемый на INTEL SSDSC2BX200G4 +2 vhdx под сканы на обычных жестких дисках. Сеть между виртуальными машинами 10гбит\с. Гостевая ОС Windows Server 2012r2 Standart, платформа 1С x86 8.3.16.1148

Виртуальная машина с базами MSSQL + сервер предприятия 1С х64 бит 8.3.16.1148 ОЗУ 64 гб, для mssql стоит ограничение по максимальному занимаемому количеству памяти в 40 гб, виртуальных процессоров 12 из 24 возможных, vhdx системного раздела фиксированного размера на INTEL SSDSC2KG480G8 + на нем же находится упомянутая база (текущий ее размер 93гб). Фиксированного размера vhdx на OCZ INTREPID 3800 под другие базы. + vhdx диск под другие файлы, не относящиеся к базам на обычном жестком диске. TempDB разбит на 12 файлов и находится в системном разделе (который на SSD). Гостевая ОС Windows Server 2012r2 Standart, MS SQL Server 2012

Каким образом решить данную проблему?
1 acht
 
05.10.20
12:20
Дедлок классический, повышение уровня транзакции и сетакое.
Иди к своим 1сникам и спрашивай - зачем они это сделали.
2 Жан Пердежон
 
05.10.20
12:32
(1) где ты тут дедлок увидел?
3 fisher
 
05.10.20
15:51
(0) В смысле, "помогает только принудительная перезагрузка"?
Т.е. с какого-то момента постоянно по ожиданию блокировки падает? Тогда открывай мониторинг текущих процессов в сиквеле Management Studio - там видно какие процессы чего лочат и ежели какой-то процесс является причиной блокировки других - то это тоже сразу видно (там колонка специальная есть, где это показывает). А как увидишь проблемный процесс - смотри какую операцию он выполняет. Очень часто можно по этим данным догадаться, чего происходит.