Зависание службы агента сервера 1С — одна из самых сложных проблем для системного администратора и программиста. В отличие от явной ошибки, "зависание" часто не оставляет прямых следов, требуя комплексного анализа всей системы: от настроек кластера до внешних компонент защиты. В данной статье мы разберем ситуацию на примере работы конфигурации Альфа-Авто 6, где сервер 1С перестает отвечать раз в несколько дней, и выясним, как найти и устранить причину сбоя.
Первым делом нам необходимо понять, что происходит внутри рабочего процесса rphost в моменты, предшествующие зависанию. Обычный журнал регистрации 1С здесь не поможет, так как он фиксирует только события прикладного уровня. Нам потребуется настроить Технологический журнал (ТЖ).
Создадим файл logcfg.xml в каталоге настроек сервера (обычно это C:\Program Files\1cv8\conf). Нас интересует событие EXCP (Exception), которое регистрирует все исключительные ситуации, возникающие в процессе работы. Рассмотрим пример конфигурации файла:
<config xmlns="http://v8.1c.ru/7.4/config">
<log location="C:\Logs\1C_Excp" history="72">
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="All"/>
</log>
</config>
После активации ТЖ проанализируем полученные логи. В нашей ситуации часто встречается ошибка SeanceContextException. Она означает попытку получения неинициализированного значения параметра сеанса. Хотя сама по себе эта ошибка может казаться прикладной, в контексте защищенных решений (как Рарус или БИТ) она часто свидетельствует о том, что сеанс потерял связь с внешней компонентой защиты или ключом, и при попытке обращения к защищенным функциям процесс "падает" или блокируется.
Если служба агента "зависает намертво" или процесс rphost завершается аварийно, информация об этом обязательно попадает в системный журнал Windows. Разберем, как правильно провести этот анализ.
В описании такой ошибки крайне важно обратить внимание на строку "Имя сбойного модуля" (Faulting module name). Проанализируем типичные ситуации:
core83.dll или wka-win64.dll, проблема, скорее всего, в самой платформе 1С.RarusAddIn.dll или компоненты системы СЛК (Система лицензирования и защиты), корень зла кроется во взаимодействии с защитой конфигурации.В случае с Альфа-Авто 6, обращение к защищенному модулю ЗащищенныеФункцииСервер вызывает внешнюю компоненту. Если компонента защиты имеет утечку памяти или несовместима с текущей сборкой платформы 8.3.14/8.3.16, это приводит к критической ошибке доступа к памяти (Access Violation), после чего rphost перестает отвечать, а менеджер кластера не может его корректно перезапустить.
Стандартные настройки кластера 1С часто не подходят для нагруженных систем (70-90 пользователей). Проанализируем параметры рабочего сервера и изменим их для повышения стабильности. Это особенно важно, если вы используете лицензии уровня КОРП, дающие расширенные возможности управления процессами.
Рассмотрим ключевые параметры, которые помогут локализовать проблему:
rphost увеличивает вероятность того, что ошибка одного пользователя "уронит" работу всех остальных.86400 секунд (24 часа). Принудительный перезапуск процессов раз в сутки помогает бороться с постепенными утечками памяти в компонентах защиты.Выясним причину, по которой rphost получает сигнал Stop signal received (windows). Часто это происходит из-за того, что сервер защиты (например, Сервер защиты Рарус или СЛК) теряет физический или программный ключ. Если ключ проброшен в виртуальную машину через USB-over-IP или средства гипервизора, малейший сетевой лаг может привести к тому, что внешняя компонента внутри 1С заблокирует поток в ожидании ответа от ключа.
Проанализируем следующие рекомендации:
C:\ProgramData\1C-Rarus или C:\ProgramData\1C-SLK).Иногда "фантомные" зависания связаны с повреждением временных файлов сервера 1С. Рассмотрим процедуру полной очистки системы:
C:\Program Files\1cv8\srvinfo\reg_1541).snccntx — это сеансовые данные, повреждение которых часто вызывает SeanceContextException.Local Settings\Temp).C:\ProgramData\1C-Rarus\ (или аналогичную для вашей версии).Посмотрим на ситуацию под другим углом: если зависание происходит стабильно раз в 1-2 дня, проверим регламентные задания. Возможно, в Альфа-Авто запускается тяжелое задание (например, обмен с бухгалтерией или загрузка прайсов), которое конфликтует с системой защиты или вызывает переполнение памяти в rphost. Проанализируем консоль администрирования в момент зависания: если мы видим сеансы, которые "захватили СУБД" на длительное время, проблема может быть в неоптимизированном запросе, который блокирует поток, а защита лишь усугубляет ситуацию.
Суммируя вышесказанное, наиболее вероятный сценарий решения выглядит так: изоляция базы Альфа-Авто в отдельный рабочий процесс (1 база на процесс), обновление сервера лицензирования Рарус и мониторинг Event Viewer на предмет конкретных DLL-ошибок. Эти шаги позволяют превратить "непонятное зависание" в конкретную техническую задачу по обновлению или замене дефектного модуля.