我正在开发一个连接到 hsqldb 2.3.3 的 java webapp(Spring 4、Jpa 2、Hibernate 4、HikariCp 2.3.8)。 我的客户在短暂测试后报告了锁定“数据库锁定获取失败”。 我正在使用这样的 jdbc url:
jdbc:hsqldb:文件:/数据库路径/maindb;shutdown=true;hsqldb.write_delay=false;
我有两个疑问: - 在“连接池”上下文中使用 hsqldb 的独立文件模式是否正确?我想知道这个锁是否是由于在独立模式下一次只能为一个进程打开数据库这一事实造成的。 - 在“连接池”上下文中使用 shutdown=true 是否正确?关闭每个连接时,它不是不断地对数据库进行关闭吗?其他人会怎样?
谢谢你帮助我
最佳答案
数据库确实一次只能为一个进程打开。您需要一台服务器来管理来自多个进程的连接。当第二个进程尝试直接连接时,总是抛出“数据库锁获取失败”。
可以将文件模式与连接池一起使用,因为所有连接都来自同一进程。最好运行服务器,因为您可以访问网络应用程序外部的数据库。
注意 shutdown=true 是为了在测试上下文中使用而提供的,不应在此处使用。需要时应发出显式 SHUTDOWN。
关于java - java webapp 中的 hsqldb 独立模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440951/