Neo4j服务器锁定数据库。为什么?

时间:2011-06-08 08:31:01

标签: ruby jruby neo4j

我刚开始发现Neo4j的世界并且偶然发现了一个问题,我有些问题需要掌握。

我安装了Neo4j并通过bin/neo4j start启动了它。

在接下来的步骤中,我编写了一个ruby脚本,在安装jruby和neo4j gem之后创建新节点。一切都很好,直到这里。

这里介绍如何开始: http://wiki.neo4j.org/content/Getting_Started_With_Ruby

我的问题:当服务器启动并且我尝试创建节点时,Neo4j会响应数据库被锁定。当我停止服务器时,节点就会被创建。

我习惯了关系数据库,所以我不理解这种行为。

当我通过Neo4j Webadmin工具(http://localhost:7474/webadmin)检查服务器信息时,ReadOnly标志设置为false。

在我看来,Neo4j方法可能与关系数据库不同,这意味着服务器可能只有一个与数据库服务器相关的其他目的。

感谢您的任何建议, 托拜厄斯

1 个答案:

答案 0 :(得分:3)

JRuby绑定将启动它自己的Neo4j实例,这意味着你最终会有两个数据库实例试图使用相同的文件。

这种方法有些不同,但关系数据库也使用它,例如Apache Derby。与Neo4j一样,您可以将其嵌入到您的应用程序中(即JRuby绑定在您的情况下正在执行的操作)或将其作为独立服务器运行。

所以,不要自己启动服务器,这应该可以解决问题。