Graph Neo4j:无法锁定存储

Graph Neo4j:无法锁定存储,graph,locking,neo4j,Graph,Locking,Neo4j,我正在使用Neo4j graph DB并在浏览器上查看数据。因此,无论何时运行代码,都需要更改neo4j-server.properties文件中的数据库位置字段 当我尝试在浏览器打开的情况下访问DB时,出现以下错误: Exception in thread "main" java.lang.IllegalStateException: Unable to lock store [<DB path>], this is usually a result of some other N

我正在使用Neo4j graph DB并在浏览器上查看数据。因此,无论何时运行代码,都需要更改neo4j-server.properties文件中的数据库位置字段

当我尝试在浏览器打开的情况下访问DB时,出现以下错误:

Exception in thread "main" java.lang.IllegalStateException: Unable to lock store
[<DB path>], this is usually a result of some other Neo4j kernel running using
the same store.
线程“main”java.lang.IllegalStateException中的异常:无法锁定存储 [],这通常是使用 同一家商店。
是否可以在不锁定存储的情况下查看数据库?

在启动neo4j服务器查看数据之前,是否确定没有针对数据存储运行java进程?

有另一个进程使用数据库。例如,您使用另一个程序(例如终端中的一个小精灵外壳)打开它,或者有另一个neo4j实例正在运行

如果您使用的是类Unix系统(Linux、MacOSX等),则可以使用lsof确定打开数据库的进程。例如,如果my db的路径是
/home/user/db/myneo4j.db
,那么我将搜索:

$ lsof /home/user/db/myneo4j.db/neostore.propertystore.db.index
或者您可以尝试:

$ lsof | grep myneo4j.db

这将告诉您获取(锁定)数据库的进程ID。

您的java程序将启动数据库的另一个实例和浏览器的另一个实例。因此,同一个db有两个运行状态,因此存在锁问题。查看他们的docs(),没有处理现有实例的方法。所以我认为没有办法拥有更多的锁。但是在这个link()中,注释最后说“Ne04J DBA人员将更新DB属性,以便一次允许一定数量的锁”,因此conf文件中可能也有一些内容。