gpt4 book ai didi

java - 如何在服务器模式下运行 H2 数据库?

转载 作者:IT老高 更新时间:2023-10-28 21:11:34 27 4
gpt4 key购买 nike

我需要从我的应用程序以服务器模式启动 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 服务器模式。请参阅 automatic mixed mode 的文档。 .使用任何一个。

我猜你对不同的连接模式有点困惑。我建议阅读the documentation about the connection modes ,以确保您理解它。

关于java - 如何在服务器模式下运行 H2 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com