<< Click to Display Table of Contents >> Администрирование (Windows) > Сопровождение работы системы > Лог-файлы во время работы Логирование информации о блокировках
|
![]() ![]() |
В Directum RX для защиты объектов от потери изменений используется механизм блокировок. С помощью него при открытии на редактирование карточки объекта или версии документа устанавливается блокировка. В это время остальные сотрудники могут только просматривать их. Кроме того, до разблокировки объекта недоступны действия, выполняемые системой. Например, формирование заданий на согласование, автоматическая выдача прав доступа.
Чтобы не задерживать процессы, в системе используется автоматическая разблокировка:
•карточек, которые не редактируются. Для всех объектов это время составляет 30 минут, для заданий – 2 часа. Значения можно изменить в конфигураторе Directum Launcher. При необходимости администратор может принудительно снять блокировку;
•зависших системных сессий. Например, если перезапустился сервис, ранее установивший блокировку на объект, то она автоматически снимается после восстановления работы сервиса;
•зависших на клиенте блокировок. Сервер отправляет клиенту список длительных блокировок. На основе этого списка проверяется, какие из них не используются и какие нужно разблокировать.
Если во время разблокировки потеряно соединение сервиса с базой данных, то после восстановления снятие блокировки повторяется.
Постоянные блокировки, не привязанные к сессии, автоматически удаляются через 30 дней.
Лог-файл веб-сервера
Информация об установке блокировки, снятии или невозможности ее установки записывается в лог-файл веб-сервера. Используйте информацию для расследования инцидентов и анализа проблемных блокировок.
Пример записи в лог-файл информации о том, что не удалось установить блокировку:
{
"t":"2024-05-08 16:16:56.779+04:00",
"pid":"16176+259",
"tr":"cl-86336a8f-fd9fe0",
"l":"Info",
"lg":"LockManager",
"mt":"Не удалось установить блокировку. Запись \"Задание\" с идентификатором 3797518 уже заблокирована пользователем \"Новикова Татьяна Олеговна\" в \"08.05.2024 14:48:58\".",
"cust":{
"lockDurationSec":5277,
"traceId":"cl-44acc8e3-c96a5c",
"lockId":"956dd769-f20b-4b50-ba37-925929ac0f34",
"clientId":"69f4a783-d19e-4899-a907-12731a69ff2c",
"entityType":"90daecb7-5d5d-465e-95a4-3235b8c01d5b",
"entityId":3797516,
"isLong":true,
"ActionName":"Lock"},
"un":"Domain\\Novikova_TO",
"v":"4.10.0.0000"
}
По записи в лог-файле можно узнать:
•продолжительность блокировки lockDurationSec. Если она превышает 60 минут, то в лог-файл добавляется дополнительный атрибут isLong со значением true. По этому атрибуту можно определить потенциально длительные блокировки, которым может потребоваться анализ;
•информацию о заблокированном объекте. По типу entityType и идентификатору entityId объект можно быстро найти в системе;
•идентификаторы блокировки lockId, трассы traceId и сессии пользователя clientId. По ним можно найти где и когда была установлена блокировка.
Идентификатор трассы TraceId, в которой была поставлена блокировка и идентификатор блокировки Id записываются также в соответствующие колонки таблиц Sungero_System_Locks (блокировки карточек) и Sungero_System_BinDataLocks (блокировки версий документов).
Информация о длительных блокировках
В системе можно отслеживать длительные блокировки и находить места их установки. Для этого используйте фоновый процесс «Логирование информации о длительных блокировках». Он запускается 1 раз в сутки ночью и проверят блокировки, установленные более:
•12 часов – на карточки объектов (lg: "SuspendedLocks");
•24 часа – на содержимое документов (lg: "SuspendedBinaryLocks").
При выполнении фонового процесса в лог-файл сервиса асинхронных событий Worker в структурированном виде записывается детальная информация.
Пример записи в лог-файл информации о блокировке карточки объекта:
{
"t":"2024-05-07 02:00:03.680+04:00",
"pid":"5092+670",
"tr":"js-0f433cec-33fd97a09b",
"l":"Info",
"lg":"SuspendedLocks",
"mt":"Lock is active for more than {lockedHours} hours.",
"args":{"lockedHours":12},
"cust":{
"lockId":"37a33c01-c1cf-4d91-8acd-c40e06761194",
"lockTime":"2024-05-06T10:28:07.567Z",
"lockDurationSec":55916,
"lockDuration":"15:31:56,1137095",
"loginId":1188,
"entityId":2823092,
"entityType":"36d7efba-d7b4-4b41-aac0-3b82a14eeef5",
"clientId":"417816ad-362f-4ee7-8c4a-8d0b128c63f4",
"entityTypeName":"Sungero.Planning.IPerformedWork",
"traceId":"cl-1a133f97-5d8463"
},
"un":"Domain\\Ardo_NA",
"v":"4.10.0.0000"
}
По записи в лог-файле можно узнать:
•идентификатор блокировки lockId, время ее установки lockTime, продолжительность lockDurationSec и lockDuration;
•тип заблокированного объекта entityType, его идентификатор entityId и имя entityTypeName;
•идентификатор loginId учетной записи пользователя, установившего блокировку;
•идентификатор сессии пользователя clientId. Например, пользователь зашел в систему одновременно с разных устройств: в веб-клиент и в мобильное приложение. В этой ситуации в записях лог-файла значения идентификаторов будут отличаться;
•идентификатор трассы traceId, по которому можно понять, где была установлена блокировка.
© Компания Directum, 2024 |