2014-03-25 50 views
0

我有一個TCL應用程序,其中多個孩子從一個數據庫連接讀取和寫入到sqlite數據庫,並且作爲子進程的時間可能比其他時間長,我遇到「數據庫鎖定」錯誤由TCL拋出。防止數據庫鎖sqlite tcl

我知道我可以用sqlite的TCL API忙回調方法 - 但它似乎沒有被調用,即使db被鎖定。我只是希望所有的孩子都能正常工作,並讓任何孩子等待鎖定並重試。

任何意見/例子非常感謝。

感謝

+0

從技術上講,該錯誤來自SQLite(或至少是它的Tcl接口),而不是來自Tcl本身。 –

回答

1

通過the documentation看,我看到:

dbconn timeout 2000 

將鎖定獲取超時設置爲2秒。或者你可以修改busy方法。 應該多長時間似乎取決於你進行了多少爭用(一個因素必須根據你的硬件和代碼部署進行調整),以及SQLite是否支持短暫睡眠編譯(如果HAVE_USLEEP在配置期間不是1,顯然是bad things can happen)。如果你有這樣一個狡猾的構建,我強烈建議修復,因爲你不知道什麼是錯誤配置。

+0

你好,謝謝你..但繁忙的方法不叫... ..問題..你有任何工作代碼的例子,我可以看看? –