Конфигурационный файл сервера (appserver.config)
Файл конфигурации сервера приложений (appserver.config)
Параметры работы сервера приложений (СП) задаются в специальном конфигурационном файле 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 - параметры подключения к БД;
- logging - настройка протоколирования;
- security-config - настройка безопасности (назначение ролей сервера приложений группам пользователей операционной системы);
- network – настройка сервисных портов сервера приложений;
- storage - конфигурация хранилища;
- audit - настройка параметров логирования действий пользователей;
- instance - настройка отображаемого имени БД на клиенте
Параметры подключения к БД <database>
Обязательный тэг. Определяет параметры подключения сервера приложений к серверу БД. Внутри тэга определяется название поставщика СУБД (тэг provider), строка подключения к БД (тэг work-db-connection-string), лимит времени ожидания выборки СУБД (тэг select_timeout), лимит времени ожидания команды СУБД (тэг command_timeout).
Синтаксис:
<database> ... </database> |
Провайдер сервера БД <provider>
Обязательный тэг provider определяет имя поставщика сервера БД.
Синтаксис:
<provider>провайдер БД</provider> |
где:
- провайдер БД - имя провайдера БД. В настоящее время платформа предоставляет следующий перечень провайдеров БД:
- MSSQL;
- 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> |
Настройка сервисных портов <network>
Параметры notify-service и help-service определяют соответственно порты для вспомогательного порта обеспечивающего работу ассинхронных задач и порта для работы со справкой.
- notify-service содержит только вложенный тэг <port>. Тэг <port> определяет номер порта для сервисной работы КСП и СП.
- help-service содержит только вложенный тэг <port>. Тэг <port> определяет номер порта на котором будет работать сервис справочной системы.
Пример:
<network>
<notify-service> <port>8083</port> </notify-service>
<help-service> <port>8084</port> </help-service>
</network> |
Настройка рабочей папки сервера приложений <storage>
Необязательный параметр storage позволяет переопределить рабочую папку сервера приложений. Данная папка используется сервером приложений для хранения своего кэша и других вспомогательных файлов. При автоматическом обновлении путь этой папки также используется для сохраняется копии БД и полученных пакетов.
Пример:
<storage> <path>C:\ProgramData\Parus.TornadoServer</path> </storage> |
Настройки параметров аудита сервера <audit>
- Необязательные вложенные параметр <buffered>, <flush-on-events-count> и <flush-on-seconds-pass> отвечают за настройку параметров аудита.
- buffered определяет включение или отключение режима буферизации записи лога.
- Установленное значение true указывает, что режим буферизации включен.
- flush-on-events-count устанавливает предельное количество (буфер) записей журнала действий, хранящихся в памяти, до записи в БД.
- flush-on-seconds-pass задает предельный промежуток времени в секундах для хранения журнала действий в памяти, до записи в БД.
Пример:
<audit> <buffered>true</buffered> <flush-on-events-count>1000</flush-on-events-count> <flush-on-seconds-pass>120</flush-on-seconds-pass> </audit> |
Настройка отображаемого на клиенте имени БД <instance>
- Необязательный параметр instance, имеет вложенный тэг <name>. Данный тэг позволяет идентифицировать принадлежность экземпляра клиентского приложения определенному серверу. В строке статуса рабочего стола клиента приложения, в секции Сервер, будет выводится указанное значение name.
Пример:
<instance> <name>TestServer</name> </instance> |
Пример файла appserver.config для SQL
<?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>Data Source=(local);Initial Catalog=TESTINST1;Integrated Security=True;User ID=;Password=;Connect Timeout=1800</work-db-connection-string> </database> <logging> <loggers> <!--<logger type="Parus.Net.Logger.StandardStores.TextFileLogStore, AppServer.Common"> <filter-level>Minimal</filter-level> <params> <item key="path" value="C:\ProgramData" /> <item key="period" value="daily" /> <item key="size" value="1000000" /> </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 role="User" group-name="Пользователи" /> <role-group role="ServerAdministrator" group-name="Администраторы" /> </role-groups> </security-config> <network> <notify-service> <port>8083</port> </ notify-service> <help-service> <port>8084</port> </help-service> </network> <storage> <path>C:\ProgramData\Parus.TornadoServer</path> </storage> <audit> <buffered>true</buffered> <flush-on-events-count>1000</flush-on-events-count> <flush-on-seconds-pass>120</flush-on-seconds-pass> </audit> <instance> <name>TestServer</name> </instance> </server-config> |
Пример файла appserver.config для postgre
<?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>PostgreSQL</provider> <work-db-connection-string>Server=127.0.0.1;Port=5432;Database=test;User ID=postgres;Password=12345678;MaxPoolSize=100;CommandTimeout=300;</work-db-connection-string> </database> <logging> <loggers> <!--<logger type="Parus.Net.Logger.StandardStores.TextFileLogStore, AppServer.Common"> <filter-level>Minimal</filter-level> <params> <item key="path" value="C:\ProgramData" /> <item key="period" value="daily" /> <item key="size" value="1000000" /> </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 role="User" group-name="Пользователи" /> <role-group role="ServerAdministrator" group-name="Администраторы" /> </role-groups> </security-config> <network> <notify-service> <port>8083</port> </ notify-service> <help-service> <port>8084</port> </help-service> </network> <storage> <path>C:\ProgramData\Parus.TornadoServer</path> </storage> <audit> <buffered>true</buffered> <flush-on-events-count>1000</flush-on-events-count> <flush-on-seconds-pass>120</flush-on-seconds-pass> </audit> <instance> <name>TestServer</name> </instance> </server-config> |