Проход по ссылкам навигацииГлавная страница > Репликация баз данных. Подробнее > rusbssAgent – агенты репликации
rusbssAgent – агенты репликации

Агенты репликации – это программные компоненты «ruSBSS™», устанавливаемые на клиентской стороне (в дочерних сайтах) распределенной информационной системы. В совокупности с серверами репликации, устанавливаемыми в консолидирующих сайтах, агенты репликации выполняют сеансы репликации клиентских и консолидирующих баз данных.

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

Агент репликации представляет собой клиентскую часть многослойного распределенного приложения «ruSBSS™». Он реализует выполнение следующих операций:
  • установление соединения с сервером репликации;
  • авторизация дочернего сайта;
  • выполнение сеансов репликации баз данных:
    • выполнение скриптов сквозного прохождения в клиентской базе данных;
    • прием «свежей» информации из консолидирующего сайта и ее импорт в клиентскую базу данных;
    • выбор «свежей» информации из клиентской базы данных и ее передача в консолидирующий сайт;
  • выполнение файлового обмена с консолидирующим сайтом.
Агент репликации поставляется в трех реализациях:
  • исполняемый модуль (rusbssAgent.exe);
  • исполняемый модуль для запуска по расписанию (rusbssAgentA.exe);
  • динамически подключаемая библиотека (rusbssAgent.DLL).

Исполняемый модуль агента репликации rusbssAgent.exe запускается как обычное приложение Windows, например: c:\MyFolder\rusbssAgent.exe Исполняемый модуль агента репликации для запуска по расписанию rusbssAgentA.exe предназначен для использования в тех случаях, когда Вам необходимо автоматизировать процесс выполнения сеансов обмена, т.е. проводить их по заранее заданному расписанию без участия оператора. Динамически подключаемая библиотека rusbssAgent.dll предназначена для использования в приложениях, реализующих технологию репликации баз данных на основе системы «ruSBSS™». Сеанс репликации всегда инициируется со стороны дочернего сайта путем запуска агента репликации, который взаимодействует с сервером репликации, установленным в консолидирующем сайте. Ниже приведено упрощенное описание алгоритма сеанса репликации. В реальности все происходит несколько иначе, однако именно такое упрощенное толкование алгоритма поможет Вам понять суть процесса репликации баз данных.

В каждом сеансе репликации выполняются следующие шаги:
  • Поиск сервера репликации
  • Попытка соединения сервера репликации с консолидирующей базой данных
  • Проверка прав доступа сайта к консолидирующей базе данных
  • Выполнение скриптов сквозного прохождения
    • агент передает серверу репликации идентификатор последнего удачно выполненного в прошлом сеансе скрипта сквозного прохождения и запрашивает список скриптов, которые он должен выполнить в текущем сеансе
    • если список скриптов не пуст, то производится их последовательное выполнение в клиентской базе данных; после каждого удачно выполненного скрипта агент фиксирует в клиентской базе данных факт его выполнения
  • Прием информации из консолидирующей базы данных
    • агент запрашивает у сервера репликации список таблиц для приема информации в текущем сеансе
    • для каждой таблицы из этого списка
      • агент информирует сервер о том, какая самая «свежая» запись была помещена в эту таблицу в клиентской базе данных в прошлом сеансе
      • сервер выполняет запрос данных нисходящего потока, выбирая из консолидирующей базы данных все более «свежие» записи
      • сервер упаковывает и передает агенту полученный набор данных
      • агент принимает, распаковывает этот набор и сохраняет его на локальном диске
      • агент последовательно (по одной записи в порядке сортировки принятого набора данных) накатывает его на таблицу-приемник клиентской базы данных с учетом кода операции (добавить/исправить/удалить запись)
      • агент фиксирует в клиентской базе данных информацию о степени «свежести» последней удачно размещенной записи
  • Передача информации в консолидирующую базу данных
    • агент запрашивает у сервера репликации список таблиц для передачи информации в текущем сеансе
    • для каждой таблицы из этого списка
      • агент выполняет проверку наличия и, при необходимости, создание в базе данных специальных объектов поддержки репликации для текущей таблицы
      • агент запрашивает сервер репликации о том, какая самая «свежая» запись была помещена в эту таблицу в консолидирующей базе данных в прошлом сеансе
      • агент выполняет запрос данных восходящего потока, выбирая из клиентской базы данных все «свежие» записи
      • агент упаковывает и передает серверу полученный набор данных
      • сервер принимает, распаковывает этот набор и сохраняет его на локальном диске
      • сервер последовательно (по одной записи в порядке сортировки принятого набора данных) накатывает его на таблицу-приемник в консолидирующей базе данных с учетом кода операции (добавить/исправить/удалить запись)
      • сервер фиксирует в консолидирующей базе данных информацию о степени «свежести» последней удачно размещенной записи

Более подробно см.  rusbss_book rsx_book