Передача изменений конфигурации в распределенной информационной базе

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

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

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

Регистрация изменений

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

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

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

Передача изменений

Изменения конфигурации передаются в сообщении обмена. Для обеспечения целостности передаваемых изменений сообщение обмена содержит контрольную сумму передаваемых изменений.
Объем передаваемых данных зависит от количества зарегистрированных изменений. Поэтому для сокращения объема передаваемых данных рекомендуется после приема очередного сообщения обмена отправлять сообщение-подтверждение приема данных. При получении подобного сообщения в узле-отправителе происходит удаление регистрации изменений переданных ранее данных.

Прием изменений

При приеме изменений конфигурации производится проверка соответствия принимаемых изменений конфигурации узла распределенной информационной базы. Если же сообщение обмена не содержит изменений конфигурации, то производится проверка идентичности конфигураций приемника и источника сообщения. Для контроля идентичности конфигураций в сообщении обмена распределенной информационной базы передается контрольная сумма конфигурации. В случае несовпадения контрольной суммы, рассчитанной по конфигурации и содержащейся в сообщении обмена, прием сообщения обмена прерывается.

Рассмотрим типовые случаи, возникающие при приеме сообщений обмена. Пусть имеются два узла распределенной информационной базы: Центральный узел (ЦУ) и Периферийный узел (ПУ).

  1. Если в ЦУ были выполнены изменения конфигурации и производится загрузка сообщения обмена из ПУ, содержащего неизмененную конфигурацию, то будет сгенерировано исключение: "Данные принимаются от узла, для которого зарегистрированы изменения конфигурации...". В этом случае необходимо сформировать сообщение обмена в ЦУ, включающее изменения конфигурации, и передать его в ПУ. После успешного получения в ПУ сообщения обмена с изменениями конфигурации необходимо повторить выгрузку первоначального сообщения обмена из ПУ для передачи его в ЦУ.
  2. Если в ПУ производится загрузка сообщения обмена, содержащего изменения конфигурации из ЦУ, то совершаются следующие действия:
  3. Если в ПУ производится загрузка сообщения обмена, содержащего изменения конфигурации из ЦУ, но эти изменения уже были загружены в информационную базу и конфигурация базы данных успешно обновлена, то изменения конфигурации не загружаются и процесс чтения сообщения обмена продолжается.