Репликация данных

Печать Стартовая страница

Цель задачи – синхронизировать изменения объектов на различных картах одного района,  используя журнал транзакций, т.е. обновления объектов, сделанные на одном документе, выборочно могут быть распространены на те же объекты на других картах.    

Первым шагом выполнения  репликации является  инициирование. Для настройки служит

закладка диалога Инициирование  репликации с возможностью выбора имени файла входной и выходной карты и списком операций, записанных в журнал транзакций входной карты.

Файл настройки учитывает по желанию пользователя как все операции из журнала транзакций, так и выборочно путём выделения интересующих записей.  

 

_bm3477

 

Если выбран существующий файл настройки, на экране появится сообщение:

 

_bm3478

 

Ответ  “Да”    – файл обновится, включив все операции из журнала транзакций;

Ответ  “Нет”  –  в файл запишутся выделенные в окне  операции или транзакции, дата     записи которых превосходит дату, установленную в файле настройки в поле  .TO.

По нажатию на “Отмена” файл не изменится.

В результате выполнения программы настройки формируется контрольный текстовый файл с расширением .rep (файл настройки). Файл содержит список уникальных ключей объектов  и признак их корректировки (создание, удаление, редактирование), принадлежащих одному листу.

Структура файла .rep:

.REP

.FRM  дата начала транзакций

.TO     дата окончания

.MAP  имя файла  паспорта карты, содержащей объекты репликации

.NOM  номенклатура листа

.DEL   уникальный ключ   маска обработки  

.NEW  уникальный ключ  маска обработки  

.UPD   уникальный ключ  маска обработки  

……..

.NOM  номенклатура

.DEL   уникальный ключ  маска обработки  

.NEW  уникальный ключ  маска обработки  

.UPD   уникальный ключ  маска обработки  

……..

.END

Аббревиатура “.DEL”, “.NEW”, “.UPD”  используется для  обозначения типа операции –

удаление объекта, создание или обновление.

Выходная карта является источником репликации, на неё копируются отредактированные на входной карте объекты, выбранные из списка транзакций по типу операций и временному признаку. Эта карта представляет собой “общие ресурсы” для различных карт и объекты делегируются карте-приёмнику репликации.

Выгрузка объектов репликации реализуется при активизации закладки диалога Репликация:

 

_bm3479

 

- установить имя файла входной карты, нуждающейся в синхронизации;

- установить имя  файла настройки, созданного на предыдущем этапе.

Выбор приоритета  обновления характеристик объектов зависит от пользователя и имеет значение в случае, если объекты карты-приёмника  репликации (входная карта), имеющие те же ключи, что и объекты производного файла (выходного файла предыдущего этапа выполнения репликации),  обновлялись,  и эти корректировки должны быть сохранены.  

Установка приоритета выполнения имеет цель максимально обезопасить проводимые изменения на картах.  

При обработке типа операции  “Создание объекта” может возникнуть такая ситуация:

на  карте - источнике  репликации и карте-приёмнике создали различные новые объекты с одинаковыми уникальными номерами. В зависимости от установленного в диалоге приоритета ключи объектов (уникальные номера) изменятся – объект репликации на карте с меньшим приоритетом приобретает ключ на единицу больший максимального для данного листа.

При обработке типа операции  “Удаление объекта” необходимо учитывать редактирование объекта репликации на карте – приёмнике. Если эта карта обладает большим приоритетом, обновлённый объект не удаляется.

При обработке типа операции  “Обновление объекта” в случае, когда объект репликации на карте – приёмнике удалён и приоритет принадлежит карте – источнику репликации,    объект восстанавливается и обновляется в соответствии с заданием.

 

Замечание: если карта-приёмник репликаций создана с классификатором, отличающимся от классификатора реплицирующей карты, объекты этой карты будут перекодированы в соответствии с данными классификатора входной карты.  

После выполнения репликации в журнал транзакций карты-приёмника будет сделана запись с кодом TAC_MED_REPLIC.

В текстовый файл Replic.log заносится информация о выполнении процесса репликации по объектам.

Результатом выполнения программы является обновлённая  входная карта.