При выполнении административных задач, таких как сохранение конфигурации или обновление базы данных в клиент-серверном режиме, разработчики часто сталкиваются с ситуацией: система сообщает о наличии активных подключений и требует монопольного доступа. При этом в стандартном окне «Активные пользователи» в режиме 1С:Предприятие список абсолютно пуст. Проанализируем причину этой проблемы и подробно разберем практические способы её решения.
Выясним причину, почему возникают подобные фантомные подключения. Стандартное окно активных пользователей отображает исключительно пользовательские сеансы верхнего уровня. Однако на уровне кластера серверов 1С и СУБД могут оставаться активными низкоуровневые соединения:
rphost продолжает удерживать подключение.Рассмотрим основной и самый правильный инструмент администратора — консоль администрирования кластера серверов 1С. В ней отображаются абсолютно все действующие соединения, включая пассивные и служебные.
Если доступ к консоли кластера отсутствует или принудительное удаление сеансов из консоли не помогает, разберем способ с очисткой кэша сеансовых данных на сервере 1С.
В каталоге реестра кластера (по умолчанию путь выглядит как srvinfo\reg_1541\) хранится папка snccntx[...], содержащая сеансовые данные. Очистка этой папки позволяет сбросить зависшие контексты.
Критически важно: процедуру очистки папки snccntx допускается выполнять только при полностью остановленной службе сервера 1С (1C:Enterprise 8.3 Server Agent). Если удалить файлы на работающем сервере, это приведет к аварийному завершению процессов rphost и rmngr, а также к повреждению временных данных всех баз кластера!
1C:Enterprise 8.3 Server Agent).C:\Program Files\1cv8\srvinfo\reg_1541\).snccntx[...]. Не удаляйте весь каталог reg_1541, чтобы не потерять журнал регистрации и полнотекстовый индекс!Посмотрим на ситуацию со стороны базы данных. Зависшие незавершенные транзакции на стороне СУБД могут блокировать системные таблицы конфигурации (такие как params или config).
Если перезагрузка службы 1С не принесла результата, попробуем перезапустить службу СУБД или выполнить перезагрузку сервера базы данных. Это принудительно сбросит все открытые сетевые сокеты и уберет незавершенные блокировки таблиц на уровне SQL.
Разберем хитрость, которая позволяет сбросить соединения непосредственно из Конфигуратора без входа в консоль сервера. В платформе 1С предусмотрен встроенный механизм запроса монопольного доступа.
Конфигуратор.Проанализируем случай, когда база опубликована на веб-сервере (IIS или Apache). Тонкие клиенты, подключающиеся по HTTP/HTTPS, взаимодействуют с базой через модуль расширения веб-сервера. Пул приложений может держать соединения открытыми даже после того, как пользователи закрыли свои программы.
Для решения достаточно выполнить перезапуск пула приложений в консоли IIS (действие Recycle) или перезапустить службу веб-сервера Apache. Это мгновенно освобождает зависшие веб-подключения.
Чтобы избежать повторения этой проблемы в будущем, настроим автоматическое завершение пассивных сессий. В параметрах информационной базы в администрировании кластера выставим значение для параметров:
Эти настройки позволят кластеру 1С самостоятельно своевременно зачищать «забытые» и зависшие подключения пользователей.