在几篇文章当中,我介绍了 SnapShot(快照方式)和“只同步新更改和增量更改”这两种同步方式并对相应的生成文件进行了粗略的分析。今天开始把话题深入一下,聊一聊MSF的冲突检测和处理。
这里所说的冲突(Conflict) 主要是指当客户端与服务端数据在进行CUD时,所操作的数据同步期间发生了错误,如通常所说的约束冲突(主键重复),以及在同步时多个节点(客户端)上更改了同一行,或服务端删除该行而其它节点却更新了该行便存在冲突等。当然在设计应用程序时应避免产生冲突(比如可通过筛选行和列等方式做到这一点),因为冲突的检测和解决会增加应用程序的复杂性,增加处理负担和网络流量。
当前MSF本身对冲突这种问题也是提供了一些基础层面上的支持的。下面是其定义的几种冲突的基本类型(Conflict.ConflictType),它们包括:ClientInsertServerInsert:客户端和服务器都插入了具有相同主键值的行。此操作导致了主键冲突。
ClientDeleteServerUpdate:客户端删除了服务器更新的行。
ClientUpdateServerDelete:服务器删除了客户端更新的行。
ClientUpdateServerUpdate:客户端和服务器更新了相同的行。
ErrorsOccurred:客户端或服务器存储区(通常为数据库)在应用更改时引发了一个异常。
Unknown:客户端同步时提供程序能对所遇到的所有冲突进行分类,但服务器同步时不能提供程序。
如果要截获冲突,可以通过对相应的SyncProvider对象中ApplyChangeFailed事件绑定来完成为,比如下面的示例代码:
syncClientSyncProvider.ApplyChangeFailed+= new EventHandler<ApplyChangeFailedEventArgs>(syncClientSyncProvider_ApplyChangeFailed);
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索客户端
, 服务器
, ontochevent事件冲突
, 冲突
, 更新
, 同步
, 主键冲突
, 检测
, 事件冲突
, 主键冲突orcale
, 冲突modhash
, conflicts
, $冲突
RecyclerView冲突
msf框架、msf框架ppt、spring框架入门、restful框架案例入门、ssh框架入门教程,以便于您获取更多的相关知识。