Для распределения нагрузки и снижения времени простоя при поломках оборудования сервер приложений может быть установлен на нескольких серверах.
Сервер приложений можно запустить как консольное приложение – ConsoleServer.exe (используется преимущественно разработчиками), или установить как службу, запустив тот же файл с ключом install (с правами администратора) – UltimaService.exe install.
Запускать сервер как консольное приложение следует с правами администратора. |
Поддерживаются следующие опции командной строки – 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 — пропустить загрузку метаданных (если они повреждены).
Если при установке служба была переименована (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 – нет) на этом сервере приложений. Задания должны выполняться только на одном сервере приложений системы (кластера).
Для настройки компьютера, предназначенного для функционирования сервера приложений, необходимо выполнить следующие действия: •установить на компьютер операционную систему семейства 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 |