Разберем классическую проблему, с которой часто сталкиваются системные администраторы и специалисты при работе с клиент-серверной версией «1С:Предприятие 8.3». При попытке пользователей войти в базу данных программа выдает критическое сообщение: «Ошибка при выполнении операции с информационной базой». При этом при анализе активных задач на сервере обнаруживается полное отсутствие рабочего процесса rphost.
Выясним причину этой неполадки, изучим архитектуру взаимодействия компонентов системы и рассмотрим пошаговое руководство по восстановлению работоспособности серверов.
Прежде чем приступать к активным действиям, проанализируем, как именно функционирует серверная часть 1С. Процесс rphost (рабочий процесс) не является самостоятельной службой, которую можно запустить вручную через исполняемый файл. Он существует в строгой иерархии процессов сервера приложений:
ragent. Менеджер отвечает за управление сервисами кластера (сервис блокировок, сервис сеансов, трансляция запросов и т. д.).rmngr. Именно rphost берет на себя всю вычислительную нагрузку: взаимодействует с клиентскими сеансами, выполняет программный код конфигурации и осуществляет запросы к СУБД (например, Microsoft SQL Server или PostgreSQL).В распределенных инфраструктурах пользователи часто работают на одном сервере (например, через терминальный доступ RDP на Сервере №1), СУБД установлена на другом (Сервере №2), а сам сервер приложений 1С может быть развернут как на Сервере №1, так и на Сервере №2 (или вообще на выделенном Сервере №3). Если мы не видим процесс rphost в диспетчере задач терминального сервера, это абсолютно нормально, если сервер приложений 1С физически запущен на другом компьютере. Рабочие процессы функционируют там, где крутится служба ragent.
Проанализируем текущую схему работы сети. Если пользователи работают терминально на первом сервере, а база данных SQL и сервер 1С установлены на втором сервере, то искать процессы rphost на первом сервере бессмысленно. Вся нагрузка ложится на второй сервер.
Для решения проблемы выполним следующие действия на сервере приложений (в нашем случае — на втором сервере, где установлен сервер 1С):
services.msc через строку «Выполнить»).При перезапуске службы ragent операционная система автоматически остановит и заново инициирует зависимые процессы rmngr и rphost.
Иногда простая попытка перезапустить службу агента 1С не приводит к успеху: служба либо зависает в состоянии «Запуск», либо запускается, но процессы rphost так и не появляются в диспетчере задач. Часто это связано с повреждением конфигурационных файлов или кэша сеансов.
Рассмотрим алгоритм полной очистки серверного кэша:
ragent, rmngr и rphost полностью завершили работу. Если какие-то процессы зависли, завершим их принудительно (кнопкой «Снять задачу»).C:\Program Files\1cv8\srvinfo\ (или C:\Program Files (x86)\1cv8\srvinfo\ для 32-битной версии).reg_1541 (где 1541 — порт кластера по умолчанию).snccntry...), но будьте осторожны: не удаляйте файл 1cv8wsrv.lst, так как в нем хранится список зарегистрированных на сервере информационных баз. Если его удалить, базы придется регистрировать в консоли администрирования заново.rphost должны успешно стартовать.Если сервер 1С и СУБД разнесены по разным физическим машинам, причиной падения или отсутствия запуска процессов rphost могут стать сетевые ограничения брандмауэра.
Нам необходимо проверить, открыты ли порты, по которым общаются компоненты системы:
rmngr).ragent).rphost.Если брандмауэр Windows (Firewall) или сторонний антивирус на сервере блокирует эти порты, рабочий процесс rphost не сможет связаться с менеджером кластера и клиентами, что приведет к его аварийному завершению. Добавим исполняемые файлы 1С в исключения брандмауэра или откроем указанные диапазоны портов для входящего и исходящего трафика.
Часто рабочие процессы rphost аварийно завершают работу из-за банальной нехватки оперативной памяти на сервере приложений или из-за утечек памяти, вызванных неоптимальным кодом в конфигурациях. Для минимизации таких рисков настроим параметры кластера 1С.
Откроем утилиту «Администрирование серверов 1С Предприятия»:
86400 секунд (24 часа). Это позволит серверу раз в сутки автоматически и бесшовно для пользователей создавать новые процессы rphost, завершая старые и освобождая тем самым накопленную в оперативной памяти нагрузку.180 или 300 секунд. Это время, которое дается старому процессу на завершение текущих клиентских вызовов после старта нового «чистого» процесса.Проанализировав эти шаги и внедрив регулярный мониторинг системных служб, мы сможем гарантировать стабильную работу серверной инфраструктуры 1С без внезапных исчезновений процессов rphost.