这里需要一点建议。我们使用移动设备上的.NET Compact框架和SQL CE以及客户办公室的中央SQL 2005数据库进行一些Windows移动开发。目前,我们使用合并复制技术同步数据。
最近我们遇到了一些令人烦恼的问题,即同步抛出错误并且通常有点不可靠。由于复制问题上的信息似乎有限,因此情况更加复杂。这告诉我,它不是一种常用的技术。
所以,我只是想知道复制是否是同步数据的方法还是有更可靠的方法?我在想网络服务或类似的东西。你们用什么来实现这个解决方案?
戴夫
答案 0 :(得分:0)
我没有大量使用复制,但是我已经使用过它并且我没有遇到过问题。问题是,你需要仔细设置。无论您使用哪种方法,您都需要决定管理所有各种可能情况的规则 - 两个数据库中的更改等。
如果您对“通常有点不可靠”更具体,那么您可能会获得更多有用的建议。正如我所能说的那样,我没有遇到任何问题。
编辑:鉴于您的回答如下,我只想说您可以使用SSIS或其他方法进行自定义复制,但肯定有商店在生产环境中成功使用复制。
答案 1 :(得分:0)
我们已经发生了两次错误,这是一个真正的痛苦修复: -
插入失败。它与数据库'egScheduler'中的标识范围检查约束,复制表'dbo.tblServiceEvent',列'serviceEventID'冲突。如果通过复制自动管理标识列,请按如下所示更新范围:对于Publisher,执行sp_adjustpublisheridentityrange;对于订阅服务器,请运行分发代理程序或合并代理程序。
当我们尝试运行存储过程时,它会与标识混乱,所以现在当我们尝试同步它时会在复制监视器中引发以下错误。
由于完整性违规,无法重新应用行操作。检查发布过滤器。 [,,,表,操作,RowGuid](来源:MSSQLServer,错误号:28549)
我们也有一些问题,快照变得无效,但这些相对容易修复。然而,这一切让我想知道复制是否是我们在这里尝试做的最好的方法,或者是否是一种更简单的方法。这就是我原来的问题。
答案 2 :(得分:0)
我们正在处理类似的情况,但是我们正在编写一个在断开连接的模型中运行的工具,并在Windows桌面上运行......我们正在为客户端和Microsoft SQL使用SQL Server Compact Edition Server 2005,带有服务器解决方案的Web服务。
为了启用同步服务,我们最初是通过构建自己的同步框架开始的,但是在保持该框架与系统的其他部分同步的许多问题之后,我们选择使用Microsoft Synchronization Framework。 (http://msdn.microsoft.com/en-us/sync/default.aspx供参考)。我们最初的要求是使应用程序像安装Intuit QuickBooks等其他软件包一样易于使用,我认为我们已经取得了很大的成功。
微软的同步框架有其起伏,但在这一点上我唯一可以说的是文档很糟糕。
我们现在正在讨论是否继续使用它或返回维护我们自己的同步子系统。 YMMV,但对我们来说,这是一个快速解决问题。
答案 3 :(得分:0)
你肯定会推动CE的稳定性范围,不是吗?
当我这样做时,我发现有必要增加相当多的冲突容忍度,而不是将其视为同步异步数据收集,间歇性相互更新和/或刷新。特别是,我总是避免使用标识列。如果您可以基于真实(非代理)数据严格遵守真正的主键,那么事情会变得更容易。有时,包含SourceUnitNumber和时间戳的PK效果很好。
如果可以,请将远程收集的数据视为累积按时间顺序排列的事务的简单时间戳,源代码,用户指示日志。另一方面,主机提供永远不需要返回的静态验证信息 - 改为发回CRUD事务。
回顾结果如何。我有兴趣看到任何有助于此的可靠微软技术。
答案 4 :(得分:0)
同步框架听起来很有趣,但听起来像是因为复制文档很差而遇到类似的问题。试图找到有关复制的帮助是一个噩梦,我不确定我是否希望我们转向类似问题的东西。希望M'soft将停止发布似乎得到beta s'ware支持的东西!