2014-11-04 208 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