Изменение структуры узлов
страницаИзменение структуры узлов
В заключение следует сказать о том, что механизм распределенных информационных баз содержит программное средство реконфигурирования структуры узлов распределенной базы.
Для этого следует использовать метод УстановитьГлавныйУзел() объекта ПланыОбменаМенеджер.
В параметре этого метода передается ссылка на узел плана обмена распределенной информационной базы, который устанавливается главным для текущей базы. Также в этом параметре может быть передано значение Неопределено, и это приведет к тому, что у текущей информационной базы будет отсутствовать главный узел.
Допустим, необходимо переместить один из подчиненных узлов в корень дерева (рис. 24.33).

Рис. 24.33. Реконфигурирование структуры узлов
Для этого нужно выполнить следующие действия (листинг 24.34).
Листинг 24.34. Перемещение Узла2 в корень дерева
// В информационной базе Узла2.
ПланыОбменаМенеджер.УстановитьГлавныйУзел(Неопределено);
// В информационной базе Узла1.
ПланыОбменаМенеджер.УстановитьГлавныйУзел(Узел2);
При этом будут удалены все записи регистрации изменений конфигурации Узла1, относящиеся к Узлу2, т. к. передача изменений конфигурации будет возможна теперь только от Узла2 к Узлу1. Записи регистрации изменения данных удалены не будут, так как передача изменений данных будет по-прежнему возможна между этими узлами.
Таким же образом, используя значение параметра метода Неопределено, мы можем отключать от дерева отдельную информационную базу или целое поддерево (рис. 24.34, листинг 24.35).

Рис. 24.34. Отключение поддерева от распределенной информационной базы
Листинг 24.35. Перемещение Узла2 в корень дерева
// В информационной базе Узла1.
ПланыОбменаМенеджер.УстановитьГлавныйУзел(Неопределено);
Кроме этого, мы можем создавать распределенную информационную базу из отдельных информационных баз с идентичной конфигурацией (рис. 24.35, листинг 24.36).

Рис. 24.35. Информационная база из отдельных информационных баз с идентичной конфигурацией
Листинг 24.36. Создание распределенной информационной базы из баз с идентичной конфигурацией
// В информационных базах Узла2, Узла3 и Узла4.
ПланыОбменаМенеджер.УстановитьГлавныйУзел(Узел1);