Поделиться через


Пользовательские арбитры на основе технологии COM

Пользовательские арбитры конфликтов предоставляют большую гибкость по сравнению с механизмом разрешения конфликтов по умолчанию, и они могут реализовать бизнес-логику, необходимую для приложений, использующих реплицированные данные. Пользовательский арбитр конфликтов на основе COM — это динамически подключаемая библиотека (DLL), которая реализует COM-интерфейс ICustomResolver, его методы и свойства, а также другие поддерживаемые интерфейсы и определения типов, разработанные специально для разрешения конфликтов.

ПримечаниеПримечание

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

Для создания пользовательского COM-арбитра конфликтов можно использовать библиотеку типов, которая содержится в файле replrec.dll. По умолчанию эта библиотека устанавливается в каталог C:\Program Files\Microsoft SQL Server\100\COM.

Перед написанием пользовательского COM-арбитра конфликтов необходимо определиться по следующим вопросам:

  • Типы изменений строк, конфликты которых необходимо разрешить, например обновления, вставки и удаления, а также, должен ли арбитр конфликтов вызываться во время передачи изменений слияния, загрузки изменений слияния, или его необходимо вызывать в обеих ситуациях. Можно указать один тип изменений, все изменения, или любое их сочетание. Арбитр конфликтов слияния по умолчанию обрабатывает любые конфликты, не охваченные пользовательским арбитром конфликтов.

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

Реализация пользовательского арбитра конфликтов на основе технологии COM

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

Указание пользовательского арбитра конфликтов