Администрирование Data Director (репликатор от LS Retail NAV)

Будем считать, что установку DD Рё настройку репликации РјС‹ выполнили. Р? выполнили правильно. Значит РѕРґРёРЅ DD пакеты формирует Рё отправляет, второй же РёС… получает Рё обрабатывает. Р? РІСЃРµ РґРѕ РїРѕСЂС‹ РґРѕ времени хорошо.
Но расслабляться нельзя. Надо периодически это дело проверять. Для этих целей есть специальный инструментарий, расположен он в папке Data Director Administration (которая в разделе LS Retail – Scheduler).
Чтобы инструмент заработал нужно его настроить. Для этого используется окно Administration Setup. В нем создаем строку, где указываем Distribution Location Code получателя, и еще одну строку для отправителя. Флаги в поле Enabled должны быть установлены. Для начала этого будет достаточно.

Dynamics NAV (Navision) Настройка администрирования LS Retail Data Director


Покончив с настройкой, займемся непосредственно контролем на репликациями, для этого откроем окно Administration Card. Смотреть там пока особо не на что, поэтому нажмем кнопку Checks / Check All Location.
При нажатии на кнопку произойдет вызов кодеюнита 99001468 и система начнет опрашивать все DD с флагом Enabled=TRUE, которые мы указали в окне Administration Card. При этом система забирает данные из таблиц 99001599 IncomingMessages и 99001560 OutgoingMessages указанных Distribution Location и переносит их в таблицы 99001602 Remote Inc. Msg. и 99001603 Remote Outg. Msg. текущей базы данных.

Теперь рассмотрим окно Administration Card.
В заголовке указана следующая справочная информация:
Количество настроенных для мониторинга Distribution Location (No. of Locations). В том числе, включенных в мониторинг (Enabled Locations, флаг Enabled=TRUE) и исключенных из мониторинга (Disabled Locations, флаг Enabled = FALSE).
Количество Distribution Location, к которым подключиться не удалось (No. of Connection Errors), а также количество Distribution Location, у которых есть проблемные сообщения (No. of Director Errors).
Также в форму выведено пару flow-фильтров: Date Filter, Time Filter с помощью которых можно сузить контролируемый временной промежуток.

Dynamics NAV (Navision) Администрирование LS Retail Data Director

Р’ первую очередь нас волнуют Distribution Location, Рє которым подключиться РЅРµ удалось. Р?С… количество выведено РІ заголовке формы, Р° детальный СЃРїРёСЃРѕРє можно увидеть РЅР° закладке Connection Errors. Напротив каждого проблемного Distribution Location будет указан РєРѕРґ Рё описание ошибки возникшей РїСЂРё соединении.

Если проблем с подключением нет (No. of Connection Errors = 0), перейдем к следующей закладке Director Errors. На ней отображаются Distribution Location, у которых есть проблемные сообщения одного из следующих типов:

  • Входящие сообщения СЃ ошибками (статус = Error)
  • Р?сходящие сообщения СЃ ошибками (статус = Error)
  • Входящие необработанные сообщения (статус = Received)
  • Р?сходящие необработанные сообщения (статус = Processing|Waiting|To Forward)

На необработанные мы посмотрим, чуть позже, а сейчас все внимание на сообщения со статусом «С ошибкой».
Чтобы разобраться РІ причинах, нужно провалиться РІ соответствующую связанную таблицу. Р’ полях В«ErrorВ» Рё В«ServerMsgВ» будет указан РєРѕРґ ошибки, Р° также сообщение СЃ пояснением. Если причину, устранить можно - это нужно сделать. Рђ РІРѕС‚ если РЅРµ удастся – то сообщение можно только отменить. Р?зменим статус РЅР° «Отменен». Однако как сообщение РІ таблице Remote *** Msg. РІ текущей базе данных РІ таблицу ***ingMessages исследуемого Distribution Location? РЎ помощью РІ той же РєРЅРѕРїРєРё Checks / Check All Location. Однако РЅРµ надо спешить Рё нажимать ее, так как сначала надо выполнить некоторые настройки.
Вернемся в окно Administration Setup и установим флаг в поле Update Location (поле может быть скрыто). Теперь кнопка Checks / Check All Location не только получает данные от Distribution Location, но и обновляет их.

Теперь посмотрим на все это счастье с технической точки зрения.
Distribution Location, которые требуется включить в мониторинг указываются в таблице 99001601 DD Admin Location. На базе этой таблицы и работает форма 99001817 DD Administration. Что необычно – в форме четыре табличных части, три субформы и один настоящий TableBox. Но это не все. В шапке есть реквизиты, касающиеся всех Distribution Location в табличной части, так вот они любопытно реализованы. В каждой записи таблицы DD Admin Location есть вычисляемые поля:

  • No. of Locations – Count(”DD Admin Location”)
  • Enabled Locations – Count(”DD Admin Location” WHERE (Enabled=FILTER(Yes)))
  • Disabled Locations – Count(”DD Admin Location” WHERE (Enabled=FILTER(No)))
  • No. of Connection Errors – Count(”DD Admin Location” WHERE (Connection Error=FILTER(Yes)))
  • No. of Director Errors – Count(”DD Admin Location” WHERE (Show Error=FILTER(Yes)))

