Файл конфигурации сервера приложений
Параметры работы сервера приложений (СП) задаются в специальном конфигурационном файле appserver.config, который должен располагаться в корне каталога СП. Файл имеет формат XML и, соответственно, должен начинаться с сигнатуры:
<?xml version="1.0" encoding="windows-1251"?> |
Все параметры настройки сервера приложений задаются в тэге server-config. Внутри данного тэга прописываются параметры настроек. Таким образом, общий вид файла конфигурации выглядит следующим образом:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> … </server-config> |
Все настройки сгруппированы по их назначению. Каждая группа настроек прописывается в отдельном тэге. Для сервера приложений определены следующие группы настроек:
·database - параметры подключения к БД;
·server-mode - режим работы сервера приложений;
·logging - настройка протоколирования;
·security-config - настройка безопасности (назначение ролей сервера приложений группам пользователей операционной системы);
·storage - конфигурация хранилища;
·update-service - настройка сервиса обновления.
Параметры подключения к БД <database>
Обязательный тэг. Определяет параметры подключения сервера приложений к серверу БД. Внутри тэга определяется название поставщика СУБД (тэг provider), строка подключения к БД (тэг work-db-connection-string), лимит времени ожидания выборки СУБД (тэг select_timeout), лимит времени ожидания команды СУБД (тэг command_timeout).
Синтаксис:
<database> ... </database> |
Провайдер сервера БД <provider>
Обязательный тэг provider определяет имя поставщика сервера БД.
Синтаксис:
<provider>провайдер БД</provider> |
где:
·провайдер БД - имя провайдера БД. В настоящее время платформа предоставляет следующий перечень провайдеров БД:
·MSSQL;
·ORACLE;
·PostgreSQL.
Строка подключения к БД <work-db-connection-string>
Обязательный тэг work-db-connection-string определяет строку подключения к БД, которая используется поставщиком БД.
Синтаксис:
<work-db-connection-string>строка подключения</work-db-connection-string> |
где:
·строка подключения - строка подключения к БД.
Время ожидания ответов СУБД
Необязательный тэг select_timeout лимит времени ожидания получения результата выборки с сервера БД в секундах.
Синтаксис:
<select_timeout>число</select_timeout> |
где:
·число - лимит времени ожидания получения результата выборки с сервера БД в секундах.
Необязательный тэг command_timeout лимит времени ожидания выполнения команды серверу БД в секундах.
Синтаксис:
<command_timeout>число </command_timeout> |
где:
·число - лимит времени ожидания выполнения команды на сервера БД в секундах.
Пример:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> … <database> <provider>MSSQL</provider> <work-db-connection-string>Integrated Security=SSPI;Initial Catalog=MyDB;Data source=(local)\SQLEXPRESS</work-db-connection-string> <select_timeout>30000</select_timeout> <command_timeout>30000</command_timeout> </database> … </server-config> |
Внимание! Максимальное значение для параметров select_timeout и command_timeout равно 65535.
Настройка протоколирования <logging>
Необязательный параметр конфигурации logging определяет настройку протоколирования работы сервера приложений. В платформе определены следующие типы хранилищ протокола, в которые выводятся сообщения работы СП:
·Консольный вывод
·Текстовой файл
·Журнал событий ОС
Протоколирование можно организовать одновременно несколькими способами. Например, можно выводить протокол работы сервера приложений одновременно и в консольное окно приложения и в текстовый файл. Для каждого варианта можно настроить фильтрацию вывода информации, в которую входят как сообщения об ошибках, так и прочие отладочные сообщения.
Внутри тэга logging определяется тэг loggers, в котором, используя тэги logger, перечисляются один за другим все необходимые варианты протоколирования.
Пример:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... <logging> <loggers> <logger type="...">...</logger> <logger type="...">...</logger> </loggers> </logging> … </server-config> |
Для выбора типа протоколирования у тэга logger используется атрибут type, значением которого является полное имя класса (включая имя сборки) соответствующего типа протокола. Внутри тэга logger с помощью тэгов filter-level и params задаются настройки текущего протокола.
Синтаксис:
<logger type="тип протокола"> <filter-level>уровень фильтрации сообщений</filter-level> <params> <item key="имя параметра" value="значение параметра"></item> <item key="имя параметра" value="значение параметра"></item> … </params> </logger> |
где:
·тип протокола - определяет тип протокола и может принимать следующие значения:
Значение |
Описание |
Parus.Net.Logger.StandardStores.ConsoleLogStore, AppServer.Common |
Консольный вывод |
Parus.Net.Logger.StandardStores.TextFileLogStore, AppServer.Common |
Текстовой файл |
Parus.Net.Logger.StandardStores.SysLogStore, AppServer.Common |
Журнал событий ОС |
·уровень фильтрации сообщений - определяет один из предопределенных уровней фильтрации выводимых сообщений:
Значение |
Описание |
Minimal |
Все сообщения без исключений |
VeryLow |
Все сообщения на уровне обращения к БД |
Low |
Все сообщения на уровне публикации объектов для доступа удаленного клиента, а также события отключения сессии |
BelowNormal |
Все сообщения на уровне менеджера нотификации клиента |
Normal |
Все сообщения на уровне развертывания пакетов |
AboveNormal |
Все сообщения менеджера нотификации клиента |
BelowHigh |
Ошибки асинхронных задач |
High |
Все ошибки |
AboveHigh |
В настоящее время не используется (уровень фильтрации такой же, как и VeryHigh) |
VeryHigh |
Вывод отладочной информации |
Maximal |
Вывод всех сообщений отключен |
·По умолчанию для консольного режима работы сервера приложений используется уровень фильтрации VeryLow, а для режима работы в качестве службы - AboveNormal.
·имя параметра - имя параметра для настройки конкретного типа протокола;
·значение параметра - значение параметра для настройки конкретного типа протокола.
Имена параметров и их значения зависят от конкретного типа протокола.
Вывод протокола в консольное окно сервера приложений (type = "Parus.Net.Logger.StandardStores.ConsoleLogStore")
Этот тип протоколирования не имеет специфических параметров, и поэтому тэг params может быть опущен.
Пример:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... <logging> <loggers> … <logger type="Parus.Net.Logger.StandardStores.ConsoleLogStore, AppServer.Common"> <filter-level>Low</filter-level> </logger> … </loggers> </logging> … </server-config> |
Вывод протокола в текстовый файл (type = "Parus.Net.Logger.StandardStores.TextFileLogStore")
Определяет вывод протокола в файл.
Дополнительные параметры (тэг params):
·path - путь к папке, где хранятся создаваемые файлы протокола. Имена файлов протоколов формируются автоматически;
·period - период создания файлов. Значением данного параметра является одна из предопределенных констант.
Значение |
Описание |
hourly |
Новый файл протокола создается каждый час. Имена файлов имеет вид ГГГГ_ММ_ДД_ЧЧ.log, где ГГГГ - год, ММ - месяц, ДД -день, ЧЧ - час, например: 2012_10_16_13.log |
daily |
Новый файл протокола создается ежедневно. Имена файлов имеет вид ГГГГ_ММ_ДДD.log, где ГГГГ - год, ММ - месяц, ДД -день, например: 2012_10_16D.log |
weekly |
Новый файл протокола создается еженедельно. Имена файлов имеет вид ГГГГ_ММ_ННW.log, где ГГГГ - год, ММ - месяц, НН -неделя года, например: 2012_10_41W.log |
monthly |
Новый файл протокола создается ежемесячно. Имена файлов имеет вид ГГГГ_ММ.log, где ГГГГ - год, ММ - месяц, например: 2012_10.log |
Пример:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... <logging> <loggers> <logger type="Parus.Net.Logger.StandardStores.TextFileLogStore"> <filter-level>Minimal</filter-level> <params> <item key="path" value="C:\Temp\Logs"/> <item key="period" value="daily"/> <item key="size" value="1000000" /> </params> </logger> </loggers> </logging> </server-config> |
Важно! Ведение подробного протокола может снизить производительность сервера приложений, поэтому рекомендуется включать протоколирование только для устранения ошибок. Также не имеет смысла включать протоколирование в консольное окно, если сервер запускается в режиме службы.
Важно! После изменения параметров в файле конфигурации необходимо перезапустить сервер приложений.
Настройка безопасности <security-config>
Во вложенном тэге <role-groups> определяются назначения ролей сервера приложений группам пользователей ОС. В текущей версии применяются две роли: право на работу в приложениях системы (роль User) и право на администрирование системы (роль ServerAdministrator). Обязательно должны быть перечислены обе роли: User и ServerAdministrator. Допускается назначение обеих ролей одной группе пользователей, но назначить нескольким группам операционной системы одну роль сервера приложений нельзя.
Пример:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ... <security-config> <role-groups> <role-group group-name="Users" role="User"/> <role-group group-name="AppServerAdministrators" role="ServerAdministrator"/> </role-groups> </security-config> </server-config> |
Пример файла конфигурации:
<?xml version="1.0" encoding="windows-1251"?> <server-config xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- подключение к базе tornado локально установленного SQL Server--> <database> <provider>MSSQL</provider> <work-db-connection-string>Integrated Security=SSPI;Initial Catalog=tornado;Data Source=(local)</work-db-connection-string> </database>
<!-- одновременно вывод в файл и консольное окно--> <logging> <loggers> <!-- самый подробный файл протокола создается ежедневно в папке C:\Temp\Logs--> <logger type="Parus.Net.Logger.StandardStores.TextFileLogStore, AppServer.Common"> <filter-level>Minimal</filter-level> <params> <item key="path" value="C:\Temp\Logs"/> <item key="period" value="daily"/> </params> </logger> <!-- в консольное окно выводятся ошибки--> <logger type="Parus.Net.Logger.StandardStores.ConsoleLogStore, AppServer.Common"> <filter-level>High</filter-level> </logger> </loggers> </logging> <!-- члены группы Сотрудники могут использовать и администрировать сервер приложений --> <security-config> <role-groups> <role-group group-name="Сотрудники" role="User"/> <role-group group-name="Сотрудники" role="ServerAdministrator"/> </role-groups> </security-config> </server-config> |
Настройка сервисных портов <update-service>, <client-update-service> и <notify-service>
Необязательные параметры update-service, client-update-service и notify-service определяют к какому порту СП будут обращаться Клиент обновления (КО) и Клиент сервера приложения (КСП) соответственно.
·update-service имеет вложенные тэги <port> и <client-timeout>. Тэг <port> определяет номер порта для работы с КО, а тэг <client-timeout> определяет таймаут (в минутах) после которого СП разорвет соединение с КО, если от него не будет исходить никакой активности.
·client-update-service имеет только вложенный тэг <port>. Тэг <port> определяет номер порта для опроса и обновления КСП. КСП сам получает от СП порт для обновлений т.е. КСП отдельно настраивать не нужно.
·notify-service содержит только вложенный тэг <port>. Тэг <port> определяет номер порта для сервисной работы КСП и СП.
Пример:
<network>
<update-service> <port>8081</port> <client-timeout>15</client-timeout> </update-service>
<client-update-service> <port>8082</port> </client-update-service>
<notify-service> <port>8083</port> </notify-service>
< help-service> <port>8084</port> </help-service>
</network> |
Настройка рабочей папки сервера приложений <storage>
Необязательный параметр storage позволяет переопределить рабочую папку сервера приложений. Данная папка используется сервером приложений для хранения своего кэша и других вспомогательных файлов. При автоматическом обновлении путь этой папки также используется для сохраняется копии БД и полученных пакетов.
Внимание! Если требуется запускать на одном компьютере более одного сервера приложений, то необходимо обязательно указывать разные пути storage для каждого экземпляра сервера приложений.
Пример:
<storage> <path>C:\ProgramData\Parus.TornadoServer</path> </storage> |
Файлы конфигурации клиента сервера приложений
Параметры работы клиента сервера приложений (КСП) задаются в специальных конфигурационных файлах client.config, SmartClient.Win.exe.config и SmartClient.Win32.exe.config , которые должены располагаться в корне каталога КСП. Файлы имеют формат XML.
Все параметры настройки КСП в файле client.config задаются в тэге Config. Внутри данного тэга прописываются параметры настроек. Таким образом, общий вид файла конфигурации выглядит следующим образом:
Пример файла:
<Config> <global> <assemblies> <Properties> <Property name="enable-cache" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><![CDATA[True]]></Property> <Property name="store" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"><![CDATA[C:\Documents and Settings\All Users\Application Data\Parus.SmartClient.Win\Assemblies]]></Property> </Properties> </assemblies> </global> </Config> |
В тэге assemblies устанавливается Включение\отключение кэша и его путь. Соответственно в свойстве с именем enable-cache параметр True, говорит о том, что кэширование клиентских сборок включено. А свойство store указывает на место хранения кэша, в данном примере это "C:\Documents and Settings\All Users\Application Data\Parus.SmartClient.Win\Assemblies"
Файлы SmartClient.Win.exe.config и SmartClient.Win32.exe.config отвечают за
Пример содержимого файлов SmartClient.Win.exe.config и SmartClient.Win32.exe.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <runtime> <generatePublisherEvidence enabled="false" /> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.ReportViewer.WinForms" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.ReportViewer.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> <appSettings> <!-- Максимально допустимое время задержки ответа сервера приложений в секундах Если сервер не ответит на запрос по истечении указанного времени клиент покажет WebException - Timeout --> <add key="ServerCallTimeout" value="9000"/> </appSettings> </configuration> |
Тэг generatePublisherEvidence указывает, будет ли проводится проверка сертификатов. Свойство enabled со значением false, говорит о том, что проверка сертификатов издателя не будет производиться, что ускорит работу при медленном или отсутствующем подключения к сети интернет.
Тэг assemblyBinding является служебной секцией, содержит сведения о перенаправлении версии сборки и о расположении сборок.
Тэг appSettings содержит ключ ServerCallTimeout со значением value равным 9000. Данный ключ указывает время в миллисекундах, после которого клиент перестанет ждать ответа от сервера.