我需要从我的应用程序以服务器模式启动 H2 数据库。尝试过以下代码:
server = Server.createTcpServer().start();
这是连接的属性:
javabase.jdbc.url = jdbc:h2:tcp://localhost:9092/nio:~/source/db/database/db;AUTO_SERVER=TRUE
javabase.jdbc.driver = org.h2.Driver
javabase.jdbc.username = sa
javabase.jdbc.password =
当我运行该程序时,出现以下错误:
client.db.exception.DAOException: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.store.FileLock.getExceptionAlreadyInUse(FileLock.java:439)
at org.h2.store.FileLock.lockFile(FileLock.java:336)
at org.h2.store.FileLock.lock(FileLock.java:128)
at org.h2.engine.Database.open(Database.java:542)
at org.h2.engine.Database.openDatabase(Database.java:222)
at org.h2.engine.Database.<init>(Database.java:217)
at org.h2.engine.Engine.openSession(Engine.java:56)
at org.h2.engine.Engine.openSession(Engine.java:159)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138)
at org.h2.engine.Engine.createSession(Engine.java:121)
at org.h2.server.TcpServerThread.run(TcpServerThread.java:133)
at java.lang.Thread.run(Thread.java:680)
正如异常消息所示,“数据库可能已在使用中”。您需要关闭所有其他连接,以确保数据库不会同时在另一个进程中打开。
顺便说一句,不要使用AUTO_SERVER=TRUE
and同时进入服务器模式。请参阅文档自动混合模式 http://h2database.com/html/features.html#auto_mixed_mode。使用其中之一。
我想您对不同的连接模式有点困惑。我建议阅读有关连接模式的文档 http://h2database.com/html/features.html#connection_modes,以确保您理解它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)