gpt4 book ai didi

database - DB4o 数据库 DatabaseFileLockedException

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:07 25 4
gpt4 key购买 nike

我想从不同的程序并行访问同一个数据库文件。所有程序都在同一个虚拟机上运行。这是我使用的代码:

private ObjectContainer db;

public DatabaseManager(String dbName) {
ObjectServer server = Db4oClientServer.openServer(Db4oClientServer
.newServerConfiguration(), dbName, 0);
try {
db = server.openClient();

// Do something with this client, or open more clients

} catch(Exception ex) {
ex.printStackTrace();
}
}

当我运行第二个程序时,我得到 DatabaseFileLockedException。如何并行使用这个数据库?

最佳答案

只有一个db4o实例可以同时访问数据库文件。如果您在对象容器打开它时尝试重新打开它,您将得到此 DatabaseFileLockedException。

在同一个 JVM 实例中,您可以打开新的 session containers like这个:

 ObjectContainer rootContainer = // the one you've opened the file with
ObjectContainer session = rootContainer.ext().openSession()

对于您的代码,您还可以使用 .openClient() 方法来执行相同的操作。但是,只要您在同一个 JVM 实例中,您实际上就不需要客户端服务器的东西。您可以将上述内容与常规嵌入式对象容器一起使用。

如果您需要从多个数据库访问同一个数据库,那么您需要一个完整的 client-server setup .

关于database - DB4o 数据库 DatabaseFileLockedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497111/

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