Имя: Пароль:
1C
1С v8
Конфликт блокировок при проведении документа. ERP 2.4.9
,
0 nazarovbr
 
09.04.20
09:25
Приветствую. Возникла такая проблема, есть внешняя обработка, которая в транзакции помимо прочих действий изменяет и проводит документ (ЭтапПроизводства2_2). Иногда при выполнении этой обработки у пользователей возникает ошибка "Конфликт блокировок при выполнении транзакции. Неустранимый конфликт блокировок". При повторном запуске все отрабатывает. Начал искать, нашел конкретное место, в котором при обработке проведения документа на него вешается блокировка и в этот момент выходит ошибка. Сейчас как раз пытаюсь разобраться, но пока не особо успешно. Может кто подсказать хотя бы в каком направлении копать? Режим блокировок в конфе стоит управляемый.
1 Spieluhr
 
09.04.20
09:58
1) У дедлока всегда как минимум 2 участника, нужно искать вторую транзакцию
2) что значит "на него вешается блокировка"? зачем дополнительно что-то вешать? это типовой код?
2 nazarovbr
 
09.04.20
10:22
(1) да, во внешке идет проведение своим кодом, а дальше уже конфликт с типовым
3 Ray Zexter
 
09.04.20
10:26
Внешнюю обработку запускают сразу несколько юзверей?
4 nazarovbr
 
09.04.20
11:10
(3) теоретически могут, но ни по истории изменений, ни по журналу регистрации не видно, чтобы кто то ещё запускал в это время. Да и у них там работа распределена, один и тот же документ разные люди трогать не будут
5 dmpl
 
09.04.20
11:15
(4) Ну а какие блокировки накладываются перед тем Заблокировать(), на котором валится все?
6 nazarovbr
 
09.04.20
11:43
(5) блокируются все этапы производства с таким же заказом как у проводимого этапа
7 dmpl
 
09.04.20
11:52
Ну так может один или несколько из этих этапов уже были заблокированы ранее. Может даже этой же обработкой.
8 nazarovbr
 
09.04.20
12:09
(7) маловероятно, во первых как уже писал, у пользователей это все распределено между собой, во вторых слишком часто ошибка вылезает чтобы они каждый раз так друг на друга попадали. Да и вообще я сам пробовал на тестовой зайти под 2 пользователями и одновременно пустить, там другая ошибка. Что-то типа "записи были изменены или удалены"
9 dmpl
 
09.04.20
15:08
(8) Там может фоновые задания запускаются, или подписки какие срабатывают.
10 rphosts
 
09.04.20
15:20
(0)Собери ТЖ на события TLOCK, TDEADLOCK.
У дидлоков 2 причины:
1.повышение уровня транзакции (ну т.е. сначала решил что-то прочесть а потом решил туда записать, а кто-то уже в своей транзакцией наложил на эти данные блокировку).
2.разный порядок наложения блокировки на разные данные, например Юзер А заблокировал что-то в РС1, потом юзер Б заблокировал что-то РС2, и тут Юзер А решил заблокировать что-то в РС2, что уже заблокировал юзер Б....
11 rphosts
 
09.04.20
15:22
(8) да, зуб даёшь? А записи о актуальных итогах в РН? У вас везде режим разделения итогов и он включен?

Ты можешь научиться гадать лучше проф. цыганки, но без сбора ТЖ это всё пустое.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.