Сервер приложений

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

Сервер приложений можно запустить как консольное приложениеServerIcon16 ConsoleServer.exe (используется преимущественно разработчиками), или установить как службу, запустив тот же файл с ключом install (с правами администратора) – UltimaService.exe install.

35_important

Запускать сервер как консольное приложение следует с правами администратора.

Поддерживаются следующие опции командной строки – ConsoleServer.exe [ключ] [-опция:значение] [-переключатель]:

run – запустить как консольное приложение (используется по умолчанию при запуске без ключа);

help – показать помощь;

install установить службу:

-usernameимя пользователя для запуска сервиса;

-password – пароль указанного пользователя;

-instance – имя экземпляра службы, если она устанавливается несколько раз;

--autostartслужба должна запускаться автоматически (опция по умолчанию);

--disabledслужба должна быть установлена со статусом запрещена;

--manual – служба должна запускаться вручную;

--delayedслужба должна запускаться автоматически (с задержкой);

--localserviceзапускать службу с учетной записи локальной службы;

--networkserviceзапускать службу с разрешениями сетевой службы;

--interactive – служба обратится к пользователю во время установки за полномочиями службы;

--sudoзапросы к UAC, если выполняется на W7/2008;

-servicenameимя службы, которое должно использоваться при установке. По умолчанию служба устанавливается с именем UltimaService;

-descriptionописание службы, которое должно использоваться при установке;

-displayname – отображаемое имя службы, которое должно использоваться при установке;

start запустить службу, если она еще не запущена:

-instance – экземпляр службы для запуска;

stopостановить службу, если она запущена:

-instance – экземпляр службы для остановки;

uninstall удалить службу;

-servicename – имя службы;

-instance – имя экземпляра службы, если она устанавливалась несколько раз;

--sudoзапросы к UAC, если выполняется на Vista/W7/2008;

параметры, влияющие на запуск сервера приложений в консольном режиме:

-AppServerID:N – код сервера приложений N (целочисленный параметр, нет значения по умолчанию);

-TcpPort:N — номер TCP-порта N (целочисленный параметр, нет значения по умолчанию);

-DuplexProtocol:true/false — использовать дуплексный или симплексный протокол (по умолчанию true);

-UseManagedDataProvider:true/false — использовать управляемый провайдер данных (по умолчанию true);

--SkipLoadingMetadata — пропустить загрузку метаданных (если они повреждены).

35_important

Если при установке служба была переименована (servicename) или было задано имя ее экземпляра (instance), эти параметры придется указывать для всех действий со службой запуска, остановки или удаления.

Практически все настройки сервера приложений (и кластера) хранятся на сервере базы данных. Конфигурация кластера в минимальном объеме включает в себя перечень серверов. На самом сервере приложений настраиваются только опции запуска серверного модуля. Они хранятся в XML-файле (стандартном для любого .NET приложения) ConsoleServer.exe.config.

Настройки, которые может менять администратор, находятся в секции userSettings:

<userSettings>

 <Ultima.Server.Properties.Settings>

         <setting name="ServiceHostName" serializeAs="String">

                 <value>UltimaServer</value>

         </setting>

         <setting name="TcpPort" serializeAs="String">

                 <value>8192</value>

         </setting>

         <setting name="UseManagedDataProvider" serializeAs="String">

                 <value>True</value>

         </setting>

         <setting name="ConnectionString" serializeAs="String">

                 <value>Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)

                         (HOST=192.168.0.24)(PORT=1521))

                         (CONNECT_DATA=(SERVICE_NAME=UNEXT)));

                         User ID=ultima;Password=******;Enlist=True;

                         Promotable Transaction=Local;</value>

         </setting>

         <setting name="DuplexProtocol" serializeAs="String">

                 <value>True</value>

         </setting>

         <setting name="AssembliesFolderName" serializeAs="String">

                 <value>ServerAssemblies</value>

         </setting>

         <setting name="AppServerID" serializeAs="String">

                 <value>1</value>

         </setting>

         <setting name="ScriptCacheFolderName" serializeAs="String">

                 <value>Scripts</value>

         </setting>

         <setting name="LicenseFileName" serializeAs="String">

                 <value>UltimaLicense.xml</value>

         </setting>

         <setting name="TaskStatSyncInterval" serializeAs="String">

                 <value>1000</value>

         </setting>

         <setting name="TaskExecutorLogin" serializeAs="String">

                 <value>TaskExecutor</value>

         </setting>

         <setting name="TaskExecutorPassword" serializeAs="String">

                 <value>UltimaDerPassword</value>

         </setting>

         <setting name="TaskSchedulerActive" serializeAs="String">

                         <value>True</value>

         </setting>

 </Ultima.Server.Properties.Settings>

