我们有一个Java桌面应用程序,该应用程序访问位于网络共享驱动器而非本地上的Derby数据库。
当应用程序的多个实例共享数据库时,只有一个实例具有实时连接。
这已经运行了两年多了,但是有时我们会遇到数据库损坏,我们无法确定是由于软件错误还是由于应用程序和远程数据库之间的网络导致的。
我们意识到Derby文档指出嵌入式数据库仅应用于本地持久性,但是有人可以建议通过此配置会遇到一些特定的陷阱吗?
提前致谢!
吉姆
特别是关于数据库损坏,我认为将数据库存储在网络共享存储上至少有两个基本问题:(1)当Derby尝试通过增大文件来分配空间时,文件系统可能会报告分配成功即使实际上磁盘已满;(2)当Derby试图确保实际上已将磁盘写操作完全写入磁盘时,文件系统可能会报告数据已被写入磁盘,即使实际上它仍仅写入内存。
如果在正确的时间发生上述任何一种问题,都可能导致数据库损坏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句