В процессе эксплуатации 1С:Предприятия (в частности, на платформе 8.3 и выше) администраторы часто сталкиваются с ситуацией, когда журнал регистрации становится недоступен. При попытке его открыть в режиме «Администрирование» или через «Конфигуратор» приложение зависает, а в журнале событий ОС или консоли кластера могут появляться ошибки, связанные с рабочими процессами rphost. Разберемся, почему это происходит и как вернуть доступ к логам.
Основная причина заключается в переходе платформы 8.3 на формат хранения журнала регистрации в виде базы данных SQLite. В отличие от старого текстового формата, где записи были простыми файлами, SQLite требует транзакционной целостности. Если пользователь запускает сложный отбор, требующий сканирования большого объема данных, или если в процессе формирования отчета происходит аварийное завершение рабочего процесса, файл базы данных ЖР может остаться в состоянии блокировки.
Поскольку журнал регистрации — это единый ресурс для всей информационной базы, блокировка, наложенная одним зависшим запросом, делает невозможным чтение данных для всех остальных пользователей, включая администраторов. 1С попросту «ждет», когда освободится файл, и уходит в «бесконечный» цикл ожидания.
Чаще всего проблема кроется в зависшем фоновом задании или сеансе пользователя, который инициировал тяжелый запрос к журналу. Первым делом выполним следующие шаги:
Консоль администрирования серверов 1С:Предприятия.Сеансы текущей информационной базы.Удаление (принудительное завершение) этих сеансов.В большинстве случаев этот метод помогает снять блокировку с файла SQLite без потери данных.
Если удаление сеансов через консоль не принесло результата, это означает, что файловый дескриптор удерживается процессом rphost на уровне операционной системы. В таком случае предпримем более радикальные меры:
Перезапустим службу Агент сервера 1С:Предприятия (1C:Enterprise 8.3 Server Agent) через оснастку Службы в Windows. Это принудительно закроет все соединения к базе данных, освободит захваченные файлы и сбросит состояние блокировок. После перезапуска службы доступ к журналу должен восстановиться.
Если подобные зависания происходят регулярно, стоит рассмотреть изменение параметров ведения журнала. Мы можем перевести журнал в текстовый формат, который является более устойчивым к блокировкам, либо оптимизировать работу текущего формата SQLite:
Сокращение журнала регистрации через Конфигуратор. Уменьшение размера файла напрямую влияет на скорость построения индексов при отборах.текстовом формате. Это исключит проблему блокировок SQLite, но потребует использования внешних средств (например, специализированных лог-анализаторов) для удобного чтения логов.В исключительных случаях, когда даже перезапуск службы не помогает, файл журнала может оказаться поврежденным. Если у вас есть доступ к утилитам командной строки, можно проверить целостность файла 1Cv8Log:
Используйте утилиту sqlite3.exe для выполнения проверки:
sqlite3.exe 1Cv8Log.lgd
PRAGMA integrity_check;
Если команда вернет сообщение ok, файл в порядке. Если обнаружены ошибки, может потребоваться восстановление данных или создание нового файла журнала (переименование текущего поврежденного файла, чтобы система создала новый).
Помните, что регулярное обслуживание базы данных и мониторинг регламентных заданий — лучший способ избежать подобных ситуаций в будущем. Работайте с журналом аккуратно, учитывая объем данных, накопленный в вашей системе.