</userSettings>

ServiceHostName – имя сервера приложений, это имя будет отображаться в списке сервисов.

TcpPort – порт, по которому другие сервера и клиентские приложения будут получать доступ к данному серверу приложений.

UseManagedDataProvider — использовать управляемую версию ODP.NET (Oracle Data Provider Managed Driver) или обычную версию, требующую установки Oracle Client. Использование управляемого драйвера предпочтительнее, т. к. не требует администрирования.

ConnectionString – строка, содержащая настройки доступа к серверу базы данных.

При использовании встроенного драйвера доступны следующие опции:

Data Source или Server или Host – имя сервера базы данных Oracle к которой осуществляется подключение;

User ID или User – учетная запись Oracle;

Password – пароль для учетной записи Oracle;

Service Name – имя экземпляра базы данных Oracle;

SID – уникальное имя экземпляра базы данных Oracle;

Statement Cache Size – включает или выключает кэширование операторов. Значение определяет максимальное количество операторов, которые могут кэшироваться для подключения. По умолчанию этот атрибут имеет значение 0 (отключено). Кэширование операторов начинается, если этот параметр установлен в значение больше 0. Он не должна быть больше, чем MAX_OPEN_CURSORS параметр в базе данных Oracle;

Connection Timeout – время (в секундах) ожидания при попытке установить соединение перед завершением попытки и генерацией ошибки. Значение 0 означает отсутствие ограничения. Значение по умолчанию 15 (секунд);

Pooling – в значение true используется пулинг соединений. Пулинг соединений позволяет сократить время обращения к БД. Значение по умолчанию true;

Min Pool Size – минимальное количество подключений в пуле. Значение по умолчанию 0;

Max Pool Size – максимальное количество подключений в пуле, может повлиять на производительность. Значение по умолчанию 100;

Connection Lifetime – время жизни соединения. Пр соединение возвращается в пул, время его создания сравнивается с текущим временем, и соединение будет закрыто, если этот промежуток времени (в секундах) превышает значение, указанное в Connection Lifetime. Значение по умолчанию 0;

Default Command Timeout – время в секундах при попытке выполнить команду перед завершением попытки и генерацией ошибки. 0 означает отсутствие ограничения;

Validate Connection – определяет, проверять ли соединения, которые приходят из пула;

Enlist – включает (в значении true) или выключает автоматическое прикрепление к распределенной транзакции в существующих транзакциях;

Promotable Transactionуказывает, локальная ли транзакция (в значении local) или распределенная (в значении promotable) в течение ее жизни.

При использовании неуправляемой версии ODP.NET можно также задать следующие параметры:

Home – значение Oracle Home, который будет использоваться;

Oci Session Pooling – в значении true делает доступными функции пула сессий OCI (OCI Session Pooling);

Oci Session Pool Allow Waiting – в значении true новые соединения будут ожидать закрытия существующих, если значение, установленное параметром Oci Session Pool Max Size, будет достигнуто, в значении false – отклонены;

