2

在这里需要一点建议。我们在移动设备上使用 .NET Compact 框架和 SQL CE 以及客户办公室的中央 SQL 2005 数据库进行一些 Windows Mobile 开发。目前我们使用合并复制技术来同步数据。

最近我们遇到了一些烦人的同步抛出错误问题,而且通常有点不可靠。更复杂的是,关于复制问题的信息似乎有限。这向我表明它不是一种常用的技术。

所以,我只是想知道复制是同步数据的方法还是有更可靠的方法?我在想可能是网络服务或类似的东西。你们用什么来实现这个解决方案?

戴夫

4

5 回答 5

0

我没有大量使用复制,但我已经使用它并且我没有遇到任何问题。问题是,您需要仔细设置。无论您使用哪种方法,您都需要决定管理所有各种可能情况的规则 - 两个数据库的更改等。

如果您对“通常有点不可靠”更具体,那么也许您会得到更多有用的建议。我只能说,我没有遇到任何问题。

编辑:鉴于您在下面的回答,我只想说您当然可以使用使用 SSIS 或其他方法的自定义复制,但肯定有商店在生产环境中成功使用复制。

于 2009-02-09T14:33:49.803 回答
0

好吧,我们已经发生了两次错误,这是一个真正的痛苦修复:-

插入失败。它与数据库“egScheduler”、复制表“dbo.tblServiceEvent”、列“serviceEventID”中的标识范围检查约束冲突。如果标识列由复制自动管理,则更新范围如下:对于发布者,执行 sp_adjustpublisheridentityrange;对于订阅服务器,运行分发代理或合并代理。

当我们尝试运行存储过程时,它会弄乱身份,所以现在当我们尝试同步时,它会在复制监视器中引发以下错误。

由于违反完整性,无法重新应用行操作。检查发布过滤器。[,,,Table,Operation,RowGuid](来源:MSSQLServer,错误号:28549)

我们还遇到了一些问题,即快照无效,但这些问题相对容易修复。然而,这一切让我想知道复制是否是我们在这里尝试做的最好的方法,或者是否有更简单的方法。这就是引发我最初的问题的原因。

于 2009-02-09T16:07:15.163 回答
0

我们正在处理类似的情况,但我们正在编写一个在断开连接的模型中工作并在 Windows 桌面上运行的工具......我们使用 SQL Server Compact Edition 客户端和 Microsoft SQL Server 2005服务器解决方案的 Web 服务。

为了启用同步服务,我们最初是从构建自己的同步框架开始的,但是在保持该框架与系统其余部分同步的许多问题之后,我们选择使用 Microsoft 同步框架。(http://msdn.microsoft.com/en-us/sync/default.aspx供参考)。我们最初的要求是让应用程序像安装其他软件包(如 Intuit QuickBooks)一样易于使用,我认为我们已经取得了巨大的成功。

Microsoft 的同步框架有其起起落落,但在这一点上我可以说的唯一坏事是文档太可怕了。

我们现在正在讨论决定是继续使用它还是回去维护我们自己的同步子系统。YMMV,但对我们来说,这是一个快速解决问题的方法。

于 2009-02-09T22:01:19.897 回答
0

你肯定在推动 CE 的稳定性,不是吗?

完成此操作后,我发现有必要添加相当多的冲突容忍度,而不是将同步视为同步异步数据收集,间歇性相互更新和/或刷新。特别是,我一直避免将身份列用于任何事情。如果您可以严格遵守基于真实(非代理)数据的真正主键,它会使事情变得更容易。有时,包含 SourceUnitNumber 和时间戳的 PK 效果很好。

If you can, view the remotely collected data as a simple timestamped, sourceided, userided log of cumulative chronologically ordered transactions. Going the other way, the host provides static validation info which never needs to go back - send back the CRUD transactions instead.

Post back how this turns out. I'm interested in seeing any kind of reliable Microsoft technology that helps with this.

于 2009-02-09T22:14:03.003 回答
0

TomH & le dorfier - I think that part of our problem is that we're allowing the customer to insert a large number of rows into one of the replicated table with an identity field. Its a scheduling application which can automatically multiple tasks up to a specified month/year. One of the times that it failed was around the time they entered 15000 rows into the table. We'll look into increasing the identity range.

同步框架听起来很有趣,但听起来它遇到了与复制文档质量差的问题类似的问题。试图在复制上寻求帮助有点像噩梦,我不确定我是否希望我们转向有类似问题的东西。希望 M'soft 停止发布似乎支持 beta s'ware 的东西!

于 2009-02-10T09:41:59.653 回答