Пользовательские арбитры на основе технологии COM
Изменения: 14 апреля 2006 г.
Пользовательские арбитры конфликтов предоставляют большую гибкость по сравнению с механизмом разрешения конфликтов по умолчанию, и они могут реализовать бизнес-логику, необходимую для приложений, использующих реплицированные данные. Пользовательский арбитр конфликтов на основе COM — это динамически подключаемая библиотека (DLL), которая реализует COM-интерфейс ICustomResolver, его методы и свойства, а также другие поддерживаемые интерфейсы и определения типов, разработанные специально для разрешения конфликтов.
Примечание. |
---|
Рекомендуется использовать обработчик бизнес-логики вместо пользовательского арбитра конфликтов на основе COM, если это возможно. Дополнительные сведения об обработчиках бизнес-логики см. в разделе Выполнение бизнес-логики при синхронизации слиянием. |
Для создания пользовательского COM-арбитра конфликтов можно использовать библиотеку типов, которая содержится в replrec.dll. По умолчанию эта библиотека устанавливается в каталог «C:\Program Files\SQL Server\90\COM».
Перед написанием пользовательского COM-арбитра конфликтов необходимо определиться по следующим вопросам:
- Типы изменений строк, конфликты которых необходимо разрешить, например обновления, вставки и удаления, а также, должен ли арбитр конфликтов вызываться во время передачи изменений слияния, загрузки изменений слияния, или его необходимо вызывать в обеих ситуациях. Можно указать один тип изменений, все изменения, или любое их сочетание. Арбитр конфликтов слияния по умолчанию обрабатывает любые конфликты, не охваченные пользовательским арбитром конфликтов.
- Надо ли использовать отслеживание столбца при разрешении конфликта. Когда включено отслеживание на уровне столбцов, только данные в тех столбцах, где существует конфликт, помечаются как конфликт, иначе данные объединяются. Однако конфликты разрешаются таким же способом, как и при отслеживании на уровне строк: победитель по приоритету перезаписывает всю строку данных (однако данные могут быть смесью значений от издателя, подписчиков, или измененными значениями, которые не были получены ни от издателя, ни от подписчиков). Дополнительные сведения см. в подразделе «Уровень отслеживания» раздела Способы обнаружения и разрешения конфликтов, используемые при репликации слиянием.
Реализация пользовательского арбитра конфликтов на основе технологии COM
- Программирование репликации: How to: Implement a COM-Based Custom Conflict Resolver for a Merge Article (Replication Programming)
Пользовательский арбитр конфликтов указывается для статьи, а не для всей публикации. Тот же самый арбитр конфликтов может использоваться с более чем одной статьей, однако логика разрешения конфликтов в пользовательских арбитрах конфликтов часто характерна для определенной таблицы. Если используемая в статье таблица изменена после создания арбитра конфликтов (например, изменено имя столбца, используемого при разрешении конфликта), может потребоваться изменение и повторная компиляция пользовательского арбитра конфликтов.
Указание пользовательского арбитра конфликтов
- Microsoft SQL Server Management Studio: Как указать арбитр слияния статей (среда SQL Server Management Studio)
- Программирование репликации на языке Transact-SQL: How to: Specify a Merge Article Resolver (Replication Transact-SQL Programming)
См. также
Основные понятия
Обнаружение и разрешение конфликтов репликации слиянием
Арбитры на базе технологии Microsoft COM