Многие администраторы серверов 1С сталкиваются с ситуацией, когда после автоматической перезагрузки сервера служба Агент сервера 1С:Предприятия не переходит в состояние «Работает». Это создает массу неудобств, так как специалистам приходится каждое утро проверять статус службы и запускать её вручную. Давайте разберем, почему возникает такая нестабильность и как с этим бороться.
Прежде чем приступать к «лечению», нам необходимо выяснить точную причину ошибки. Система Windows ведет подробные логи всех операций. Если служба не стартовала, запись об этом обязательно сохранится в Просмотре событий.
Service Control Manager.Чаще всего в журнале обнаруживается сообщение: Превышение времени ожидания (30000 мс) при ожидании подключения службы. Это означает, что операционная система выделила службе 30 секунд на запуск, но она не успела инициализироваться, из-за чего Windows принудительно прекратила попытку запуска.
Если штатные средства настройки службы не помогают, самым надежным методом является создание задачи в Планировщике заданий Windows. Мы заставим систему принудительно запустить службу через некоторое время после загрузки, когда все ресурсы сервера будут готовы к работе.
При запуске системы.Запуск программы.net, а в поле Аргументы укажите:
start "1C:Enterprise 8.3 Server Agent"
Установите задержку выполнения задачи на 10 минут, чтобы дождаться полной готовности сетевых интерфейсов и служб баз данных. Обязательно укажите выполнение задачи с правами администратора.
В ходе обсуждения выяснилось, что нестабильный запуск — это часто следствие общей перегрузки сервера. Если у вас 30 баз и 30 пользователей, сервер может испытывать критическую нехватку оперативной памяти. Одной перезагрузки недостаточно — нужно навести порядок в распределении ресурсов.
Ограничение MS SQL Server:
По умолчанию MS SQL Server пытается захватить всю доступную оперативную память. Это оставляет слишком мало ресурсов для процессов rphost (рабочих процессов 1С). Разберем, как это ограничить:
Чтобы избежать ошибок тайм-аута в будущем, можно рассмотреть следующие технические приемы:
В реестре Windows можно увеличить интервал, который система ждет перед тем, как «убить» запуск службы. Мы можем изменить параметр ServicesPipeTimeout в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Установите значение в миллисекундах (например, 60000 для 60 секунд), чтобы дать платформе 1С больше времени на запуск при большом количестве баз.
Проверьте свойства службы в оснастке services.msc. На вкладке Зависимости убедитесь, что агент 1С «знает» о необходимости работы совместно с MSSQLSERVER. Это гарантирует, что 1С не попытается подключиться к базам до того, как движок SQL сервера полностью перейдет в режим готовности.
Применяя эти методы в комплексе, вы сможете добиться стабильной работы кластера 1С и избежать необходимости ручного вмешательства каждое утро.