Neo4j java.lang.StackOverflowError

CLK*_*LKC 5 java stack-overflow neo4j

我正在尝试在 PC(或更准确地说,运行 Neo4j 2.1.0 的 MacBookPro 10.9.2)上创建一个相对较小的 Neo4j 数据库,由 1400 个 CREATE 语句组成。当我通过终端加载图形文件时,我收到以下错误消息(整个堆栈跟踪对于 Stackoverflow 来说太长,但这里是错误消息和引起原因列表的前三行):

Error occurred in server thread; nested exception is:     
java.lang.StackOverflowError
java.rmi.ServerError: Error occurred in server thread; nested exception is:     
java.lang.StackOverflowError
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:350)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
Run Code Online (Sandbox Code Playgroud)

...

Caused by: java.lang.StackOverflowError
at org.neo4j.cypher.internal.compiler.v2_1.ReattachAliasedExpressions$.apply(ReattachAliasedExpressions.scala:31)
at org.neo4j.cypher.internal.compiler.v2_1.ReattachAliasedExpressions$$anonfun$2.apply(ReattachAliasedExpressions.scala:36)
at org.neo4j.cypher.internal.compiler.v2_1.ReattachAliasedExpressions$$anonfun$2.apply(ReattachAliasedExpressions.scala:36)
at scala.Option.map(Option.scala:145)
Run Code Online (Sandbox Code Playgroud)

我可以将所有 1400 个创建语句加载到包含 300 个创建语句的单独文件中,因此我的 Cypher 似乎是正确的。如何增加堆栈大小以便上传更大的 Neo4j 数据库?(我正在通过大量的 xml 创建数据库,并期望在最终分析中必须有大约 3000 个节点和大约 4000 个关系)。

Aar*_*ron 1

我知道这是一个较老的问题,但我将为未来的 Google 员工提供答案。

如何增加堆栈大小以便上传更大的 Neo4j 数据库?

我在加载大型 Cypher 命令文件(也来自 Java 内部)时遇到了类似的问题。我通过将 JVM 堆栈大小增加到 2 MB 来完成它。执行此操作的方法是将其他 JVM 选项的配置行添加到文件末尾neo4j.conf

#increasing stack size
dbms.jvm.additional=-Xss2M
Run Code Online (Sandbox Code Playgroud)

我的命令文件大约有 2600 行长,因此堆栈大小可能会根据文件大小或命令数量而有所不同。