微软同步框架(MSF)入门之四--冲突(Conflict)检测和处理

在几篇文章当中,我介绍了 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框架入门教程,以便于您获取更多的相关知识。

时间: 2024-08-04 12:46:28

微软同步框架(MSF)入门之四--冲突(Conflict)检测和处理的相关文章

微软同步框架(MSF)入门之三--分析生成的同步类文件

在前两篇文章当中,我介绍了SnapShot(快照方式)和"只同步新更改和增量更改"这两种同步方式.将使用设计器同步向导生成了两个相应的DEMO.今天我们会一起分析一下这两个DEMO中相应的同步文件内容和相互差异. 首先要分析的DEMO是"只同步新更改和增量更改",我们用VS2008打开DEMO的解决方案方案,如下图: 之前所说的关于MSF为我们生成的主要的类代码就保存在了BiDirectSyncData.sync文件中,下面先分析一下BiDirectSyncData

微软同步框架(MSF)入门开篇(附SnapShot快照Demo)

在Teched2008上听了一节关于MSF(Microsoft Sync Framework 微软同步框架),这一框架允许开发者创建离线式的应用.设备和服务,可以与任何应用的任意类型数据进行集成. 有关这个模架的介绍在网上有一些链接,而园子里也有朋友做过这方面的介绍.当时东西好不好,只有用过才会知道.今天这篇文章就是简单试用一把MSF来开发ADO.NET同步的DEMO(当然其也支持文件和文件夹的同步,我会在以后写文介绍研究心得).因为是初次使用,所以截图多了一些,当然在概念理解上也可能有偏差,有

微软同步框架(MSF)入门之八--使用WCF同步远程元数据(二)

到这里服务端的代码就全部列举出来了.当然本文中介绍的是元数据同步,而相应的SyncProvider实现是通过MySimpleSyncProvider.cs文件提供的,当然为了不让我的某些错误理解影响大家阅读源码,这里直接将相应的英文注释也放在这里. public class MySyncProvider : KnowledgeSyncProvider, IChangeDataRetriever, INotifyingChangeApplierTarget { // The name of the

微软同步框架(MSF)入门之七--定制同步提供程序(SyncProvider)

在上一篇文章当中,简要介绍了一下如何使用现有的 SyncProvider 对象来进行文件(夹)同步.今天的这个DEMO主要演示通过继承方式来实现自己的SyncProvider来进行相关同步元数据存储,当然这样做会给我们以额外的好处,比如按自己的意愿来创建.版本和删除项的信息等.另外就是对同步应用程序的工作原理也会有一个大概的认识. 在开始正文之前,我在网上看到了这篇文章对MSF的负责报道,当然它所说的部分观点我同意.MSF的确不那么好学,官方的文档的确也难懂,但事情总要慢慢来,只有通过不断积累不

微软同步框架(MSF)入门之二--增量和修改同步方式

在上一篇文章当中,我通过创建一个SnapShot(快照方式)DEMO演示MSF是如何将远程数据服务器中的数据同步到本地 SQLCE数据库中的.今天这篇文章演示如何使用同步操作向导创建另外一种方式,即"只同步新更改和增量更改"方式.当前这种方式比之前一种"快照方式"要更加便捷,而且因为快照方式是采用整表同步,因此不管是数据是否被修改过,都是把所有数据下载到本地,而今天演示的这种方式是只同步修改或新添加的数据,可以说是一种经济实惠的解决方案. 当然,这里并不是说&quo

微软同步框架(MSF)入门之八--使用WCF同步远程元数据(一)

在MSF中,提供了用于存取维护元数据的一些相应工具类,即Metadata Storage Service.它可帮助存储提供程序的同步元数据,该提供程序表示无法通过其他方式存储元数据的副本.Metadata Storage Service 使用占用较小内存和磁盘空间的轻型数据库,可以随提供程序重新分发,并且安全可靠. 其所提供的API 将元数据存储区与用于访问元数据存储区的接口和方法明确区分开,这样即可实现备用存储区,且对提供程序稍作变更即可使用备用存储区. 当然上面是SDK中的一些说法:) Me

微软同步框架(MSF)入门之六--文件(夹)同步

在前五篇文章当中,介绍了Sync For ADO.NET Service,从这篇文章开始,将开始介绍有关使用MSF进行文件(夹)同步的相关知识.因为文件同步的应用目前比较广泛,所以可能够要用3-4篇文章来进行介绍.今天先介绍一下有关MSF文件同步的原理和使用MSF中现有的类来实现一个简单的DEMO(本DEMO支持文件和文件夹)同步. 好的,下面开始今天的正文. SyncServices可帮助应用程序在NTFS.FAT或SMB文件系统中同步文件.文件夹和子文件夹.要同步的目录可为本地或远程目录,且

微软同步框架(MSF)入门之五--使用WCF同步远程数据

在之前介绍的两个DEMO中,链接远程服务器所使用的方式都是通过数据库链接串.虽然可以简单的实现所期望的数据同步功能,但这样做有两个问题: 1.不适合进行分布式布署. 2.安全方面存在问题,因为在客户端会持有远程数据库服务器的链接帐号. 因为这两个问题,导致了今天所要说的内容.当然在MSF中是支持采用WCF方式来进行远程数据访问的,而且WCF不仅可以用于数据同步,还可以进行文件同步(会在后续章节中进行介绍). 好了,费话少说,开始今天的正文吧. 下面简要介绍一下今天DEMO的一个具体开发流程. 首

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观