none
这种场景的问题该如何解决 RRS feed

  • 问题

  • 硬件设备通过gprs往服务器上传一些数据,但可能服务器程序正常运行,但是数据库服务可能因其它原因不能正常提供服务,如服务未启动等原因。

    我现在希望,如果在用c#的Open方法时遇到异常,就将这部分数据保存到windows的消息队列(或其它持久化存储)

    且希望在sqlserver恢复时,sql server可以自动的将消息队列的数据保存到指定的表中。(类似:发布、订阅机制)

    这种想法可行吗?sql server 2008是否提供此功能?

    或Microsoft Sync Framework是用来解决此场景的问题吗?谢谢。

    2012年5月3日 15:02

答案

  • 你好,

    我对Sync Framework不是太了解。不过我觉得如果我们的代码碰到异常,可以把所保存的数据保存在本地文件或数据库中,然后自己的程序可以定时轮询下是否有未保存的数据,如果有就尝试再次连接服务器上的数据库。要是服务器上的数据库还是不响应,可以定时再访问一下,直到成功为止。

    另外,Sync Framework应该提供了同步两个数据库的功能,那我们可以把未成功插入的数据先保存在本地数据库中,然后再等到远程数据库可以访问之后,再利用Sync Framework去同步数据。

    希望有所帮助吧!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月4日 15:24
  • 我觉得消息队列帮不了啥吧。

    可以考虑我提的第二个办法,先存在本地数据库,然后再用Sync Framework同步到运程的数据库中。

    谢谢!周末愉快!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月5日 7:59

全部回复

  • 由知道的朋友吗?请指点下。
    2012年5月4日 3:13
  • 你好,

    我对Sync Framework不是太了解。不过我觉得如果我们的代码碰到异常,可以把所保存的数据保存在本地文件或数据库中,然后自己的程序可以定时轮询下是否有未保存的数据,如果有就尝试再次连接服务器上的数据库。要是服务器上的数据库还是不响应,可以定时再访问一下,直到成功为止。

    另外,Sync Framework应该提供了同步两个数据库的功能,那我们可以把未成功插入的数据先保存在本地数据库中,然后再等到远程数据库可以访问之后,再利用Sync Framework去同步数据。

    希望有所帮助吧!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月4日 15:24
  • 非常感谢您的回复。

    您说的非常对,当我遇到这个场景的时候,我第一时间就想到,将数据保存到.txt文件.然后做一个windows service,定时去看sql server是否运行正常,如果正常,且.txt中有数据的话,则保存到sql server中。

    我这里的应用仅有一个数据库,http的通讯程序ashx文件与sql server在同一台服务器上。

    我觉得自己的这些想法比较山寨。我觉得这种场景ms应该有比较成熟的解决方案,所以来问问。

    我自己不是非常了解消息队列,不知道有没有朋友熟悉的适合这种场景应用的。。。

    2012年5月5日 3:20
  • 我觉得消息队列帮不了啥吧。

    可以考虑我提的第二个办法,先存在本地数据库,然后再用Sync Framework同步到运程的数据库中。

    谢谢!周末愉快!


    Michael Sun [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月5日 7:59