|
Конфликт блокировок при проведении документа. 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) да, зуб даёшь? А записи о актуальных итогах в РН? У вас везде режим разделения итогов и он включен?
Ты можешь научиться гадать лучше проф. цыганки, но без сбора ТЖ это всё пустое.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший