Изменения

Перейти к навигации Перейти к поиску

Транспорт

6834 байта добавлено, 04:22, 26 ноября 2019
== WCF ==
WCF протокол Транспорта DPA - это бинарный протокол, использующий стек TCP/IP.
В настройках WCF протокола два ключевых параметра - IP-адрес и порт подключения. DPA сервер использует эти параметры, чтобы установить соединение к получателю ''Событий'', которым , как правило , выступает DPA хост.
В качестве IP-адреса получателя можно указать localhost (если DPA хост и DPA сервер установлены на одну машину), а так же сетевое имя. По умолчанию используется TCP-порт 45618.
<span style="color:red"><b>Внимание!</b></span> Перед тем как настраивать Транспорт DPA на использование протокола MSMQ, создайте приватную очередь и настройте права доступа. Учетная запись, из под которой работает служба DPA сервера, должна иметь права на запись в очередь. Учетная запись, из под которой работает служба DPA хоста, должна иметь права на извлечение из очереди.
Для создания приватной очереди на локальной машине можно использовать следующий Следующий скрипт PowerShell скриптсоздает приватную очередь и назначает права доступа для доменного пользователя:
<pre>
PS C:\> New-MsmqQueue -Name "QueueName" -QueueType Private
PS C:\> Get-MsmqQueue -Name "QueueName" -QueueType Private | Set-MsmqQueueAcl -UserName "DOMAIN\User" -Allow Peek,Receive,Send
</pre>
 
Обратите внимание, для использования Транспорта MSMQ между DPA сервер и DPA хост необходимо использовать очередь с предопределенным именем:
 
<b><pre>Xtensive.Project109.Host.DPA.Queue</pre></b>
MSMQ имеет встроенные механизмы гарантии доставки посылок получателю.
<span style="color:blue"><b>TODO:</b>Варианты настройки =''В каких случаях требуется добавить дополнительный (второй, третий и т.д.) Транспорт?''<br/span> ПроверитьВо-первых, что используются именно приватныедополнительный Транспорт может потребоваться при передаче данных DPA сервера в стороннюю систему.Во-вторых, а не публичные очередидопустимо настроить один DPA сервер для отправки данных в два и более DPA хоста. Тогда на каждый DPA хост требуется настроить отдельный экземпляр Транспорта
''Можно ли для конкретного события выбрать Транспорт, который будет использован для его передачи?''<br/>Да, пример настройки:<br/>[[File:SystemMenu.png]] => [[File:MonitoringMenu.png]] => DPAhost \ DPAserver \ Драйвера \ <Драйвер> \ Events \ <Событие> \ Транспорт Выбрать нужный Транспорт и нажать "Сохранить": [[File:EventSelectTransport.png]]  ''Можно ли для события указать более одного Транспорта?''<br/>Да, в таком случае копии данных по этому событию будут отправляться в каждый выбранный Транспорт.  ''Можно ли настроить второй Транспорт для обмена между DPA сервер и DPA хост?''<br/><span style="color:bluered">Крайне не рекомендуется настраивать более одного Транспорта между конкретными экземплярами DPA сервера и DPA хоста. Это может привести к дублированию данных, искажению порядка событий и другим нежелательным эффектам.</span>  ''Как изменить параметры Транспорта?''<br/>Параметры Транспорта возможно изменить только через файл конфигурации '''DpaServer.config'''.<br/>:1. Остановите службу DPA сервера.<pre>net stop DpaServer</pre>:2. Файл конфигурации находится по следующему пути:<pre>C:\ProgramData\X-tensive\DPA\Config\DpaServer.config </pre>:3. Обязательно создайте резервную копию файла конфигурации.:4. Настройки транспорта находятся в узле ''root \ transports'':<pre><?xml version="1.0"?><root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ver="1"> <drivers> ... </drivers> <states> ... </states> <transports> <transport transportIdentifier="0b75081d-210c-4b01-885b-154e8104503e" name="WCF" transportType="WcfTransport" restPeriod="00:00:01" resendingPeriod="00:00:15"> <wcfTransport ipAddress="localhost" port="45618" /> <b/transport>TODO <transport transportIdentifier="a241a03e-a2dd-48b4-8611-e15023b07b26" name="MES-queue" transportType="MsmqTransport" restPeriod="00:00:01" resendingPeriod="00:00:15"> <msmqTransport machine="localhost" queue="MES-queue" /> </transport> </transports></broot></spanpre> Как задается, какую очередь слушает :5. Измените настройки и сохраните файл конфигурации.:6. Запустите службу DPA хост?сервера.<pre>net start DpaServer</pre>
= Настройка =
= Гарантия доставки =
Если по какой-то причине отправка данных по Транспорту не возможна, например, DPA хост временно недоступен, идет установка обновления и т.д., данные не будут утеряны. ''События'' и ''Пакеты'' будут накапливаться во внутренней FIFO очереди на отправку. В зависимости от количества драйверов, подключенных к DPA серверу, а так же в зависимости от частоты изменения данных по ''Событиям'', очередь позволяет вместить данные от нескольких часов до нескольких дней работы.
 
[[File:transportBuffering.png]]
 
 
При восстановлении связи накопленные данные будут переданы, очередь будет опустошена:
 
[[File:transportEmptying.png]]
 
 
<span style="color:red"><b>Внимание!</b></span> Для работы внутренней FIFO очереди используется оперативная память. Данные не выгружаются в файловую систему, базу данных или другие хранилища. Если до отправки сообщений получателю DPA сервер будет остановлен, содержимое очереди будет утеряно.
 
= Диагностика =
На что нужно обратить внимание в первую очередь при возникновении проблем с получением данных по Транспорту из DPA сервера:
:1. Лицензия должна быть установлена и активна
:2. Убедиться, что ''События'' активны:
[[File:SystemMenu.png]] => [[File:MonitoringMenu.png]] => DPAhost \ DPAserver \ Драйвера \ <Драйвер> \ Events \ <Событие>
:3. Убедиться, что Транспорт для ''Событий'' настроен корректно:
[[File:SystemMenu.png]] => [[File:MonitoringMenu.png]] => DPAhost \ DPAserver \ Драйвера \ <Драйвер> \ Events \ <Событие> \ Транспорт
:4. При использовании протокола WCF убедиться, что IP-адрес и порт получателя установлены корректно:
[[File:SystemMenu.png]] => [[File:MonitoringMenu.png]] => DPAhost \ DPAserver \ Транспорт \ WCF
:5. Используйте счетчики производительности Транспорта для анализа проблем доставки и производительности:
[[File:SystemMenu.png]] => [[File:MonitoringMenu.png]] => DPAhost \ DPAserver \ Транспорт \ WCF => Счетчики производительности

Навигация