В процессе администрирования крупных или многобазовых кластеров 1С:Предприятие системные администраторы часто сталкиваются со специфической проблемой: в определенные часы (например, после обеда) пользователи не могут войти в базу. При этом у тех, кто уже работает, сеансы продолжают функционировать, но при попытке открыть новое подключение система «зависает» на этапе загрузки. Попытка открыть Консоль администрирования серверов 1С приводит к ее длительному зависанию, после чего выдается критическая ошибка: «Ошибка операции администрирования. Не найдено ни одного сервера с размещенным сервисом serviceName = SessionData Service...».
В этой статье мы подробно проанализируем ситуацию, выясним причины такого поведения платформы 1С и разберем по шагам, как восстановить работоспособность сервера приложений.
Проанализируем ситуацию с технической стороны. Сервис SessionDataService (сервис сеансовых данных) отвечает за хранение и предоставление информации о текущих сеансах пользователей в кластере 1С. По умолчанию этот сервис выполняется внутри главного менеджера кластера — процесса rmngr. Если на сервере резко возрастает нагрузка, процесс rmngr перестает справляться с потоком запросов и перестает отвечать на обращения рабочих процессов rphost и консоли администрирования. В результате этого новые пользователи не могут авторизоваться, а консоль зависает и выдает ошибку таймаута.
Основными триггерами этой проблемы являются:
TIME_WAIT, что делает невозможным установку новых соединений с сервисом сеансов.Рассмотрим подробнее методы устранения данной проблемы и профилактические меры для предотвращения ее повторения.
Как показывает практика, наиболее частой причиной зависания является неконтролируемое выполнение регламентных заданий. Если проблема возникает циклически в одно и то же время, выполним следующие действия:
Если менеджер кластера заблокирован из-за повреждения файлов кэша сессий, нам потребуется выполнить ручную очистку служебных каталогов. Разберем этот процесс по шагам:
services.msc) найдем службу 1C:Enterprise 8.3 Server Agent и нажмем «Остановить».C:\Program Files\1cv8\srvinfo\ (или C:\ProgramData\1C\1cv8\ в зависимости от версии и настроек установки).reg_1541).snccntx5e7b...). В этих папках хранятся кэшированные данные сессий, которые будут автоматически пересозданы при запуске.USR1CV8). Удалим содержимое папок по путям:
%localappdata%\1C\1cv8%appdata%\1C\1cv8Чтобы падение или зависание одного сервиса (например, сервиса фоновых заданий) не приводило к отказу всего кластера и блокировке SessionDataService, настроим разделение процессов rmngr:
SessionDataService) и сервисы фоновых заданий выполнялись на разных рабочих серверах или обслуживались отдельными процессами менеджера. Для этого добавим требование назначения функциональности: «Для всех объектов» -> «Сервис фоновых заданий» -> «Не назначать» на основном сервере, и «Назначать» на выделенном рабочем сервере.Если регламентные задания порождают тысячи кратковременных подключений, стандартного пула портов 1560–1591 может не хватить. Увеличим диапазон портов для рабочих процессов:
regedit) и перейдем по пути: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.ImagePath и отредактируем строку запуска службы.-range 1560:1591 на более широкий диапазон, например, -range 1560:1691.Применение этих мер в комплексе позволит полностью избавиться от зависаний при входе и исключит появление ошибок лицензирования и администрирования сеансов на сервере 1С.