Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';连接HSQL数据库管理器时,请不要从Java代码连接到HSQL数据库_Java_Sql_Hsqldb - Fatal编程技术网

Can';连接HSQL数据库管理器时,请不要从Java代码连接到HSQL数据库

Can';连接HSQL数据库管理器时,请不要从Java代码连接到HSQL数据库,java,sql,hsqldb,Java,Sql,Hsqldb,当我打开并连接HSQL DB Manager(Swing)时,Java代码无法连接到数据库: java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@cf53680[file =C:\somedb\db.lck ... 但一旦我从数据库管理器关闭到数据库的连接,Java代码就开始正常工作 这是什么?HSQLDB主要是一个嵌入式数据库引擎。这意味着,如果运行嵌入

当我打开并连接HSQL DB Manager(Swing)时,Java代码无法连接到数据库:

java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@cf53680[file =C:\somedb\db.lck ...
但一旦我从数据库管理器关闭到数据库的连接,Java代码就开始正常工作

这是什么?

HSQLDB主要是一个嵌入式数据库引擎。这意味着,如果运行嵌入式数据库,则只有一个进程(=JVM)可以使用该数据库。无法从其他进程进行连接

唯一的解决方法是在服务器模式下启动HSQLDB,HSQLDB在自己的进程(JVM)中运行,并接受来自其他进程的连接——基本上与Postgres或Oracle等“传统”数据库服务器的设置相同

有关如何在服务器模式下启动HSQLD的详细信息,请参见手册:


先删除.lck文件,然后使用SQLite数据库运行程序?如果是这样,您就不能有并发连接,请使用生产就绪的数据库,如MariaDB、MySQL、PostgreSQL等、、@Satya,删除锁不是一个选项。HSQL连接需要锁定数据库以防止任何其他访问。当数据库连接关闭,然后其他客户端可以连接时,锁文件将消失。使用生产就绪的数据库是解决方案亲爱的Satya,我在Google上读到过这一点。。但这并没有帮助:(谢谢分享知识@jamesc@GiorgiTsiklauri,我建议这是你的解决方案