Внезапное аварийное завершение службы Агент сервера 1С:Предприятия (исполняемый файл ragent.exe) — одна из наиболее критичных неполадок в клиент-серверной инфраструктуре. Ситуация обычно развивается по двум сценариям: служба стартует, работает некоторое время и падает при повышении нагрузки, либо служба запускается в диспетчере, но моментально отключается при попытке первого сеанса подключиться к любой информационной базе. Проанализируем ключевые источники этой проблемы и разберем по шагам действенные методы ее устранения.
Для эффективного восстановления работы сервера выясним причину аварийного завершения. Опыт администрирования и разбор аварийных ситуаций показывают, что падение процесса ragent.exe чаще всего связано со следующими факторами:
rphost.exe) или менеджером кластера (rmngr.exe), а также к падению службы при выполнении регламентных заданий.srvinfo (или svrinfo) хранятся списки баз, кластеров и их параметров в файле 1CV8Reg.lst. При некорректном завершении работы ОС или сбое записи файл может оказаться поврежден или заменен пустым файлом с нулевым размером.USR1CV8), у нее могут отсутствовать права на запись в рабочий каталог данных кластера или в профиль временных файлов.rmngr.exe или rphost.exe, которые продолжают блокировать системные порты (1540, 1541, 1560–1591). Вновь запускаемый агент не может открыть прослушивание сокетов и аварийно закрывается.1Cv8.lgd или текстовых журналов в каталоге 1Cv8Log.Рассмотрим ситуацию, когда падение происходит циклично через несколько часов работы или при выполнении фоновых заданий. В истории платформы неоднократно отзывались проблемные сборки (например, 8.2.15.318 была экстренно заменена на 8.2.15.319 из-за критических утечек памяти при регламентных заданиях и работе сеансовых данных кластера).
Разберем по шагам, как проверить и исправить ситуацию:
Application и System) и проанализируем ошибки, зарегистрированные источником 1CV8 или механизмом дампов. Если в описании события фигурирует падение модулей платформы с кодами исключений c0000005 (Access Violation), это указывает на критический программный сбой ядра.Если служба вылетает сразу после запуска или в момент открытия базы клиентом, наиболее вероятный виновник — поврежденное состояние файлов реестра кластера. Посмотрим на алгоритм диагностики каталога данных кластера серверов:
services.msc.C:\Program Files\1cv8\srvinfo (или C:\Program Files (x86)\1cv8\srvinfo для 32-разрядного сервера). При использовании версий 8.2 путь может быть C:\Program Files\1cv82\srvinfo.reg_1541) и проверим файл 1CV8Reg.lst. Обратим внимание на его размер. Если размер равен 0 байт либо рядом присутствует резервная копия (например, 1CV8Reg.lst.bak или копия, созданная операционной системой), то причина сбоя ясна: агент не может прочитать структуру баз.1CV8Reg.lst.srvinfo во временную папку-архив за пределами рабочего пути.Проанализируем конфигурацию прав доступа, под которой стартует агент. При установке сервера по умолчанию создается локальный пользователь USR1CV8.
srvinfo, вызовем ее свойства и на вкладке Безопасность убедимся, что учетная запись (USR1CV8 либо системная учетная запись, если выбран запуск от имени системы) имеет права Полный доступ на данную папку, подпапки и все файлы.USR1CV8, путь к каталогу: C:\Users\USR1CV8\AppData\Local\Temp. Если служба настроена от имени системы, путь: C:\Windows\Temp.Temp и повторно запустим службу. Это исключает падения, вызванные переполнением каталога или попыткой переписать заблокированный временный файл.Часто перезапуск службы через оснастку завершается ошибкой тайм-аута или служба сразу останавливается из-за того, что старые рабочие процессы не выгрузились из памяти. Разберем порядок действий:
1C:Enterprise Server Agent.ragent.exe, rmngr.exe, rphost.exe, а также вспомогательного процесса отладки dbgs.exe.
netstat -ano | findstr "1540"
netstat -ano | findstr "1541"
Если служба падает исключительно при открытии определенной информационной базы, выясним состояние ее журнала регистрации. Внутри каталога кластера (например, srvinfo\reg_1541) каждая база представлена подкаталогом с идентификатором UUID базы.
srvinfo\reg_1541\<Идентификатор_Базы>.1Cv8Log. Остановим службу и переименуем данную папку (например, в 1Cv8Log_old).1Cv8.lgd. После этого поврежденный журнал можно переиндексировать специальными утилитами SQLite либо архивировать и вести журнал заново.Чтобы минимизировать влияние утечек памяти и нестабильного прикладного кода на доступность сервера, настроим встроенные защитные механизмы:
rphost.exe, а старый будет мягко завершен без вылета агента.