Настройка AGDataLoader
Содержание
Файл конфигурации 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 приборов. Оптимальное значение - от 200 до 500. |
|
thread-count |
количество потоков для одновременной работы. Оптимальное значение - 2-4, при большом количестве серверов (больше 15-20) имеет смысл увеличить до 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