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


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

Область применения: SQL Server

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

Применения обработчиков бизнес-логики

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

  • обработка пользовательских изменений;

  • устранение пользовательских конфликтов;

  • разрешение пользовательских ошибок.

Примечание.

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

обработка пользовательских изменений;

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

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

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

  • Принять данные

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

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

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

устранение пользовательских конфликтов;

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

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

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

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

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

разрешение пользовательских ошибок.

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

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

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

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

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

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

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

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

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

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