Как решить проблему, когда рабочий процесс 1С активен, но не включен (или включен, но не активен)

Системный администратор IT и автоматизация бизнеса
← На главную

При администрировании кластера серверов «1С:Предприятие 8.2» и более поздних версий (8.3) технические специалисты часто сталкиваются с аномальным поведением рабочих процессов rphost.exe. Самая распространенная ситуация: в консоли администрирования добавляется новый рабочий процесс, его статус отображается как «Активен», но при этом флаг «Включен» снять или установить невозможно (он остается неактивным). Другой вариант этой же проблемы — процесс числится как «Включен», но статус «Активен» упорно показывает «Нет».

Обычно системные администраторы решают эту проблему радикально — полной перезагрузкой службы «Агент сервера 1С:Предприятия» (ragent) или всего физического сервера. Однако это приводит к аварийному завершению сеансов всех активных пользователей и прерыванию регламентных заданий. В рамках этой статьи мы подробно разберем внутреннюю логику работы кластера, выясним причины расхождения статусов и рассмотрим эффективные способы устранения неполадок без остановки работы всей системы.

Разбираемся в понятиях: разница между статусами «Включен» и «Активен»

Для начала проанализируем, что именно означают эти два флага в консоли администрирования кластера 1С, поскольку их часто путают:

Почему расходятся статусы рабочих процессов?

Рассмотрим детально две основные ситуации расхождения статусов, с которыми сталкиваются администраторы.

Ситуация А: «Включен: Нет», «Активен: Да»

В большинстве случаев это штатное поведение системы, связанное с механизмом автоматического перезапуска (рециклинга) рабочих процессов. В настройках сервера 1С можно задать лимит потребления памяти на один процесс или интервал его перезапуска. Когда процесс достигает установленного лимита, кластер производит следующие действия:

  1. Создает новый чистый рабочий процесс rphost.exe со статусами «Включен: Да» и «Активен: Да». Все новые пользователи начинают подключаться к нему.
  2. Старому («замусоренному») процессу присваивается статус «Включен: Нет». Новые соединения на него больше не направляются.
  3. При этом старый процесс остается в состоянии «Активен: Да». Это необходимо для того, чтобы уже подключенные к нему пользователи могли спокойно завершить свои текущие транзакции и сеансы.
  4. Старый процесс завершится автоматически (станет неактивным) только тогда, когда его покинут все пользователи, либо по истечении таймаута, заданного в параметре кластера «Выключенные процессы останавливать через N секунд». Если этот параметр равен 0, выключенный процесс может висеть в памяти сервера бесконечно.

Ситуация Б: «Включен: Да», «Активен: Нет»

Это классический аварийный сценарий (именно он часто описывается на форумах). Кластер рассчитывает использовать процесс, но сам исполняемый файл rphost.exe на уровне операционной системы запуститься не может. Выясним основные причины:

Как решить проблему без перезапуска службы 1С

Перезапуск службы Агента 1С — самый простой, но наименее профессиональный метод, так как он прерывает работу пользователей. Рассмотрим более тонкие и безопасные методы решения проблемы по шагам.

Шаг 1. Принудительное точечное завершение процесса по PID

Если рабочий процесс завис в неопределенном состоянии («активен, но не включен» или завис при выключении), его можно завершить на уровне операционной системы. Кластер спроектирован так, что при падении или принудительном закрытии одного rphost.exe менеджер кластера мгновенно и автоматически запускает новый аналогичный процесс взамен убитого.

Проанализируем эту процедуру:

  1. Откройте консоль администрирования серверов 1С.
  2. Перейдите в ветку Рабочие серверы -> [Имя вашего сервера] -> Рабочие процессы.
  3. Найдите проблемный процесс и откройте его свойства. Обратите внимание на поле PID (идентификатор процесса в операционной системе).
  4. Подключитесь к серверу приложений через Удаленный рабочий стол (RDP).
  5. Откройте «Диспетчер задач» (Task Manager) или утилиту Process Explorer. Перейти на вкладку «Подробности» (Details).
  6. Найдите процесс rphost.exe, у которого идентификатор (PID) совпадает с полученным из консоли 1С.
  7. Нажмите правую кнопку мыши и выберите Завершить дерево процессов (End Process Tree).

После этого менеджер кластера зафиксирует потерю процесса и автоматически инициализирует запуск нового чистого экземпляра rphost.exe с корректными статусами. Пользователи, находившиеся на зависшем процессе, будут автоматически перенаправлены на другие активные процессы без потери данных (при условии использования отказоустойчивого кластера).

Шаг 2. Настройка времени остановки выключенных процессов

Чтобы старые неиспользуемые процессы не накапливались в системе в статусе «Активен: Да, Включен: Нет», необходимо правильно настроить параметры автоматического завершения. Разберем, как это сделать:

  1. В консоли администрирования 1С откройте свойства вашего кластера серверов.
  2. Найдите параметр «Выключенные процессы останавливать через» (по умолчанию там может стоять значение 0, что запрещает их автоматическое закрытие).
  3. Установите значение в диапазоне от 1000 до 3600 секунд (от 15 минут до 1 часа). Этого времени вполне достаточно, чтобы активные пользователи завершили свои транзакции, после чего операционная система корректно завершит процесс.

Шаг 3. Анализ и расширение диапазона портов рабочего сервера

Если рабочие процессы создаются, но сразу переходят в статус «Активен: Нет», велика вероятность нехватки свободных сетевых портов. По умолчанию для рабочих процессов выделен диапазон 1560–1591 (всего 32 порта).

Выясним, как расширить этот диапазон:

  1. В консоли администрирования перейдите в свойства вашего рабочего сервера (в ветке «Рабочие серверы»).
  2. Найдите поле Диапазон портов.
  3. Измените верхнюю границу диапазона, например, установите 1560-1691. Это даст кластеру больше пространства для маневра при динамическом выделении портов под новые процессы rphost.exe.
  4. Убедитесь, что брандмауэр Windows (или сторонний фаервол) на сервере не блокирует этот новый диапазон портов.

Шаг 4. Очистка кеша сервера 1С

В случаях, когда конфигурационные файлы кластера повреждены или забиты некорректными метаданными, процессы могут бесконечно зависать при попытке старта. Для исправления этой ситуации выполните очистку кэша сервера в технологическое окно:

  1. Остановите службу «Агент сервера 1С:Предприятия».
  2. Перейдите в каталог хранения данных кластера (обычно это C:\Program Files\1cv8\srvinfo\ или C:\ProgramData\1C\1cv8\).
  3. Удалите все временные папки с кэшем метаданных. Важно: не удаляйте файл настроек кластера 1CV8Clst.lst (или 1cv8wsrv.lst), так как в нем хранится список зарегистрированных баз данных и настройки кластера. Удалению подлежат вложенные папки вида snccntx* и временные файлы сессий.
  4. Запустите службу сервера 1С заново. Данные кластера синхронизируются, и рабочие процессы запустятся корректно.

Применяя данные методы на практике, вы сможете поддерживать высокую доступность серверов «1С:Предприятие» и решать проблемы с зависанием рабочих процессов без создания неудобств для пользователей вашей организации.

← На главную