Р?С… особенность РІ том, что РѕРЅРё вычисляются РЅР° базе самой таблицы DD Admin Location.

По кнопке Checks / Check All Location происходит вызов кодеюнита 99001468 Update Remote Statuses. В кодеюните в цикле происходит обработка всех записей таблицы DD Admin Location с флагом Enadled=TRUE. Для записей с флагом Update Location = FALSE происходит только получение сообщений, для записей с флагом Update Location = TRUE, то дополнительно происходит обновление сообщений в обрабатываемом Distribution Location.

В целом ничего интересного, кроме:
А) простого примера, как организовать обмен между таблицами с помощью DD (без шелухи в виде настраиваемых пользоватем Субзаданий).
Р‘) информации Рѕ том, что этот кодеюнит можно запускать РёР· ShedulerJob Рё передавать РІ него дополнительный фильтрационный параметр (поле Текст), тогда таблица DD Admin Location дополнительно (Рє Enabled = TRUE) отфильтруется РїРѕ полю Job Filter (строка может быть любой “aaaa”, “<>aaaa”, “aaaa..fffff”, “<>””).

Рассмотрим некоторые поля таблицы DD Admin Location:
Last Inc. Counter Рё Last Outg. Counter, счетчики полученных сообщений РѕС‚ Distribution Location. Значение счетчика, копируются значения поля Counter последней полученной записи таблицы IncomingMessages или OutgoingMessages. Р?спользуются, чтобы получать только новые записи.

Max Counter Interval, если значение = 0, то будут загружены за один прием все новые сообщения из таблиц IncomingMessages или OutgoingMessages.
IncomingMessages.SETFILER(Counter, “>%1”, Last Inc. Counter)

Если же указать какое-то целое значение, то сообщения будут загружаться частями:
IncomingMessages.SETRANGE(Counter, Last Inc. Counter +1, Last Inc. Counter + Max Counter Interval)
ShowError. Поле, значение которого устанавливается Да, если у Distribution Location есть проблемные сообщения, уже разбирали выше, но повторим еще раз:

  • Incoming Errors - Count(”Remote Inc. Msg.” WHERE (…,Status=FILTER(Error),…))
  • Outgoing Errors - Count(”Remote Outg. Msg.” WHERE (…,Status=FILTER(Error),…))
  • Incoming Unprocessed - Count(”Remote Inc. Msg.” WHERE (…,Status=FILTER(Received),…))
  • Outgoing Unprocessed - Count(”Remote Outg. Msg.” WHERE (…,Status=FILTER(Processing|Waiting|To Forward),…))
IF Incoming Errors + Outgoing Errors + Incoming Unprocessed + Outgoing Unprocessed &gt; 0 THEN 
В  ShowError :=TRUE; 
ELSE 
В  ShowError := FALSE;

Стоит отметить, что данный код выполняется только при нажатии на кнопку Update View, формы DD Administration.

Last Rem.Inc. Msg и Last Rem.Outg. Msg. Чуть выше, мы упоминали про изменение статуса проблемных сообщений. Так вот, когда мы изменяем статус у этих сообщений (вручную или с применением функции Update Multiple Entries), то в у этих сообщений происходит заполнение поля ReplCount. ReplCount – обычное поле, используемое как «Счетчик репликации», про назначение и создание таких полей рассказывано в справочной системе, разделы: Replication with Replication Counters и Adding Replication Counters to Tables.
В полях Last Rem.Inc. Msg и Last Rem.Outg. Msg. хранится значение счетчика последнего обработанного (отправленного) сообщения.

Это конечно не весь доступный функционал связанный с мониторингом репликаций, но некоторый пробел в документации эта статья должна закрыть.

Метки:



Комментариев: 4

  1. Plaintive пишет:

    Прикольно написано. Почти за душу берёт, заставляет задуматься над собственным блогом. Хотя не совсем полностью тема развёрнута. Где об этом посмотреть более подробно? С уважением, Plaintive :)
    Зы:Я чесно старался придумать такой комент, который вам понравиться ;)

  2. Ваня пишет:

    Подскажите, пожалуйста, пару-тройку форумов по этой теме. Заранее спасибо!

  3. apanko пишет:

    Борьба с ДатаДиректор на форуме у Mazzy http://forum.mazzy.ru/index.php?showtopic=8812&hl=
    Еще про репликацию можно найти на http://apanko.ru поиск по “[LS Retail]” или “репл*”

  4. ELENA пишет:

    wery!

Оставьте свой отзыв!