使用Sync Framework 2.1,批处理似乎有内置支持,因此在某些提供程序中我们可以只提及批量大小和假脱机文件位置(以及其他一些属性),并且批处理将被处理。开发人员不必编写自己的批处理逻辑。
但是,这仅适用于SqlSyncProvider或DbSyncProvider等少数提供程序,它们似乎可以满足SQL服务器更改跟踪。允许自定义更改跟踪的早期提供程序(如ClientSyncProvider和DBServerSyncProvider)似乎没有太多增强功能。知道我们如何使用新的批处理功能并仍然保留我们的自定义更改跟踪逻辑吗?
我们没有选择转向内置更改跟踪,因为我们的自定义逻辑处理非对称数据库(其中服务器数据库是多租户的,每个客户端数据库是单租户)。
答案 0 :(得分:2)
我们最终决定实现我们自己的自定义批处理解决方案 - 在循环中运行synchronize方法,将last_sync_anchor和new_sync_anchor之间的差距限制在500左右。
虽然远非理想(与使用字节大小作为限制因素的MS实现相比),但它适用于我们并且允许我们坚持我们的变更跟踪和同步的自定义实现。
答案 1 :(得分:1)
只有SqlSyncProvider支持内置批处理。您可以通过设置MemoryDataCacheSize proeprty在DbSyncProvider中控制某种程度的批处理。然而坏消息是,如果您使用的是早期版本,则没有太多选择...