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

问题描述:

.NET新手,任何正确的方向将是一个巨大的帮助。存储XML本地直到网络连接恢复

试图写一个程序,接受在制造环境中的数据输入和直接存储到一个SQL数据库。

一个问题,我可以预见是,如果无线网络连接中断(或临时超出范围)

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

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

谢谢!

(我是一个VB程序员,但如果需要,可以计算出C#编译)

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

+0

感谢大家的建议,大概一百万的方式来做到这一点,但是这似乎正是我一直在寻找。朝这个方向前进(本地数据库应该运作良好,考虑到它通常是单向传输数据)。 谢谢。 – JBickford 2009-06-10 17:22:43

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

好了,我们这样做,我们有两个分开的线程:

i)在扫描数据的源线程(A)(在本例中的PLC),并把在临时存储中的数据(以你的案例XML文件)。

ⅱ)的螺纹(B),其扫描所述临时数据,并将其发送到*数据库。发送到*服务器的数据可以被删除或标记为已发送。

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

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

消息队列可能为你工作http://code.msdn.microsoft.com/msmqpluswcf

你可以写你的消息队列,然后有另外的过程,从队列中读取和写入到数据库中。

+0

我也有使用IsolatedStorage之前,但消息队列似乎是一个更好的方法 – 2009-06-10 15:57:11

这里是我将开始:Smart Client Architecture and Design Guide

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