История одного конфликта блокировок 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С:Предприятие «Потеряно соединение»
- Расследование конфликтов управляемых блокировок (TTIMEOUT) 1С:Предприятия
- Статистика PostgreSQL при работе с 1С:Предприятием
- Пропажа индексов дескрипторов в 1С:Документообороте
- Технологический журнал 1С и бесконечный цикл в коде 1С
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.