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


Выполнение бизнес-логики во время синхронизации слияния

Платформа обработчика бизнес-логики позволяет создавать сборку управляемого кода, вызываемую во время процесса синхронизации слиянием. Сборка включает бизнес-логику, которая может реагировать на ряд условий во время синхронизации: изменения данных, конфликты и ошибки. Платформа обработчика бизнес-логики предоставляет простую модель программирования, а данные, которые процесс слияния предоставляет вашей сборке, представляют собой набор данных ADO.NET, поэтому вы можете использовать знания о ADO.NET, а не изучать собственный интерфейс. Дополнительные сведения об обработчиках бизнес-логики см. в следующей статье:

Использование обработчиков бизнес-логики

Процесс синхронизации при слиянии может вызывать обработчики бизнес-логики для выполнения:

  • Настраиваемая обработка изменений

  • Пользовательское разрешение конфликтов

  • Настраиваемое разрешение ошибок

Замечание

Указанный обработчик бизнес-логики выполняется для каждой синхронизируемой строки. Сложная логика и вызовы других приложений или сетевых служб могут влиять на производительность.

Настраиваемая обработка изменений

Обработчик бизнес-логики может вызываться во время обработки изменений данных, не конфликтующих, и может выполнять одно из трех действий:

  • Отклоните данные

    Это полезно для приложений, которые не хотят, чтобы изменения распространялись к заданному подписчику или от него. Например, администратор может отфильтровать вставки, которые не принадлежат разделу подписчика, или, возможно, отклонить удаления, выполненные у подписчика. В качестве другого примера можно привести случай, когда приложение отклоняет заказ, оформленный на стороне клиента, потому что запасы больше недоступны.

  • Примите данные

    Это полезно для приложений, в которых необходимо просмотреть изменения данных, внесенные на издателе или подписчике, прежде чем разрешать их распространять. Например, приложение среднего уровня может изучить новые заказы, поступающие с объекта, и интегрироваться с процессом закупок среднего уровня.

  • Примените пользовательские данные

    Это полезно для приложений, которым необходимо переопределить определенные значения данных или операции. Например, приложение может преобразовать удаление строки в специальное обновление, которое задает столбец состояния в строке значение "удалено", а затем отслеживает удостоверение клиента, выполняющего удаление. Это может быть полезно для аудита или рабочих процессов.

Настраиваемое разрешение конфликтов

Репликация слиянием обеспечивает обнаружение конфликтов и разрешение, позволяя принимать стратегию разрешения по умолчанию или выбирать настраиваемое разрешение конфликтов. Для получения дополнительной информации см. Advanced Merge Replication Conflict Detection and Resolution. Обработчик бизнес-логики можно вызвать во время обработки конфликтующих изменений данных и выполнить одно из двух действий:

  • Принять разрешение по умолчанию

    Это полезно для приложений, которые могут проверить конфликт, выполнить дополнительные действия и, возможно, записать пользовательское сообщение о конфликте в журнале.

  • Выполнить пользовательское разрешение

    Это полезно для приложений, которые могут потребоваться выбрать значения данных, относящиеся к их бизнес-логике, и предоставить процесс синхронизации с этим пользовательским набором данных. Например, приложение может предоставить новую версию выигрышной строки, объединив значения из наборов данных издателя и подписчика.

Настройка разрешения ошибок

Пользовательская логика может вызываться во время распространения изменений, которые приводят к ошибкам. Логика может выполнять одно из двух действий:

  • Принять разрешение ошибок по умолчанию

    Это полезно для приложений, которым может понадобиться проверить ошибку, выполнить дополнительные действия и, возможно, записать собственное сообщение в журнал ошибок.

  • Принятие пользовательского разрешения ошибок

    Это полезно для приложений, которые могут потребоваться выбрать значения данных, относящиеся к их бизнес-логике, и предоставить процесс синхронизации с этим пользовательским набором данных. Например, если процесс репликации сталкивается с повторяющимся нарушением ключа, обработчик бизнес-логики может предоставить новую версию изменения данных, в которой ключ больше не конфликтует. Изменения, внесенные издателем и подписчиком, затем могут сохраняться в базе данных, и процесс репликации не приходится компенсировать ошибку при вставке удалением.

Сценарии развертывания для обработчиков бизнес-логики

Обработчики бизнес-логики можно развернуть в:

  • Распространитель. Используйте push-подписку, чтобы бизнес-логика выполнялась на распространитете.

  • Подписчик. Используйте подписку с вытягиванием, чтобы бизнес-логика выполнялась на стороне подписчика.

  • Сервер служб IIS, если используется веб-синхронизация. Используйте подписку по запросу, синхронизированную с веб-синхронизацией, и обработчик бизнес-логики будет выполняться на сервере IIS.

См. также

Репликация слиянием
Подписка на публикации
Синхронизация данных
Веб-синхронизация для слияния репликации