При обслуживании инфраструктуры 1С:Предприятие периодически возникает необходимость совместного запуска двух разных версий платформы (например, 8.3.8 и 8.3.9) на одном физическом сервере или операционной системе. При попытке настроить их стандартным образом администраторы часто сталкиваются с тем, что изменение портов в консоли администрирования меняет параметры сразу для обоих серверов, либо клиентское приложение выдает ошибку о невозможности найти сервис конфигурации кластера.
Рассмотрим подробно причины возникновения этих проблем, разберем по шагам правильный алгоритм настройки двух агентов сервера 1С и выясним, как правильно распределить порты и рабочие каталоги.
Проанализируем ситуации, которые приводят к сбоям при совместной работе двух агентов:
appsrvrs.lst, который является общим для текущей учетной записи. Порты агента задаются строго в параметрах запуска службы Windows.-d), обе службы начинают одновременно использовать стандартный каталог srvinfo. Это приводит к повреждению файлов кеша и списков кластеров 1CV8Clst.lst.radmin.dll. В реестре системы одновременно может быть зарегистрирована библиотека только от одного релиза платформы. Поэтому при попытке открыть разные версии через одну консоль возникают ошибки несовместимости версий.rmngr, а не к порту самого агента ragent. Указание порта агента вызывает ошибку serviceName=ClusterConfigService.Разберем по шагам, как корректно зарегистрировать и запустить две независимые службы 1С на одном сервере.
Первая служба обычно устанавливается автоматически со стандартным набором портов. Для второй службы необходимо создать новую запись в Windows Services с указанием уникальных портов и отдельного рабочего каталога.
C:\Program Files\1cv8\srvinfo_v2.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:
-port — сетевой порт агента сервера (по умолчанию 1540, для второй службы указываем 2540).-regport — порт главного менеджера кластера (по умолчанию 1541, для второй службы указываем 2541).-range — диапазон портов для рабочих процессов rphost (по умолчанию 1560:1591, для второй службы задаем непересекающийся диапазон, например 2560:2591).-d — путь к рабочему каталогу кластера (указываем отдельный каталог для изолированного хранения настроек).Посмотрим на ситуацию с переключением версий в консоли 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 при попытке подключения клиентского приложения к базе на нестандартном порту.
Данная ошибка означает, что тонкий или толстый клиент 1С обратился к порту агента ragent (например, 2540), на котором сервис конфигурации кластера не публикуется. Клиентские подключения должны направляться на порт главного менеджера кластера rmngr (по умолчанию 1541, а для нашего второго сервера — 2541).
При настройке строки соединения с информационной базой или при добавлении базы в список указываем имя сервера и порт менеджера кластера:
Srvr="ИмяСервера:2541";Ref="ИмяБазы";
Если порт менеджера кластера указан верно, но ошибка сохраняется, выполним следующие шаги:
-range (например, 2560:2591), а также порты -port (2540) и -regport (2541).srvinfo_v2 сформировались корректно.