8.3.9 , Превышено максимальное время ожидания предоставления

Пути решения взаимных блокировок

Модератор: Дмитрий Юхтимовский

8.3.9 , Превышено максимальное время ожидания предоставления

Сообщение konstantyn Ivanov » 26 ноя 2016, 18:03

Коллеги, доброго времени суток.

Предыстория:
Не отрабатывает метод "Выбрать изменения" плана обмена.
Получаю ошибку "Конфликт блокировок при выполнении транзакции:
Превышено максимальное время ожидания предоставления блокировки".
Метод выполняется при работе одного пользователя.
Конфликт возникает при обращении к определенным объектам метаданных (в параметре-фильтре)
Ошибки ранее не возникало и на данный момент ее появление связываю с переходом на платформу "8.3.9.1850".

Какой анализ проводился:
Был настроен ТЖ на сбор событий блокировки (TLOCK) и транзакций (SDBL).
Его анализ показал следующее:
- Начинается транзакция (BeginTransaction);
- Далее с ней происходит то, описание чего я не нашел ни на ИТС ни во всем известном поисковике (saveHoldConnectionAndTransaction) и могу лишь строить догадки основываясь на названии.
- Начинается еще одна транзакция (BeginTransaction);
- Устанавливается управляемая блокировка (Exclusive) на таблицу (в данном случае справочника). WaitConnections пуст;
- Далее с транзакцией происходит то же, что и с предыдущей (saveHoldConnectionAndTransaction) .

- Начинается еще одна транзакция (BeginTransaction);
- Устанавливается управляемая блокировка (Exclusive) на ту же таблицу, в WaitConnections ID из предыдущей блокировки (Причем в мануалах, которые читал по анализу взаимоблокировок говорилось, что в этом поле должен быть "connectID"
блокировки, которую ожидаем. Однако данное ID заполнено в поле "tmpConnectID" предыдущей блокировки. В описании свойств событий ТЖ его нет);
- Блокировка ждет время указанное в настройках ИБ (пробовались значения от стандартных 20 сек. до 10 минут);
- Транзакция откатывается (RollbackTransaction) ;

- Далее происходит то, описание чего я так же не нашел на ИТС и прочих ресурсах, но по всей видимости это обратное событие от "(saveHoldConnectionAndTransaction) " - restoreHoldConnectionAndTransaction;
- Транзакция откатывается (RollbackTransaction) ;

- и еще раз restoreHoldConnectionAndTransaction;
- Транзакция откатывается (RollbackTransaction);

Интересующие вопросы:
В чем может быть причина подобного поведения?
По каким причинам транзакции "Сохраняются", а не фиксируются/откатываются удерживая блокировки?
Есть ли пути обойти подобное поведение?

Используемая система:
Платформа 1С : 8.3.9.1850;
Конфигурация: доработанная на базе УТ 3.1, режим блокировок - упр, режим совместимости - 8.2.16;
СУБД - MS SQL (релиз на данный момент не известен, но если это принципиальный момент - можно уточнить);
ОС - Win. serv. 2012 r2;
konstantyn Ivanov
 
Сообщений: 2
Зарегистрирован: 26 ноя 2016, 17:58

Re: 8.3.9 , Превышено максимальное время ожидания предоставл

Сообщение Гилёв Вячеслав » 30 ноя 2016, 17:02

уверен, что на 8.3.8 будет работать
Гилёв Вячеслав
 
Сообщений: 2437
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва

Re: 8.3.9 , Превышено максимальное время ожидания предоставл

Сообщение Andrei.Sevostyanov » 30 ноя 2016, 17:56

https://partners.v8.1c.ru/forum/t/1543362/m/1545426
Ответ 1С:
При первом обращении к разделенной таблице из новой области данных платформа проверяет наличие в ней предопределенных данных и создает предопределенные данные в случае их отсутствия. Проверка и добавление выполняется в транзакции с расстановкой управляемых блокировок для исключения несогласованных действий, например, вставки двух комплектов предопределенных данных. Для исключения длительных транзакционных блокировок данное действие выполняется от имени отдельного временного соединения с информационной базой, в которой гарантированно отсутстует объемлющая транзакция. t:tmpConnectID - это - номер временного соединения. REFLOCK.INIT - пространство блокировки предопределенных данных области.
Andrei.Sevostyanov
 
Сообщений: 6
Зарегистрирован: 25 ноя 2014, 10:22

Re: 8.3.9 , Превышено максимальное время ожидания предоставл

Сообщение konstantyn Ivanov » 01 дек 2016, 18:27

Спасибо. Уже подсказали эту тему на партнерском форуме.
Действительно источником блокировок был общий реквизит. Исключили из его состава объекты обмена и все заработало.
konstantyn Ivanov
 
Сообщений: 2
Зарегистрирован: 26 ноя 2016, 17:58


Вернуться в Проблемы с взаимными блокировками

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron