понедельник, 12 декабря 2016 г.

Обеспечение совместной работы нескольких серверных процессов

В подавляющем большинстве случаев на одном рабочем сервере функционирует один агент сервера.
Когда несколько кластеров создаются под управлением одного агента сервера, агент сервера обеспечивает отсутствие конфликтов их сетевых портов. В случае, когда кластеры создаются под управлением разных агентов сервера, отсутствие конфликтов сетевых портов менеджеров кластера следует обеспечивать самостоятельно.
Отсутствие конфликтов диапазонов сетевых портов рабочих процессов на данном сервере (если данный сервер задействован в разных кластерах) всегда следует обеспечивать самостоятельно даже в том случае, когда такие кластеры функционируют под управлением одного и того же агента сервера.
Ситуация, когда на одном компьютере функционируют параллельно два и более агента серверов, каждый из которых управляет своим набором кластеров, является вполне нормальной, но достаточно редкой и специфичной. Например, необходимость в этом может возникнуть тогда, когда на одном компьютере нужно использовать различные версии сервера «1С:Предприятия».
Для того чтобы обеспечить параллельное функционирование двух агентов сервера, обслуживающих различные кластеры, нужно соблюсти следующие условия:
● агенты серверов должны иметь различные сетевые порты;
● агенты серверов должны обращаться к различным каталогам служебных файлов;
● кластеры серверов, создаваемые для каждого из агентов серверов, должны иметь различные сетевые порты;
● диапазоны сетевых портов, используемых рабочими процессами на данном сервере, не должны пересекаться (если данный сервер задействован в различных кластерах).



Для ОС Windows

Рассмотрим действия, которые необходимо предпринять для того, чтобы запустить на компьютере второй экземпляр сервера «1С:Предприятие».
СОВЕТ. Установку второго экземпляра сервера «1С:Предприятия» рекомендуется выполнять как приложение, а не сервис ОС Windows. При необходимости регистрацию сервера в качестве сервиса можно выполнить позднее, указав при регистрации нужные параметры.

ПРИМЕЧАНИЕ. Операции регистрации, отмены регистрации, запуска и остановки сервиса агент кластера (ragent) необходимо выполнять от имени администратора. В процессе работы проверяется наличие необходимых для работы привилегий, и в случае их отсутствия выполняется запрос повышения привилегий.
Следует помнить, что программа установки не позволяет поменять сетевые порты сервера, поэтому после установки новый экземпляр сервера не сможет работать.

Примеры необходимых действий будут выполняться при запуске сервера «1С:Предприятия» на ОС аналогичной разрядности, т. е. 32-разрядного сервера на 32-разрядной ОС или 64-разрядного сервера на 64-разрядной ОС. В случае запуска 32-разрядного сервера «1С:Предприятия» на 64-разрядной ОС Windows следует путь C:\Program Files заменить на C:\Program Files (x86) во всех примерах в следующих разделах.

Одновременная работа нескольких серверов одинаковой версии «1С:Предприятия»

Как сервис
В «1С:Предприятии» отсутствуют штатные средства регистрации нескольких экземпляров сервиса сервера «1С:Предприятия» одной версии. Для того чтобы выполнить такую регистрацию, следует воспользоваться утилитой sc. При выполнении такой регистрации, должны различаться имена служб, номера сетевых портов и адреса каталогов кластера.
В качестве примера рассмотрим командный файл, выполняющий регистрацию службы сервера.


Файл register-service.bat:


rem Заплатка перед случайным запуском. Батник следует запускать только из cmd только с параметрами.
exit
@echo off
rem Запускается с параметрами: register-service 8.3.9.1850 25 "B:\Backup\1C\cluster_develop"
rem %1 – полный номер версии 1С:Предприятия
rem %2 – первые две цифры номеров портов. Для портов 1540,1541,1560:1591 – это цифра 15
rem %3 – каталог с данными реестра кластера
set SrvUserName=SuperServer\USR1CV8
set SrvUserPwd=_P@ssw0rd1C
set RangePort=%260:%291
set BasePort=%241
set CtrlPort=%240
set SrvcName="1C:Enterprise 8.3 Server Agent %CtrlPort% %1"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ragent.exe\" /srvc /agent /regport %BasePort% /port %CtrlPort% /range %RangePort% /d \"%~3\" /debug"
set Desctiption="1C:Enterprise 8.3 Server Agent 8.3. Params: %1, %CtrlPort%, %BasePort%, %RangePort%"
if not exist "%~3" mkdir "%~3"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Desctiption% depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver
sc start %SrvcName%

Перед применением данного командного файла необходимо указать в нем данные реального пользователя (имя и пароль) от имени которого будет работать служба кластера серверов (строки set SrvUserName= и set SrvUserPwd=). Данный командный файл выполняет регистрацию указанной версии сервера «1С:Предприятия». Имя службы является строкой, содержащей следующую информацию:
● 1C:Enterprise 8.3 Server Agent,
● Номер сетевого порта главного менеджера кластера,
● Полный номер версии «1С:Предприятия».
При регистрации сервера версии 8.3.3.100, использующего сетевой порт главного менеджера кластера с номером 2540, имя службы будет выглядеть следующим образом: 1C:Enterprise 8.3 Server Agent 2540 8.3.3.100.
Пример использования:
register-service 8.3.3.100 25 "c:\cluster_data\cluster 1"
register-service 8.3.3.100 35 "c:\cluster_data\cluster 2"
В данном примере первая строка выполняет регистрацию службы сервера со следующими параметрами:
● Имя службы: 1C:Enterprise 8.3 Server Agent 2540 8.3.3.100;
● Порты сервера: 2540, 2541, 2560:2591;
● Каталог с данными реестра кластера: C:\cluster_data\cluster 1;
● Описание службы: Агент сервера 1С:Предприятия 8.3. Параметры: 8.3.3.100, 2540, 2541, 2560:2591.
Вторая строка выполняет регистрацию службы сервера со следующими параметрами:
● Имя службы: 1C:Enterprise 8.3 Server Agent 3540 8.3.3.100;
● Порты сервера: 354035413560:3591;
● Каталог с данными реестра кластера: C:\cluster_data\cluster 2;
● Описание службы: Агент сервера 1С:Предприятия 8.3. Параметры: 8.3.3.100, 3540, 3541, 3560:3591.
Если необходимо отменить регистрацию службы сервера, то можно воспользоваться следующим примером командного файла.
Файл unregister-service.bat:


@echo off
rem %1 – полный номер версии 1С:Предприятия
rem %2 – первые две цифры номеров портов. Для портов 1540,1541,1560:1591 – это цифра 15
set SrvcName="1C:Enterprise 8.3 Server Agent %240 %1"
sc stop %SrvcName%
sc delete %SrvcName%
Пример использования:


unregister-service 8.3.3.100 25
Командный файл останавливает службу и удаляет ее регистрацию. Имя службы формируется по тем же правилам, что и при регистрации новой (нестандартной) службы сервера «1С:Предприятия».


Комментариев нет:

Отправить комментарий