存储XML本地直到网络连接恢复

时间:2009-06-10 15:43:44

标签: .net windows visual-studio

.NET新手,正确方向的任何一点都将是一个巨大的帮助。

尝试编写程序以接受制造环境中的数据输入并将其直接存储到SQL数据库中。

我可以预见的问题是无线网络连接是否中断(或暂时超出范围)

如果连接没有回到服务器,我将在哪里研究,或者我将如何创建本地XML副本或临时本地XML文件?

这样做的任何建议或方法?

谢谢!

(我是VB程序员,但如果需要可以找出C#翻译)

5 个答案:

答案 0 :(得分:1)

为什么不想使用本地数据库缓存机制? Walkthrough: Adding a Local Database Cache to an N-Tier Application

答案 1 :(得分:0)

我们遇到了同样的问题。我们所做的是使用本地数据库,你可以这样做,例如使用SQLLite这是一个好主意。使用XML存储数据也是可行的。

嗯,我们这样做了,我们有两个分离线程:

i)线程(A)扫描数据源(在我们的例子中是PLC)并将数据放入临时存储器(在您的情况下是XML文件)。

ii)扫描临时数据并将其发送到中央数据库的线程(B)。发送到中央服务器的数据可以删除或标记为已发送。

这非常有效。当(B)无法连接到服务器时,数据星在本地数据库/ xml中累积。当再次提供与服务器的连接时,数据将正确发送。

答案 2 :(得分:0)

使用NHibernate和两个不同的数据存储,一个用于远程,一个用于本地。问题来自于之后的同步。您可以遍历本地数据库中的对象并对主服务器进行更改,然后从本地数据库中删除它们。理想情况下,在每次连接之后,本地数据库中应该没有数据 - 除非这是您设计的一部分,在这种情况下,同步任务变得更加复杂。

答案 3 :(得分:0)

消息队列可能对您有用http://code.msdn.microsoft.com/msmqpluswcf

您可以将消息写入队列,然后让另一个进程从队列中读取并写入数据库。

答案 4 :(得分:0)

以下是我要开始的地方:Smart Client Architecture and Design Guide

有一个智能客户端应用程序块可以帮助您解决一些更困难的细节。智能客户端应用程序块有助于将本地更改同步到数据库中的更改。