Как одновременно запустить два агента сервера 1С на одной машине и настроить кластеры

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Рассмотрим подробно причины возникновения этих проблем, разберем по шагам правильный алгоритм настройки двух агентов сервера 1С и выясним, как правильно распределить порты и рабочие каталоги.

Причины проблем при параллельном запуске серверов 1С

Проанализируем ситуации, которые приводят к сбоям при совместной работе двух агентов:

  1. Указание портов через интерфейс MMC вместо параметров запуска службы. Попытка изменить порт центрального сервера через свойства в консоли администрирования MMC переписывает конфигурационный файл списка серверов appsrvrs.lst, который является общим для текущей учетной записи. Порты агента задаются строго в параметрах запуска службы Windows.
  2. Использование общего рабочего каталога. Если при создании второй службы не переопределен путь к каталогу данных (параметр -d), обе службы начинают одновременно использовать стандартный каталог srvinfo. Это приводит к повреждению файлов кеша и списков кластеров 1CV8Clst.lst.
  3. Конфликт библиотеки MMC-консоли. Оснастка администрирования Windows (MMC) использует DLL-библиотеку radmin.dll. В реестре системы одновременно может быть зарегистрирована библиотека только от одного релиза платформы. Поэтому при попытке открыть разные версии через одну консоль возникают ошибки несовместимости версий.
  4. Путаница между портами агента и менеджера кластера. При подключении из клиентского приложения или при настройке базы необходимо обращаться к порту главного менеджера кластера rmngr, а не к порту самого агента ragent. Указание порта агента вызывает ошибку serviceName=ClusterConfigService.

Пошаговый порядок настройки двух служб серверов 1С

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

Первая служба обычно устанавливается автоматически со стандартным набором портов. Для второй службы необходимо создать новую запись в Windows Services с указанием уникальных портов и отдельного рабочего каталога.

  1. Создадим на диске отдельный каталог для данных второго сервера, например: C:\Program Files\1cv8\srvinfo_v2.
  2. Остановим имеющиеся службы 1С.
  3. Зарегистрируем вторую службу Windows с помощью командной строки или утилиты sc. В параметрах запуска обязательно разделим все сетевые порты и укажем новый рабочий каталог.

Пример строки запуска для второй службы платформы 8.3.9:


"C:\Program Files\1cv8\8.3.9.2033\bin\ragent.exe" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo_v2"

Рассмотрим назначение ключевых параметров запуска ragent.exe:

  1. -port — сетевой порт агента сервера (по умолчанию 1540, для второй службы указываем 2540).
  2. -regport — порт главного менеджера кластера (по умолчанию 1541, для второй службы указываем 2541).
  3. -range — диапазон портов для рабочих процессов rphost (по умолчанию 1560:1591, для второй службы задаем непересекающийся диапазон, например 2560:2591).
  4. -d — путь к рабочему каталогу кластера (указываем отдельный каталог для изолированного хранения настроек).

Решение проблемы с оснасткой администрирования MMC (radmin.dll)

Посмотрим на ситуацию с переключением версий в консоли MMC. Так как библиотека radmin.dll регистрируется в системе глобально, при необходимости работы с консолью кластера разных версий требуется перерегистрировать соответствующий файл radmin.dll от нужного релиза платформы.

Для регистрации библиотеки нужной версии выполним команду в командной строке, запущенной от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.9.2033\bin\radmin.dll" /s

После перерегистрации библиотеки запускаем оснастку MMC и добавляем два центральных сервера с одинаковым именем хоста, но с разным значением TCP-портов агентов (например, 1540 для первого сервера и 2540 для второго).

В качестве современней альтернативы MMC-консоли рекомендуется использовать штатный механизм RAS / RAC (Remote Administration Server / Client). Для каждого агента запускается свой экземпляр службы ras.exe с указанием соответствующего порта агента и собственного порта администрирования, что полностью исключает конфликты версий в реестре Windows.

Устранение ошибки «Не найдено ни одного сервера с размещённым сервисом serviceName=ClusterConfigService»

Проанализируем причину появления ошибки serviceName=ClusterConfigService при попытке подключения клиентского приложения к базе на нестандартном порту.

Данная ошибка означает, что тонкий или толстый клиент 1С обратился к порту агента ragent (например, 2540), на котором сервис конфигурации кластера не публикуется. Клиентские подключения должны направляться на порт главного менеджера кластера rmngr (по умолчанию 1541, а для нашего второго сервера — 2541).

При настройке строки соединения с информационной базой или при добавлении базы в список указываем имя сервера и порт менеджера кластера:

Srvr="ИмяСервера:2541";Ref="ИмяБазы";

Если порт менеджера кластера указан верно, но ошибка сохраняется, выполним следующие шаги:

  1. Проверим, открыты ли в брандмауэре Windows все порты из указанного диапазона -range (например, 2560:2591), а также порты -port (2540) и -regport (2541).
  2. Убедимся, что службы запускаются от разных рабочих каталогов и файлы в каталоге srvinfo_v2 сформировались корректно.
← На главную