Доступно с лицензией Standard или Advanced.
При работе с двухсторонними и односторонними репликами фильтры и правила класса отношений, которые были применены при создании реплики, будут также использованы в процессе синхронизации, за исключением основанных на выборках фильтров. При определении изменений, которые должны быть отправлены, в каждом наборе данных реплики происходит изучение всех изменений, которые были произведены с момента последней синхронизации. Если изменение удовлетворяет условиям фильтров реплики, то оно будет синхронизировано.
На расположенном ниже рисунке отображено то, каким образом в процессе синхронизации используется фильтр области реплики, когда объекты перемещаются в сессии редактирования. Следующие изменения будут отосланы к связанной реплике в процессе синхронизации:
- Объект был перемещен в новое местоположение в рамках области реплики.
- Объект был перемещен за рамки области реплики. Новое местоположение объекта будет обновлено в связанной реплике в процессе синхронизации, даже если он находится за пределами области реплики.
- Объект был перемещен из-за пределов области реплики в область реплики.
При перемещении объекта, который находится за пределами области реплики (объект 4), он не обновляется в связанной реплике в процессе синхронизации.
Основанные на выборках фильтры применяются в процессе создания реплик, но игнорируются пои синхронизации. Процесс синхронизации воспринимает основанные на выборках фильтры как будто это все - записи. Например, если для определения записей для согласования из таблицы в процессе создания реплики используется только выбранный набор, все внесенные в таблицу изменения применяются в процессе синхронизации. Если выбранный набор и прочие фильтры были использованы для определения записей для репликации в процессе создания реплики, в процессе синхронизации применяются лишь эти прочие фильтры. Например, если для определения записей для согласования из таблицы в процессе создания реплики используется только выбранный набор, все внесенные в таблицу изменения применяются в процессе синхронизации.
Если реплицируемые данные включают в себя классы отношений, то это окажет влияние на процесс синхронизации. Ниже будет описано то, как будут применяться правила классов отношений в процессе синхронизации.
Даже если изменение не будет удовлетворять фильтрам, оно все равно сможет быть синхронизировано, если оно удовлетворяет следующим требованиям:
- Изменяемый объект принадлежит набору данных с фильтром «только схема» и задействован хотя бы в одном классе отношений.
Он должен соответствовать одному из критериев:
- Изменяемый объект связан со строкой в другом наборе данных, который удовлетворяет фильтрам. Строка, с которой связан этот объект, не обязательно должна быть изменена с момента последней синхронизации.
- Изменяемый объект находится в наборе данных, который связан с набором данных, имеющим фильтр «только схема».
Это означает, что строки в классах пространственных объектов или таблицах, которые имеют фильтры, отличные от фильтра «только схема», смогут быть синхронизированы, если они будут удовлетворять условиям фильтра.
Эти правила также позволят вам произвести «сцепление» связанных данных. Это может произойти, когда посредством классов отношений в реплике для строки из удаленного класса объектов-адресатов (destination class) может быть проложен путь в обратном направлении посредством нескольких отношений к классу объектов-источников.
(Пример:
В данном примере для репликации было выбрано три здания. Поскольку связанные записи были включены в процессе создания реплики, то связанный класс объектов-источников (destination class) будет также реплицирован. Поля класса объектов-адресатов, которые связаны с объектами-источниками, были отредактированы в дочерней реплике. При синхронизации реплик эти изменения будут обновлены в связанном классе объектов-адресатов (destination class) в родительской реплике.
Поддержка целостности отношений
При синхронизации производится обслуживание отношений. Например, если в связанную реплику будет добавлено новое отношение, то оно будет обслуживаться при синхронизации задействованных в этом отношении строк. Обслуживание отношения может потребовать изменения значения внешнего ключа реплики, получающей изменения, если для внешнего ключа установлено поле objectid.
Ниже приводятся примеры моделей поведения связанных строк в процессе синхронизации:
Пример №1
В первом примере отобраны для репликации некоторые пространственные объекты класса origin, здания. Здания связаны через неатрибутивное отношение (nonattributed relationship) с атрибутивными записями в таблице, которые не были включены в репликацию. В течение редактирования в дочерней реплике было удалено здание. В процессе синхронизации, чтобы аннулировать отношение с объектом, который был удален, соответствующая запись в поле внешнего ключа в связанном классе-адресате, таблице, установлена как NULL.
Данная модель поведения синхронизации может также привести к удалению строк, представляющих связи в атрибутивной таблице класса отношений (как будет ясно из следующего примера).
Пример №2
В данном примере связь между классом пространственных объектов-источников (origin feature class) и таблицей класса объектов-адресатов (destination class table) является атрибутивной. Это означает, что само отношение имеет связанную таблицу. И отношение, и класс объектов-адресатов (destination class) были исключены в процессе создания реплики. Изменения, произведенные для класса пространственных объектов-источников (origin feature class) в дочерней реплике, привели к удалению одного пространственного объекта. При выполнении синхронизации строка в атрибутивной таблице класса отношений, представляющая связь данного объекта с другим объектом в классе объектов-адресатов, будет удалена.
При синхронизации удаляются только связи (отношения); сами связанные объекты никогда не удаляются.