I需要同步(首先上载到远程DB -下载到移动设备下一步) DB表与来自移动设备的远程DB(这可以从多个表中插入/更新/删除行)。
远程DB基于上传的同步data.When同步执行其他操作,继续将数据下载到移动设备,远程DB仍在执行先前的任务,并导致同步失败。类似于‘关键条件’,‘同步和DB操作’都希望访问远程数据库。如何解决这个问题?是否可以一次同步数据库并对同一DB进行操作?
我正在使用Sql server 2008 DB和mobilink同步。
编辑:我按顺序执行的操作:
1.一个带有应用程序的iPhone,它使用mobilink来同步数据。
2.同步意味着上载(从设备到远程DB ),然后下载(从远程DB到设备)。
3.远程数据库意味着合并DB;设备DB是Ultralite DB。
4.在更新某些表时,Remote DB会触发一些触发器。
5.当同步上传完成时,从设备到远程的上传将触发触发器。
6.就在下一分钟,上传完成,下载到设备开始。
7.与这些DB触发器开火的时刻完全相同。
8.现在出现DB同步(-DOWNLOAD)和触发器(更新查询)操作之间的死锁。
9.同步失败,错误说无法访问某些表。
发布于 2014-04-23 09:53:05
我做了很多工作和谷歌!拿出一个简单的(?!)解决问题的方法。(尽管这个问题无法解决,..i还是尽了最大努力)。
任何比这更好的方法,我们将不胜感激!欢迎所有建议!
发布于 2014-04-24 21:32:52
我对你们系统的理解如下:
UPDATE
语句。ON UPDATE
触发器,它可以更新大约30个表(=触发器+1主update语句中至少30条UPDATE
语句)UPDATE
在单个事务中执行。当触发器完成所有更新时,此事务将结束。UPDATE
完成,而是发送多个SELECT
语句从数据库获取数据。SELECT
语句查询与上面正在更新的触发器相同的表。在优化时,我们试图使我们的进程对计算机来说不那么容易,在较少的迭代中获得相同的结果,并且使用更少的资源或那些更多可用/更少重载的资源。
我对你的设计的建议:
我想解决的另一个问题是:如何对数据库进行异步更新? Server中有一个名为Service的特性。它允许自动处理消息队列(队列表中的行):它监视队列,接收来自队列的消息,并处理您指定和删除队列中的消息。
例如,为SPs - messages保存参数,Service使用参数执行SP。
https://stackoverflow.com/questions/23126559
复制相似问题