Настройка AGDataLoader — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
== Файл конфигурации AGDataLoader.exe.config == |
== Файл конфигурации AGDataLoader.exe.config == |
||
+ | Файл конфигурации состоит из разных секций. |
||
− | <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> |
||
+ | *nlog - конфигурация журналирования. По умолчанию на каждый сервер, с которого загружаются данные, создается отдельный файл журнала, в который пишуться все события по загрузке и обращениям к этому серверу. |
||
− | <code> <settings<br/> [[#data-directory|data-directory]]="d:\test.data" <br/> dbf-directory="d:\test" <br/> batch-size="400" <br/> thread-count="4" <br/> data-last-weeks="28" </code> |
||
+ | *settings - основная секция настроек |
||
+ | |||
+ | <code></code><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> |
||
+ | |||
+ | <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> |
||
<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> |
<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> |
||
Строка 15: | Строка 20: | ||
<code> hash="false"/><br/> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><br/></configuration></code> |
<code> hash="false"/><br/> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><br/></configuration></code> |
||
+ | === Секция settings === |
||
− | [[#data-loader|sdfsdfsdf sdf]] |
||
+ | |||
+ | {| border="1" cellspacing="0" cellpadding="2" |
||
+ | |- |
||
+ | | style="width: 163px;" | data-directory<br/> |
||
+ | | style="width: 1327px;" | указывает на каталог данных (по формату этот каталог совпадает с data-каталогом AutoGRAPH и AutoGRAPH.NET)<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | dbf-directory<br/> |
||
+ | | style="width: 1327px;" | каталог с конфигурацией серверов (см. ниже)<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | batch-size<br/> |
||
+ | | style="width: 1327px;" | размер пакета для запроса. Если количество запрашиваемых приборов больше этого параметра - один запрос будет разбит на несколько, каждый из которых будет содержать batch-size приборов. Например, при загрузке 1150 приборов и batch-size = 400 на сервер будут отправляться запросы по 400 + 400 + 350 приборов. Оптимальное значение - от 200 до 500.<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | thread-count<br/> |
||
+ | | style="width: 1327px;" | количество потоков для одновременной работы. Оптимальное значение - 2-4, при большом количестве серверов (больше 15-20) имеет смысл увеличить до 8-10.<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | data-last-weeks<br/> |
||
+ | | style="width: 1327px;" | ограничение по загрузке данных. Данные старее data-last-weeks недель загружаться не будут<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | files-directory<br/> |
||
+ | | style="width: 1327px;" | каталог для загружаемых пользовательских файлов (только V4)<br/> |
||
+ | | style="width: 93px;" rowspan="6" colspan="1" | <span style="line-height: 20.7999992370605px;">Только для серверов V4</span><br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | file-sync-period<br/> |
||
+ | | style="width: 1327px;" | период синхронизации файлов (в секундах)<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | files-exclude<br/> |
||
+ | | style="width: 1327px;" | маски файлов, которые будут игнорированы при синхронизации (через точку с запятой)<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | file-size-limit<br/> |
||
+ | | style="width: 1327px;" | лимит на размер файлов. Файлы больше указаного размера (в байтах) будут игнорироваться при синхронизации.<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | files-in-one-directory<br/> |
||
+ | | style="width: 1327px;" | |
||
+ | true, если файлы от нескольких пользователей будут складываться в один каталог files-directory<br/>false, если будут созданы подкаталоги с именами пользователей. |
||
+ | |||
+ | |- |
||
+ | | style="width: 163px;" | files-overwrite<br/> |
||
+ | | style="width: 1327px;" | true, если файлы с одинаковыми именами, загруженные с разных серверов будут перезаписываться<br/>false, если перезапись отключена - будет сохранён только первый файл с таким именем.<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | dispatcher-port<br/> |
||
+ | | style="width: 1327px;" | диспетчерский порт V3-протокола<br/>0, если диспетчерский V3-модуль отключен<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | http-dispatcher-port<br/> |
||
+ | | style="width: 1327px;" | диспетчерский порт HTTP-протокола или 0, если диспетчерский HTTP-модуль отключен.<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | logs-per-server<br/> |
||
+ | | style="width: 1327px;" | true, если логи разбиваются посерверно или false, если логи по всем серверам пишуться в один файл.<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | dispatcher-port-v4<br/> |
||
+ | | style="width: 1327px;" | диспетчерский порт V4-протокола<br/>0, если диспетчерский V4-модуль отключен<br/> |
||
+ | | style="width: 93px;" rowspan="4" colspan="1" | Диспетчерская часть протокола V4<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | users-directory-v4<br/> |
||
+ | | style="width: 1327px;" | каталог с пользователями (формат каталога идентичен каталогу AutoGRAPH Сервер V4)<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | dbf-directory-v4<br/> |
||
+ | | style="width: 1327px;" | каталог с приборами - .atg-файлами (формат каталога идентичен каталогу AutoGRAPH Сервер V4)<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | dispatcher-rule-filename<br/> |
||
+ | | style="width: 1327px;" | имя файла с правилами фильтрации<br/> |
||
+ | |- |
||
+ | | style="width: 163px;" | hash<br/> |
||
+ | | style="width: 1327px;" | пересчитывать хэш загруженного файла или нет. По умолчанию false.<br/> |
||
+ | | style="width: 93px;" | <br/> |
||
+ | |} |
||
== Создание каталогов и конфигурация серверов для загрузки == |
== Создание каталогов и конфигурация серверов для загрузки == |
||
+ | |||
+ | Структура каталогов AGDataLoader выглядит следующим образом: |
||
+ | |||
+ | {| border="0" cellspacing="0" cellpadding="3" |
||
+ | |- |
||
+ | | http://wiki.tk-chel.ru/images/8/8b/Agdataloader-directories.gif<br/><br/><span style="line-height: 20.7999992370605px;"></span> |
||
+ | | style="vertical-align: top;" | |
||
+ | В данном примере каталог DBF содержит подкаталоги, имя которого может формироваться по следующим правилам: |
||
+ | |||
+ | *hostname-port |
||
+ | *hostname-port-period |
||
+ | *xxx.yyy.zzz.qqq-port |
||
+ | |||
+ | где: |
||
+ | |||
+ | *hostname - FQDN или netbios имя сервера |
||
+ | *port - номер диспетчерского порта (по умолчанию tcp/2226 для V3, tcp/2230 для V4) |
||
+ | *xxx.yyy.zzz.qqq - IP-адрес сервера |
||
+ | *period - период опроса сервера в секундах (по умолчанию - 30 секунд) |
||
+ | |||
+ | Пример такого файла: 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 |
Версия 17:23, 3 апреля 2015
Содержание
Файл конфигурации AGDataLoader.exe.config
Файл конфигурации состоит из разных секций.
- 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