Приветствуем, коллеги! При развертывании или обновлении сервера 1С:Предприятие системные администраторы нередко сталкиваются с неприятными сюрпризами. В консоли администрирования может отображаться пустой кластер без возможности добавления рабочих серверов, либо служба агента наотрез отказывается запускаться, рапортуя о конфликте IP-портов. Ситуация усугубляется, когда при попытке исправить положение вручную консоль выдает пугающие ошибки вроде нехватки сервисов ClusterConfigService или SessionDataService.
В этой статье мы подробно разберем природу этих неполадок, выясним, почему файлы реестра 1С приходят в негодность, и рассмотрим пошаговые сценарии решения проблем — от радикального сброса настроек до ювелирной очистки кэша сеансов без потери зарегистрированных баз.
Когда мы запускаем консоль администрирования 1С и видим абсолютно пустую древовидную структуру (где поля адреса компьютера и портов заблокированы), это сигнализирует о повреждении системных файлов реестра кластера. Давайте разберем детально, из-за чего это происходит:
C:\Program Files\1cv8\srvinfo\) хранятся временные данные активных сеансов пользователей. Они записываются в файлы с расширением .dat внутри директорий, чье имя начинается на snccntx. При аварийном завершении работы сервера, внезапном отключении электропитания или некорректной блокировке файлов антивирусным ПО эти файлы повреждаются. Менеджер кластера rmngr.exe при старте пытается прочесть битый кэш и аварийно завершает инициализацию сервисов конфигурации.1CV8Clst.lst и 1cv8wsrv.lst. При критических сбоях файловой системы NTFS в момент записи эти конфигурационные файлы могут оказаться полностью перезаписаны нулями. Для платформы это выглядит так, будто кластер создается с чистого листа, но из-за несоответствия старых кэш-файлов служба работает некорректно.Попытки вручную удалить поврежденный кластер через консоль обычно заканчиваются ошибкой, сообщающей, что на сервере не запущен сервис ClusterConfigService. Ниже мы рассмотрим два способа устранения этой проблемы.
Если сервер 1С настраивается с нуля или на нем зарегистрировано всего несколько информационных баз, которые не составит труда прописать заново, проще всего применить радикальный метод полной очистки реестра.
Выполним процедуру по шагам:
services.msc через меню «Выполнить»).1C:Enterprise 8.3 Server Agent) и остановим ее.C:\Program Files\1cv8\srvinfo\
srvinfo! Если вы удалите саму папку, операционная система при перезапуске службы создаст ее заново, но права доступа для сервисного пользователя USR1CV8 могут не унаследоваться. Очищайте именно содержимое папки.Теперь при открытии консоли администрирования перед вами предстанет корректно инициализированный локальный кластер, готовый к регистрации информационных баз.
Что делать, если на сервере зарегистрированы десятки или сотни баз, и их повторный ввод вручную займет целый рабочий день? Мы можем очистить только поврежденные сеансовые данные, не затрагивая конфигурационные файлы.
Проанализируем этот деликатный процесс:
net stop "1C:Enterprise 8.3 Server Agent"
C:\Program Files\1cv8\srvinfo\reg_1541\
Примечание: если ваш кластер работает на нестандартном порту, имя папки reg_*** будет соответствовать этому порту.
snccntx (например, snccntx5f81ca9c-85d1...). В этих каталогах лежит проблемный кэш сеансов.snccntx. Главные файлы настроек 1CV8Clst.lst и 1cv8wsrv.lst, лежащие в корне каталога srvinfo, трогать не нужно — именно в них хранится вся информация о зарегистрированных базах и настройках кластера.net start "1C:Enterprise 8.3 Server Agent"
При запуске менеджер кластера заново создаст чистые папки сеансов. Ошибка исчезнет, а все ваши базы останутся на своих местах в консоли администрирования. Для автоматизации этой процедуры можно использовать скрипт для очистки серверных сеансовых данных 1С.
Другая распространенная проблема — ошибка запуска, сообщающая о невозможности старта рабочего процесса из-за конфликта IP-портов. Это происходит в двух типичных сценариях, которые мы сейчас подробно рассмотрим.
Когда вы останавливаете службу 1С стандартными средствами Windows, процессы рабочих хостов rphost.exe или менеджера кластера rmngr.exe не всегда успевают завершить свои транзакции и остаются «висеть» в оперативной памяти в качестве зомби-процессов.
При последующем старте службы новые процессы пытаются захватить свои стандартные порты (например, 1541), но эти сетевые ресурсы все еще заняты старыми зависшими процессами. Возникает аппаратный конфликт.
Для решения этой проблемы выполним следующие действия:
ragent.exe, rmngr.exe и rphost.exe.netstat -ano | findstr 1541
Система выдаст строку с сетевым подключением, где в самом конце будет указан числовой идентификатор процесса (PID). Этот процесс можно принудительно завершить командой:
taskkill /F /PID [ID_процесса]
Если на одном физическом или виртуальном сервере разворачивается вторая служба 1С (например, для тестирования новой версии платформы), обе службы по умолчанию будут пытаться использовать одинаковый диапазон портов. Это гарантированно вызовет конфликт. Для параллельного администрирования нескольких релизов можно использовать утилиту для регистрации и запуска консоли кластера серверов 1С нужной версии.
Чтобы развести службы по разным портам, нам необходимо скорректировать параметры их запуска в системном реестре Windows:
regedit.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
1C:Enterprise 8.3 Server Agent...).ImagePath.-d, чтобы новая служба не мешала конфигурационным файлам основной платформы. Пример скорректированной строки запуска:
"C:\Program Files\1cv8\8.3.25.1238\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv8\srvinfo_second"
C:\Program Files\1cv8\srvinfo_second и предоставим учетной записи, под которой запускается служба, полные права на эту папку.Частая ошибка начинающих администраторов — удаление папки srvinfo целиком без последующей проверки прав безопасности NTFS. По умолчанию служба Агента сервера запускается под специальной локальной учетной записью USR1CV8.
Если папка была создана операционной системой автоматически при старте службы, она может не унаследовать права этой учетной записи на изменение и запись данных. В результате Агент падает сразу же после попытки старта, так как не может создать файлы конфигурации.
Чтобы вернуть права доступа на созданную папку, проанализируем и выполним следующую инструкцию:
C:\Program Files\1cv8\.srvinfo (или вашей кастомной папке, заданной ключом -d) и выберем пункт «Свойства».USR1CV8 (или доменного пользователя, под которым работает служба) и нажмем «ОК».USR1CV8 установим галочки напротив пунктов «Изменение» (Modify) и «Запись» (Write).Соблюдение этого простого правила убережет вас от бесконечных циклов падения службы 1С при любых манипуляциях с кэшем сервера.