MS Sync Framework偶尔会错过一个对象来同步/不完整的同步

时间:2017-12-19 19:14:07

标签: c# microsoft-sync-framework

我只是不知道要搜索什么,而且我尝试的搜索都会提出无关的问题。

C#,。Net 4.5,MSSQL 2008 R2

设定: 我们处于仅推送的点对点情况,其中数据更改导致向其他对等方发送WebAPI通知的事件,然后其他对等方将这些更改(而不是本地推送更改到远程控制器)。

这里发生了什么: 两个事件发生大约半秒钟,导致在同步表中创建两组15条记录。这两个事件都会导致对远程的WebAPI调用,导致该远程启动与原始对等方的MSSFX进程。我们发现的是第一个MSSFX同步正在下载超过15个记录,第二个正在下载剩余的记录,除了偶尔会错过一个。例如,我们在两组15中创建30条新记录;第一个同步下载22个记录,第二个同步仅下载7.丢失的记录永远不会下载,除非它稍后更改。

我的理论:我认为发生的事情是第一个进程正在下载22个对象,但随后作为一个单独的事务,检索包含23个对象的知识。然后在第二次同步时,它没有"看到"额外的对象,只获取下一个知识状态的7个对象。

所以我的问题是:我做错了吗?有没有办法让它成为交易所以我不必担心与数据不匹配的知识?我是不是基于我的猜测,而且根本不是它的工作方式?

要明确:当我说下载时,我的意思是stats类,Synchronize方法返回索引号,同步数据库同意,本地只存在29行,而遥控器中存在30行。

更新我可能从此堆栈溢出问题中找到答案:How to make sure synchronization using the Microsoft Sync Framework was successful?

看起来我们没有使用最新版本,并且存在并发问题的修补程序。如果结果如此,我会将其作为答案添加。不确定是否应将其标记为重复;如果我没有通过所有" Microsoft Sync Framework"我将永远不会发现上述问题。一个一个地标记问题。但我尊重该网站的资深人士。

更新2 就是这样。我现在可以运行相同的测试,没有任何东西被丢弃。

0 个答案:

没有答案