Решение задач 1С:Предприятие 8 на примерах

«Превышено максимальное время ожидания предоставления блокировки» в 1С

Ошибки 1СБлокировки и транзакцииОпубликовано

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

Текст ошибки

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

Причины

Как это устроено

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

Найти, кто держит блокировку

  1. Откройте консоль администрирования кластера серверов и посмотрите сеансы базы. У сеанса, который держит транзакцию, растёт время вызова и показатели нагрузки.
  2. В типовых конфигурациях на БСП откройте обработку «Активные пользователи» и проверьте, кто работал в момент ошибки.
  3. Если ошибки частые, настройте технологический журнал на события TLOCK и TTIMEOUT. По этим событиям видно, какое соединение ждало и какие соединения удерживали нужные данные.

Изменить время ожидания

Время ожидания задаётся в конфигураторе: «Администрирование» → «Параметры информационной базы» → «Время ожидания блокировки данных». Увеличение лимита оправдано, если тяжёлые операции нельзя перенести, а пользователи готовы подождать. Это не исправляет причину, а лишь даёт больше запаса.

Для отдельного сеанса, например фонового задания с длинной обработкой, время ожидания можно изменить программно:

// Время ожидания блокировки для текущего сеанса, в секундах
УстановитьВремяОжиданияБлокировкиДанных(60);

Устранить причину

Для пользователя

Если ошибка возникла один раз, повторите операцию через минуту. Если повторяется регулярно в одно и то же время, сообщите администратору: скорее всего, по расписанию работает тяжёлая обработка.

Частые вопросы

Какое время ожидания блокировки ставить?

Значение по умолчанию 20 секунд подходит большинству баз. Увеличивать его стоит осторожно и лишь после анализа, какие операции держат блокировки.

Бывает ли эта ошибка в файловой базе?

В файловой базе параллельная работа ограничена сильнее, и конфликты обычно проявляются как ожидание или ошибки блокировки таблиц. Подробный анализ с технологическим журналом больше применим к клиент-серверным базам.

Запись в регистр сведений 1С программно: менеджер записи, набор записей и удаление

Алгоритмы

Разбор записи в регистр сведений из кода 1С: когда брать менеджер записи, а когда набор с отбором, как удалить запись или очистить регистр и почему записи становятся неуникальными.

Сервер 1С:Предприятия и кластер: состав, порты, консоль, rac и веб-сервер

Базы данных и СУБД

Устройство сервера 1С и кластера, порты по умолчанию, консоль администрирования и управление сеансами через rac, кэш сервера, установка на Windows и Linux и публикация базы на веб-сервере.

Отладка в 1С: точки останова и отладка на сервере

Алгоритмы

Практическое руководство по отладчику 1С: точки останова, шаги, табло, остановка по ошибке, замер производительности и настройка отладки серверного кода и фоновых заданий.

Похожие ошибки