Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Платформа обработчика бизнес-логики позволяет создавать сборку управляемого кода, вызываемую во время процесса синхронизации слиянием. Сборка включает бизнес-логику, которая может реагировать на ряд условий во время синхронизации: изменения данных, конфликты и ошибки. Платформа обработчика бизнес-логики предоставляет простую модель программирования, а данные, которые процесс слияния предоставляет вашей сборке, представляют собой набор данных ADO.NET, поэтому вы можете использовать знания о ADO.NET, а не изучать собственный интерфейс. Дополнительные сведения об обработчиках бизнес-логики см. в следующей статье:
Справочник по интерфейсу программирования приложений (API): Microsoft.SqlServer.Replication.BusinessLogicSupport
Инструкции по реализации обработчика бизнес-логики. Реализация обработчика бизнес-логики для статьи слияния
Использование обработчиков бизнес-логики
Процесс синхронизации при слиянии может вызывать обработчики бизнес-логики для выполнения:
Настраиваемая обработка изменений
Пользовательское разрешение конфликтов
Настраиваемое разрешение ошибок
Замечание
Указанный обработчик бизнес-логики выполняется для каждой синхронизируемой строки. Сложная логика и вызовы других приложений или сетевых служб могут влиять на производительность.
Настраиваемая обработка изменений
Обработчик бизнес-логики может вызываться во время обработки изменений данных, не конфликтующих, и может выполнять одно из трех действий:
Отклоните данные
Это полезно для приложений, которые не хотят, чтобы изменения распространялись к заданному подписчику или от него. Например, администратор может отфильтровать вставки, которые не принадлежат разделу подписчика, или, возможно, отклонить удаления, выполненные у подписчика. В качестве другого примера можно привести случай, когда приложение отклоняет заказ, оформленный на стороне клиента, потому что запасы больше недоступны.
Примите данные
Это полезно для приложений, в которых необходимо просмотреть изменения данных, внесенные на издателе или подписчике, прежде чем разрешать их распространять. Например, приложение среднего уровня может изучить новые заказы, поступающие с объекта, и интегрироваться с процессом закупок среднего уровня.
Примените пользовательские данные
Это полезно для приложений, которым необходимо переопределить определенные значения данных или операции. Например, приложение может преобразовать удаление строки в специальное обновление, которое задает столбец состояния в строке значение "удалено", а затем отслеживает удостоверение клиента, выполняющего удаление. Это может быть полезно для аудита или рабочих процессов.
Настраиваемое разрешение конфликтов
Репликация слиянием обеспечивает обнаружение конфликтов и разрешение, позволяя принимать стратегию разрешения по умолчанию или выбирать настраиваемое разрешение конфликтов. Для получения дополнительной информации см. Advanced Merge Replication Conflict Detection and Resolution. Обработчик бизнес-логики можно вызвать во время обработки конфликтующих изменений данных и выполнить одно из двух действий:
Принять разрешение по умолчанию
Это полезно для приложений, которые могут проверить конфликт, выполнить дополнительные действия и, возможно, записать пользовательское сообщение о конфликте в журнале.
Выполнить пользовательское разрешение
Это полезно для приложений, которые могут потребоваться выбрать значения данных, относящиеся к их бизнес-логике, и предоставить процесс синхронизации с этим пользовательским набором данных. Например, приложение может предоставить новую версию выигрышной строки, объединив значения из наборов данных издателя и подписчика.
Настройка разрешения ошибок
Пользовательская логика может вызываться во время распространения изменений, которые приводят к ошибкам. Логика может выполнять одно из двух действий:
Принять разрешение ошибок по умолчанию
Это полезно для приложений, которым может понадобиться проверить ошибку, выполнить дополнительные действия и, возможно, записать собственное сообщение в журнал ошибок.
Принятие пользовательского разрешения ошибок
Это полезно для приложений, которые могут потребоваться выбрать значения данных, относящиеся к их бизнес-логике, и предоставить процесс синхронизации с этим пользовательским набором данных. Например, если процесс репликации сталкивается с повторяющимся нарушением ключа, обработчик бизнес-логики может предоставить новую версию изменения данных, в которой ключ больше не конфликтует. Изменения, внесенные издателем и подписчиком, затем могут сохраняться в базе данных, и процесс репликации не приходится компенсировать ошибку при вставке удалением.
Сценарии развертывания для обработчиков бизнес-логики
Обработчики бизнес-логики можно развернуть в:
Распространитель. Используйте push-подписку, чтобы бизнес-логика выполнялась на распространитете.
Подписчик. Используйте подписку с вытягиванием, чтобы бизнес-логика выполнялась на стороне подписчика.
Сервер служб IIS, если используется веб-синхронизация. Используйте подписку по запросу, синхронизированную с веб-синхронизацией, и обработчик бизнес-логики будет выполняться на сервере IIS.
См. также
Репликация слиянием
Подписка на публикации
Синхронизация данных
Веб-синхронизация для слияния репликации