Oci Session Pool Connection Lifetime – определяет время жизни соединения в секундах. Перед возвращением подключения обратно в пул время его жизни проверяется. Если время жизни соединения превышает значение этого свойства, соединение закрывается и удаляется. Если этот параметр имеет значение 0, время жизни соединения никогда не проверяется;

Oci Session Pool Increment – позволяет приложениям устанавливать следующее приращение для сессий, которые будут запущены, если текущее число сессий меньше чем Oci Session Pool Max Size. Допустимые значения 1 и выше;

Oci Session Pool Max Size – определяет максимальное число сессий, которые могут быть открыты в пуле сессий. Как только это значение будет достигнуто, новые сессий больше не будут открыты. Допустимые значения 1 и выше;

Oci Session Pool Min Size – задает минимальное число сессий в пуле сессии. Это количество сессий будет запущено изначально. После этого сессии будут открываться только при необходимости;

Oci Session Pool Password – определяет пароль для пользователя прокси, если установлен;

Oci Session Pool User Id – определяет логин для пользователя прокси, если установлен. Доступно только при установке параметра OCI Session Pooling в значение true.

DuplexProtocolиспользовать встроенный канал драйвера связи с клиентскими приложениями или стандартный .NET Remoting, имеет следующие значения:

true – используется дуплексный канал (рекомендуемое значение);

false – используется стандартный канал .NET Remoting.

AssembliesFolderName – название папки, в которую загружаются модули сервера.

AppServerID – идентификатор сервера приложений, совпадает с идентификатором данного сервера приложений в системе Ultima Businessware® (подробнее см. раздел Сервера и кластеры).

ScriptCacheFolderName – название папки, в которую кэшируются скрипты.

LicenseFileName – название файла лицензии;

TaskStatSyncInterval – интервал (в мс) опроса сервера БД планировщиком выполнения заданий;

TaskExecutorLogin – имя пользователя (системы Ultima Businessware®), под которым будет выполняться задание;

TaskExecutorPassword – пароль для указанного логина;

TaskSchedulerActive – работает ли планировщик (True – да, False – нет) на этом сервере приложений. Задания должны выполняться только на одном сервере приложений системы (кластера).

35_settings

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

установить на компьютер операционную систему семейства Windows;

пользователь операционной системы, под которым запускается сервер приложений, должен иметь права администратора;

установить платформу .NET Framework версии не ниже 4.6;

скопировать дистрибутив AppServer;

отредактировать файл конфигурации UltimaService.exe.config;

дополнительные настройки сервера приложений осуществляются в модуле администратора клиентского приложении Ultima Businessware® и описаны в разделе Сервера и кластеры.

На одном сервере может быть установлено несколько служб сервера приложений. У каждой службы должен быть свой файл настроек *.exe.config. Файл настроек имеет такое же имя, как исполняемый файл приложения, поэтому потребуется несколько исполняемых файлов. Можно установить службы в отдельные папки, или же просто скопировать файл ConsoleServer.exe в одной и той же директории. Каждому файлу сервера будет соответствовать свой файл конфигурации:

ConsoleServer.exe

ConsoleServer.exe.config

ConsoleServer2.exe

ConsoleServer2.exe.config

Для каждой службы сервера необходимо указать свое наименование экземпляра (instance). Для этого используется опция instance командной строки:

ConsoleServer.exe install -instance:First

ConsoleServer2.exe install -instance:Second

Для запуска, остановки или удаления службы необходимо указывать экземпляр:

ConsoleServer.exe start -instance:First

ConsoleServer2.exe stop -instance:Second

ConsoleServer.exe uninstall -instance:First

По умолчанию служба устанавливается с именем UltimaService. При установке ей можно указать другое имя с помощью опции командной строки -servicename. Эту опцию можно комбинировать с параметром -instance:

ConsoleServer.exe install -servicename:Ultima -instance:First

ConsoleServer.exe start -servicename:Ultima -instance:First

ConsoleServer.exe stop -servicename:Ultima -instance:First

ConsoleServer.exe uninstall -servicename:Ultima -instance:First