2016-11-10 30 views
0

我是C#的新手,我已經實現了一個應用程序,它從套接字讀取數據並使用單獨的線程將其存儲在遠程服務器上的Oracle數據庫中。 我的問題是:當數據庫服務器關閉並且我無法將數據保存在數據庫中時,是否存在C#或.net中的工具或技術,這些工具或技術允許我在本地緩衝數據,然後將其發送到服務器連接再次可用。我不想丟失來自套接字的信息,同時我想保留在我的oracle數據庫中的數據一致性,因爲我有一個序列和一些觸發器,可以在插入每條記錄後保存附加信息。當數據庫服務器不可用時,離線緩衝數據

回答

5

你正設法引進容錯

途徑:

  1. 一個消息隊列服務器(最好的),如MSMQ,RabbitMQ的,或類似的
  2. 本地數據庫,如SQLite的或SQL Server Express。
  3. JSON,XML或CSV格式的本地文件。

使用這些方法中的任何一種,它們都會存儲記錄,直到數據庫服務器再次可用。消息隊列是最具可擴展性的方法。