gpt4 book ai didi

neo4j - EmbeddedReadOnlyGraphDatabase 提示数据库锁定

转载 作者:行者123 更新时间:2023-12-04 05:01:58 25 4
gpt4 key购买 nike

Exception in thread "main" java.lang.IllegalStateException: Database locked.
at org.neo4j.kernel.InternalAbstractGraphDatabase.create(InternalAbstractGraphDatabase.java:289)
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:227)
at org.neo4j.kernel.EmbeddedReadOnlyGraphDatabase.<init>(EmbeddedReadOnlyGraphDatabase.java:81)
at org.neo4j.kernel.EmbeddedReadOnlyGraphDatabase.<init>(EmbeddedReadOnlyGraphDatabase.java:72)
at org.neo4j.kernel.EmbeddedReadOnlyGraphDatabase.<init>(EmbeddedReadOnlyGraphDatabase.java:54)
at QueryNodeReadOnly.main(QueryNodeReadOnly.java:55)

这是使用 1.8.2 版本的 neo4j。我编写了一个程序,它以只读模式打开数据库,查询并使其在退出前休眠一段时间。

这是相关的文字
 graphDb = new EmbeddedReadOnlyGraphDatabase( dbname); // Line 55 - the exception.
......
......
......
......
......
if(sleepVal > 0)
Thread.sleep(sleepVal);

我认为我不应该收到此错误。只有 2 个进程以只读模式打开 db 。事实上,即使我在另一个进程打开它写入数据库时​​打开它,它也应该工作。

最佳答案

我们不允许两个数据库同时访问磁盘上的相同文件——即使是在只读模式下。

原因是虽然我们不允许您以只读模式修改数据库,但 Lucene 在为您的读取请求提供服务时仍会写入磁盘,并且让两个实例访问相同的索引文件会导致竞争条件和索引损坏。

为什么你想要 2x 实例同时访问相同的文件?你的用例是什么?

关于neo4j - EmbeddedReadOnlyGraphDatabase 提示数据库锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058200/

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