Настройка AGDataLoader — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
*nlog - конфигурация журналирования. Для журналирования используется библиотека NLog ([https://github.com/nlog/NLog/wiki/Configuration-file документация по настройке секции nlog]). По умолчанию на каждый сервер, с которого загружаются данные, создается отдельный файл журнала, в который пишуться все события по загрузке и обращениям к этому серверу. |
*nlog - конфигурация журналирования. Для журналирования используется библиотека NLog ([https://github.com/nlog/NLog/wiki/Configuration-file документация по настройке секции nlog]). По умолчанию на каждый сервер, с которого загружаются данные, создается отдельный файл журнала, в который пишуться все события по загрузке и обращениям к этому серверу. |
||
− | *settings - основная секция настроек |
+ | *settings - основная секция настроек<code></code><code></code> |
+ | <pre> |
||
− | <code><?xml version="1.0"?><br/><configuration><br/> <configSections><br/> <section name="settings" type="AGDataLoader.ConfigSection, AGDataLoader"/><br/> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/><br/> </configSections><br/> <nlog xmlns="[http://www.nlog-project.org/schemas/NLog.xsd http://www.nlog-project.org/schemas/NLog.xsd]" xmlns:xsi="[http://www.w3.org/2001/XMLSchema-instance http://www.w3.org/2001/XMLSchema-instance]"><br/> <targets><br/> <target name="default" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/><br/> <target name="dispatcherTargetV3" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher3.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/><br/> <target name="dispatcherTargetV4" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher4.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/><br/> <target name="dispatcherHttpTarget" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_DispatcherHttp.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/><br/> <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/><br/> </targets><br/> <rules><br/> <logger name="default" minLevel="Info" appendTo="default"/><br/> <logger name="dispatcher-v3" minLevel="Info" appendTo="dispatcherTargetV3"/><br/> <logger name="dispatcher-v4" minLevel="Info" appendTo="dispatcherTargetV4"/><br/> <logger name="http-dispatcher" minLevel="Info" appendTo="dispatcherHttpTarget"/><br/> <logger name="*" minLevel="Info" appendTo="console"/><br/> </rules><br/> </nlog></code> |
||
+ | <?xml version="1.0"?> |
||
+ | <configuration> |
||
+ | <configSections> |
||
+ | <section name="settings" type="AGDataLoader.ConfigSection, AGDataLoader"/> |
||
+ | <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> |
||
+ | </configSections> |
||
+ | <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
||
+ | <targets> |
||
+ | <target name="default" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> |
||
+ | <target name="dispatcherTargetV3" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher3.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> |
||
+ | <target name="dispatcherTargetV4" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher4.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> |
||
+ | <target name="dispatcherHttpTarget" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_DispatcherHttp.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> |
||
+ | <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> |
||
+ | </targets> |
||
+ | <rules> |
||
+ | <logger name="default" minLevel="Info" appendTo="default"/> |
||
+ | <logger name="dispatcher-v3" minLevel="Info" appendTo="dispatcherTargetV3"/> |
||
+ | <logger name="dispatcher-v4" minLevel="Info" appendTo="dispatcherTargetV4"/> |
||
+ | <logger name="http-dispatcher" minLevel="Info" appendTo="dispatcherHttpTarget"/> |
||
+ | <logger name="*" minLevel="Info" appendTo="console"/> |
||
+ | </rules> |
||
+ | </nlog> |
||
+ | <settings |
||
− | <code> <settings<br/> data-directory="d:\test.data" <br/> dbf-directory="d:\test" <br/> batch-size="400" <br/> thread-count="4" <br/> data-last-weeks="28" </code> |
||
+ | data-directory="d:\test.data" |
||
+ | dbf-directory="d:\test" |
||
+ | batch-size="400" |
||
+ | thread-count="4" |
||
+ | data-last-weeks="28" |
||
+ | files-directory="~\files" |
||
− | <code> files-directory="~\files" <br/> file-sync-period="10" <br/> files-exclude="*.txt;*.ini" <br/> file-size-limit="0" <br/> files-in-one-directory="true" <br/> files-overwrite="true" </code> |
||
+ | file-sync-period="10" |
||
+ | files-exclude="*.txt;*.ini" |
||
+ | file-size-limit="0" |
||
+ | files-in-one-directory="true" |
||
+ | files-overwrite="true" |
||
− | + | dbf-subdir-exclude="off" |
|
+ | dispatcher-port="0" |
||
− | <code> dispatcher-port="0" <br/> http-dispatcher-port="0" <br/> logs-per-server="true" </code> |
||
+ | http-dispatcher-port="0" |
||
+ | logs-per-server="true" |
||
+ | dispatcher-port-v4="0" |
||
− | <code> dispatcher-port-v4="0" <br/> users-directory-v4="D:\AGServer4\Users" <br/> dbf-directory-v4="D:\AGServer4\DBF" <br/> dispatcher-rule-filename="rules.xml" </code> |
||
+ | users-directory-v4="D:\AGServer4\Users" |
||
+ | dbf-directory-v4="D:\AGServer4\DBF" |
||
+ | dispatcher-rule-filename="rules.xml" |
||
+ | hash="false"/> |
||
− | <code> hash="false"/><br/> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><br/></configuration></code> |
||
+ | <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> |
||
+ | </configuration> |
||
+ | </pre> |
||
=== Секция settings === |
=== Секция settings === |
||
Строка 33: | Строка 73: | ||
|- |
|- |
||
| style="width: 163px;" | batch-size<br/> |
| style="width: 163px;" | batch-size<br/> |
||
− | | style="width: 1327px;" | размер пакета для запроса. Если количество запрашиваемых приборов больше этого параметра - один запрос будет разбит на несколько, каждый из которых будет содержать batch-size приборов. Например, при загрузке 1150 приборов и batch-size = 400 на сервер будут отправляться запросы по 400 + 400 + 350 приборов. Оптимальное значение - от 100 до 300. [[ |
+ | | style="width: 1327px;" | размер пакета для запроса. Если количество запрашиваемых приборов больше этого параметра - один запрос будет разбит на несколько, каждый из которых будет содержать batch-size приборов. Например, при загрузке 1150 приборов и batch-size = 400 на сервер будут отправляться запросы по 400 + 400 + 350 приборов. Оптимальное значение - от 100 до 300. [[Алгоритм работы AGDataLoader|Подробее об алгоритме работы.]]<br/> |
| style="width: 93px;" | <br/> |
| style="width: 93px;" | <br/> |
||
|- |
|- |
||
| style="width: 163px;" | thread-count<br/> |
| style="width: 163px;" | thread-count<br/> |
||
| style="width: 1327px;" | |
| style="width: 1327px;" | |
||
− | количество потоков для одновременной работы. Оптимальное значение - 2-4, однако при большом количестве приборов имеет смысл увеличить до 8-10. [[ |
+ | количество потоков для одновременной работы. Оптимальное значение - 2-4, однако при большом количестве приборов имеет смысл увеличить до 8-10. [[Алгоритм работы AGDataLoader|Подробее об алгоритме работы.]] |
| style="width: 93px;" | <br/> |
| style="width: 93px;" | <br/> |
Версия 00:10, 16 апреля 2015
Содержание
Файл конфигурации AGDataLoader.exe.config
Файл конфигурации состоит из разных секций.
- nlog - конфигурация журналирования. Для журналирования используется библиотека NLog (документация по настройке секции nlog). По умолчанию на каждый сервер, с которого загружаются данные, создается отдельный файл журнала, в который пишуться все события по загрузке и обращениям к этому серверу.
- settings - основная секция настроек
<?xml version="1.0"?> <configuration> <configSections> <section name="settings" type="AGDataLoader.ConfigSection, AGDataLoader"/> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> </configSections> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="default" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> <target name="dispatcherTargetV3" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher3.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> <target name="dispatcherTargetV4" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_Dispatcher4.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> <target name="dispatcherHttpTarget" xsi:type="File" fileName="Logs\${date:format=yyyyMMdd}_DispatcherHttp.log" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss} ${uppercase:upperCase=True:inner=${level}} ${message}"/> </targets> <rules> <logger name="default" minLevel="Info" appendTo="default"/> <logger name="dispatcher-v3" minLevel="Info" appendTo="dispatcherTargetV3"/> <logger name="dispatcher-v4" minLevel="Info" appendTo="dispatcherTargetV4"/> <logger name="http-dispatcher" minLevel="Info" appendTo="dispatcherHttpTarget"/> <logger name="*" minLevel="Info" appendTo="console"/> </rules> </nlog> <settings data-directory="d:\test.data" dbf-directory="d:\test" batch-size="400" thread-count="4" data-last-weeks="28" files-directory="~\files" file-sync-period="10" files-exclude="*.txt;*.ini" file-size-limit="0" files-in-one-directory="true" files-overwrite="true" dbf-subdir-exclude="off" dispatcher-port="0" http-dispatcher-port="0" logs-per-server="true" dispatcher-port-v4="0" users-directory-v4="D:\AGServer4\Users" dbf-directory-v4="D:\AGServer4\DBF" dispatcher-rule-filename="rules.xml" hash="false"/> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> </configuration>
Секция settings
data-directory |
указывает на каталог данных (по формату этот каталог совпадает с data-каталогом AutoGRAPH и AutoGRAPH.NET) |
|
dbf-directory |
каталог с конфигурацией серверов (см. ниже) |
|
batch-size |
размер пакета для запроса. Если количество запрашиваемых приборов больше этого параметра - один запрос будет разбит на несколько, каждый из которых будет содержать batch-size приборов. Например, при загрузке 1150 приборов и batch-size = 400 на сервер будут отправляться запросы по 400 + 400 + 350 приборов. Оптимальное значение - от 100 до 300. Подробее об алгоритме работы. |
|
thread-count |
количество потоков для одновременной работы. Оптимальное значение - 2-4, однако при большом количестве приборов имеет смысл увеличить до 8-10. Подробее об алгоритме работы. |
|
data-last-weeks |
ограничение по загрузке данных. Данные старее data-last-weeks недель загружаться не будут |
|
files-directory |
каталог для загружаемых пользовательских файлов (только V4) |
Только для серверов V4 |
file-sync-period |
период синхронизации файлов (в секундах) | |
files-exclude |
маски файлов, которые будут игнорированы при синхронизации (через точку с запятой) | |
file-size-limit |
лимит на размер файлов. Файлы больше указаного размера (в байтах) будут игнорироваться при синхронизации. | |
files-in-one-directory |
true, если файлы от нескольких пользователей будут складываться в один каталог files-directory | |
files-overwrite |
true, если файлы с одинаковыми именами, загруженные с разных серверов будут перезаписываться false, если перезапись отключена - будет сохранён только первый файл с таким именем. | |
dispatcher-port |
диспетчерский порт V3-протокола 0, если диспетчерский V3-модуль отключен |
|
http-dispatcher-port |
диспетчерский порт HTTP-протокола или 0, если диспетчерский HTTP-модуль отключен. |
|
logs-per-server |
true, если логи разбиваются посерверно или false, если логи по всем серверам пишуться в один файл. |
|
dispatcher-port-v4 |
диспетчерский порт V4-протокола 0, если диспетчерский V4-модуль отключен |
Диспетчерская часть протокола V4 |
users-directory-v4 |
каталог с пользователями (формат каталога идентичен каталогу AutoGRAPH Сервер V4) | |
dbf-directory-v4 |
каталог с приборами - .atg-файлами (формат каталога идентичен каталогу AutoGRAPH Сервер V4) | |
dispatcher-rule-filename |
имя файла с правилами фильтрации | |
hash |
пересчитывать хэш загруженного файла или нет. По умолчанию false. |
Создание каталогов и конфигурация серверов для загрузки
Структура каталогов AGDataLoader выглядит следующим образом:
В данном примере каталог DBF содержит подкаталоги, имя которого может формироваться по следующим правилам:
где:
Пример такого файла: test-devices.atg (данный файл взят из каталога DBF AutoGRAPH.Server V3 m.tk-chel.ru порт 2226) |
Для серверов V3
Каталог сервера должен содержать .atg-файлы, из которых будет прочитаны номера приборов/пароли приборов и с ними будут выполняться диспетчерские запросы на загрузку данных. Данный способ используется в ПО 3й версии (AutoGRAPH.Server V3 и AutoGRAPH 3.x). Оставлен для совместимости.
Для серверов V4
В серверах 4й версии аутентификация выполняется с помощью логина/пароля (хэша пароля) и получение списка приборов выполняется при первом подключении к серверу. Вместо .ATG файлов в каталоге сервера должен лежать .ini-файл, в котором храниться хэш пароля. При этом имя файла используется как логин пользователя. Пример такого файла demo.ini (данный файл взят из каталога Users AutoGRAPH.Server V4 m.tk-chel.ru порт 2230