2010-04-17 66 views
0

我目前有一個客戶端/服務器設置,客戶端將數據發送到服務器,然後服務器將數據保存到SQLite數據庫文件。爲此,我使用在Windows 7中運行良好的事務,當我運行30個客戶端(每個客戶端在5 - 30秒之間發回數據)時。使用SQLite事務I/O錯誤

當在Windows XP中使用相同的軟件,我可以沒有任何問題的get/set數據多次,直到我奔波20個客戶,我開始獲得Windows延遲寫道失敗的錯誤: alt text http://files.me.com/james.ingham/on1qb1

這觸發一個例外在服務器上: alt text http://files.me.com/james.ingham/hjoodv

我假設這是要麼與XP或XP機器上的硬件問題,我正在運行XP。

有沒有人有任何建議,以避免這種情況?或者,如果我應該捕獲異常並重試保存數據?

+0

這有幫助嗎? http://support.microsoft.com/kb/330174 – 2010-04-17 19:59:44

+0

對不起,我沒有權限在我需要運行此計算機上更改它。我將在XP上的虛擬機上測試我的代碼,看它是XP還是硬件。 – 2010-04-17 20:15:24

回答

0

對不起回答我自己的問題,但這是一個硬件問題!只要有其他人加入就可以了!

1

我很遺憾地提到這一點,但SQLite本身在高併發環境下是not recommended。如果您有多達20個客戶端的事務持續時間爲5到30秒,您肯定會發現超時(默認情況下,SQLite爲5秒),因爲SQLite基本上取代了fopen

+0

感謝您的答覆,但這是我正在處理具體要求的項目的一部分。我在開始時已經提到了這一點,但規範聲明我們必須使用不需要安裝的db。此外,交易不會持續5-30秒,每個客戶端每5-30秒發送一次數據。這些交易通常過程非常快,但它是硬件(我認爲)在特定的機器上放慢了這一點... – 2010-04-19 10:30:07

+0

@ james.ingham:然後,再次抱歉。順便說一下,我想知道爲什麼你沒有在.Net開發環境下使用MS SQL Compact(http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx) – newtover 2010-04-19 10:37:09

+0

我還沒有試過但它看起來像你需要安裝它?我沒有對演示機器的管理權限,所以SQLite是理想的只有我必須包括的dll。 – 2010-04-19 11:17:55