业务逻辑处理程序框架允许编写在合并同步过程中调用的托管代码程序集。 该程序集包括可在同步期间响应多个条件的业务逻辑:数据更改、冲突和错误。 业务逻辑处理程序框架提供了一个简单的编程模型,合并过程提供给程序集的数据采用 ADO.NET 数据集的形式,因此可以利用 ADO.NET 知识,而不是学习专有接口。 有关编程业务逻辑处理程序的详细信息,请参阅:
应用程序编程接口(API)参考:Microsoft.SqlServer.Replication.BusinessLogicSupport
有关如何实现业务逻辑处理程序的说明: 实现合并项目的业务逻辑处理程序
业务逻辑处理程序的用途
合并同步过程可以调用业务逻辑处理程序来执行:
自定义更改处理
自定义冲突解决
自定义错误解决方案
注释
指定的业务逻辑处理程序是针对每个同步的行来执行的, 因此复杂的逻辑以及对其他应用程序或网络服务的调用都可能会影响性能。
自定义更改处理
可以在处理非冲突数据更改期间调用业务逻辑处理程序,并且可以执行以下三个作之一:
拒绝这些数据
对于不希望将更改传播到或从给定订阅服务器传播的应用程序来说,这是非常有用的。 例如,管理员可以筛选掉不属于订阅服务器分区的插入,或者拒绝在订阅服务器上执行的删除。 另一个示例是,应用程序可能会拒绝在订阅者处输入的订单,因为库存不再可用。
接受数据
这对于需要先在发布服务器或订阅服务器上查看数据更改,然后再允许传播数据更改的应用程序非常有用。 例如,中层应用程序可以检查来自外部的新订单,并与中层中的采购工作流集成。
应用自定义数据
这对于需要替代特定数据值或作的应用程序非常有用。 例如,应用程序可以将行删除转换为特殊更新,该更新将行中的 状态 列设置为“已删除”的值,然后跟踪执行删除的客户端的标识。 这对于审核或工作流目的可能很有用。
自定义冲突解决
合并复制提供冲突检测和解决,允许你接受默认解决策略或为冲突选择自定义解决。 有关详细信息,请参阅 高级合并复制冲突检测和解决。 可以在处理冲突数据更改期间调用业务逻辑处理程序,并且可以执行以下两项作之一:
接受默认解析度
这对于可能需要查看冲突、执行其他作以及可能记录自定义冲突日志消息的应用程序非常有用。
执行自定义解决方案
这对于可能需要选择特定于其业务逻辑的数据值并使用此自定义数据集提供同步过程的应用程序非常有用。 例如,应用程序可以通过合并发布服务器和订阅服务器数据集中的值来提供获胜行的新版本。
自定义错误解决
可以在传播导致错误的更改期间调用自定义逻辑。 逻辑可以执行两个操作之一:
接受默认错误解决
这对于可能需要查看错误并执行其他作并可能记录自定义错误消息的应用程序非常有用。
接受自定义错误处理方案
这对于可能需要选择特定于其业务逻辑的数据值并使用此自定义数据集提供同步过程的应用程序非常有用。 例如,如果复制过程遇到重复的密钥冲突,则业务逻辑处理程序可以提供新的数据更改版本,其中密钥将不再冲突。 然后,在发布服务器和订阅服务器上所做的更改可以保留在数据库中,复制过程不必用删除来补偿插入失败的问题。
业务逻辑处理程序的部署方案
可以在以下位置部署业务逻辑处理程序:
分销商 使用推送订阅,以便在分发服务器上执行业务逻辑。
订阅者。 使用请求订阅,以便在订阅服务器上执行业务逻辑。
如果使用 Web 同步,则为 Internet Information Services (IIS) 服务器。 使用与 Web 同步同步的拉取订阅,业务逻辑处理程序将在 IIS 服务器上执行。