2014-11-04 35 views
0

如果我在H2數據庫中使用「FILE_LOCK = NO」,有什麼危險? H2的網站上說我需要保護應用程序內的數據庫。我怎麼做?在禁用文件鎖定方面有什麼危險?在H2中使用'FILE_LOCK = NO'安全嗎?

有沒有另外一種方法可以讓多個用戶同時訪問數據庫?

非常感謝您提供任何有用的回覆。

回答

1

不,它是不是安全使用FILE_LOCK=NO。在未來的H2版本中,很有可能不再支持這一功能。

危險之處在於兩個應用程序同時打開相同的數據庫文件進行寫入,在這種情況下數據庫很可能會損壞。

+0

好的。所以,現在我正在使用一種方法,它會立即提交更改並關閉連接,刪除鎖定文件。這是一條更安全的路線嗎?另外,如果由於某種原因,用戶試圖在鎖文件存在的短時間內完成某些操作,我該如何處理它?一個JOptionPane消息對話框?我將如何檢查鎖文件的存在? – Ryan 2014-11-05 16:59:23

+0

爲什麼要刪除鎖定文件?它會被自動刪除資源釋放時...檢查鎖定文件的存在:http://stackoverflow.com/questions/26768760/how-do-i-determine-if-an-h2-database-file -lock-exists – marcolopes 2014-11-06 18:17:00

+0

是的,鎖定文件自動刪除,不應該手動刪除(只是爲了確保沒有誤解)。如果由於數據庫被鎖定而無法打開數據庫,則有一種方法是重新嘗試幾次,例如最多10次。在重新嘗試之間,您可以使用0-20毫秒之間的隨機等待時間。這與在網絡中處理衝突的方式類似。 – 2014-11-07 09:34:32