История одного конфликта блокировок 1С

В определенный момент времени, пользователи информационной базы, которые ранее работали без проблем — начали жаловаться на возникновение ошибок при записи элемента справочника.
В нашем распоряжении оказались скрины и тексты ошибок, переданные пользователями. Без возможности самостоятельного воспроизведения проблемы в этой или каких-либо других тестовых базах данных.
1. Знакомимся с текстами ошибок.
2. Парсим технологический журнал 1С по пользователю, у которого возникла ошибка, в временном интервале ее возникновения.
3. Снимаем блокировку 1C.
Знакомимся с текстами ошибок.
При работе формы произошла системная ошибка (нарушена синхронизация состояния формы на клиенте и на сервере). «Данные формы не могут быть локально зафиксированы»
При работе формы произошла системная ошибка (нарушена синхронизация состояния формы на клиенте и на сервере). «Различаются значения счётчиков для данных форм»
Расследование:
Для того, чтобы понять, что происходит:
Включаем технологический журнал на всех серверах 1С:Предприятия кластера, в котором находится интересующая нас информационная база. Используем наиболее полный файл настроек технологического журнала 1С(пример файла можно посмотреть в Настройка и сбор логов для анализа проблем производительности систем 1С на Linux);
Просим пользователя воспроизвести ошибку;
Забираем записи технологического журнала со всех серверов кластера к себе на компьютер;
Приступаем к анализу логов тж с помощью утилиты git bash.
Парсим технологический журнал 1С по пользователю, у которого возникла ошибка, в временном интервале ее возникновения.
1 |
grep -P '^01:.+Лапина|^02:.+Иванов' --color /D/logs1с/rphost_*/21042611.log |
При разборе обнаруживаем таймаут, согласно которому пользователь Иванов ожидает освобождения ресурсов
1 |
02:18.818000-0,TTIMEOUT,5,process=rphost,p:processName=base,OSThread=31645,t:clientID=235804,t:applicationName=WebServerExtension,t:computerName=1s-on-web,t:connectID=787239,SessionID=55681,Usr=Иванов,AppID=1CV8C,DBMS=DBPOSTGRS,DataBase=1s-on-1c\base,WaitConnections=739428,Context='Форма.Вызов : ОбщаяФорма.ГруппыИПолномочия.Модуль.СохранитьНастройкиНаСервере |
В тексте данного сообщения технологического журнала — находим номер соединения, которое блокирует ресурсы.
В нашем случае — это соединение 739428.
Снимаем блокировку 1С.
В консоли «Администрирование серверов 1С Предприятия» находим сеанс, соответствующий данному соединению 739428.
Удаляем найденный блокирующий сеанс Лапкиной.
Важный момент:
после сброса пользователя, необходимо убедиться, что его блокировка 1С также покинула информационную базу.
Необходимо открыть ветку «Блокировки» консоли администрирования 1С и поискать блокировку по номеру соединения. В нашем случае – 739428.
Если блокировка еще будет в списке, то необходимо перезапустить службу сервера 1С:Предприятия.
Как выяснилось, несмотря на то, что пользователи присылали только сообщения, приведенные выше, помимо них также открывалось сообщение о конфликте блокировок 1С…
1 2 |
Конфликт блокировок при выполнении транзакции: Превышено максимальное время ожидания предоставления блокировки. |
Блокирующий сеанс был сброшен, а работа других пользователей — восстановлена.
О том, почему возникла данная блокировка – читайте в нашей следующей статье…
Еще можно посмотреть
Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.
Что делать, если у пользователя возникают ошибки, «все тормозит» или возникают другие неясные проблемы, а разработчик не знает где искать проблему в коде? С этой статьи мы начинаем нашу рубрику по расследованию проблем производительности и стабильности работы систем на базе 1С:Предприятия. Речь пойдет о реальных примерах анализа технологического журнала 1С экспертами с помощью регулярных выражений. […]
Что такое PG_TEMP в PostgreSQL для 1С
pg_temp — это пространство СУБД PostgreSQL для временных таблиц, то есть таблиц, существующих в пределах жизни одного соединения (в терминах СУБД) или сеанса (в терминах кластера 1С). Такие таблицы мы можем увидеть в тексте запроса СУБД, если в запросе на языке запросов 1С присутствует конструкция ПОМЕСТИТЬ, которая и помещает выборку во временную таблицу. Таким образом […]
Настройка и сбор логов для анализа проблем производительности систем 1С на Linux
Для осуществления мониторинга за качеством работы систем на базе 1С, а также для анализа проблем с производительностью, необходимо уметь настраивать сбор логов, дампов. Настройка сбора логов 1С под Linux имеет ряд особенностей. О них мы и поговорим в данной статье. Описание приводится для ОС Linux дистрибутивов RHEL/CentOS 7. 1. Как настроить и включить технологический журнал […]
Статистика PostgreSQL при работе с 1С:Предприятием
В этой статье поговорим о статистике в PostgreSQL. 1. Симптомы неактуальной статистики в базе. 2. Как обновляется статистика в PostgreSQL и надо ли ее обновлять принудительно? 3. Как обновить статистику в PostgreSQL вручную? Симптомы неактуальной статистики в базе. В какой-то момент(в какой именно теперь уже не вспомнит никто) тестовая база начала сильно тормозить, при низкой […]
Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
В этой статье мы поговорим о том, что такое таймаут на управляемых блокировках 1С:Предприятия и как расследовать причины его возникновения. При управляемом режиме , помимо управляемых блокировок 1С:Предприятия, на стороне СУБД в этот самый момент могут действовать также свои блокировки СУБД, обеспечивая изоляцию на более низком уровне. Блокировки СУБД при этом, в общем случае, осуществляются […]
Ошибка 1С:Предприятие «Потеряно соединение»
Потеряно соединение Во время выполнения действия была потеряна связь с сервером. Проверьте сетевой соединение и нажмите "Повторить" для повторной попытки выполнения действия. Если ошибка повторится, возможно, сервер временно недоступен.
1C тормозит и возникают ошибки. С чего начать расследование?
Когда мы читаем о том, как настраивать и анализировать технологический журнал 1С на предмет «узких» мест, мы не всегда представляем себе, что это отнюдь не первое, что нужно сделать, когда сталкиваемся с падением производительности и стабильности работы системы. Прежде чем «бросаться» собирать технологический журнал и его парсить, изначально рекомендуется провести первичный сбор информации о проблеме: […]
Похожие записи
- Ошибка 1С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Статистика PostgreSQL при работе с 1С:Предприятием
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.