Neo4j java.lang.StackOverflowError

时间:2015-01-14 06:04:14

标签: java neo4j stack-overflow

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

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)

...

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)

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

1 个答案:

答案 0 :(得分:0)

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

  

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

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

#increasing stack size
dbms.jvm.additional=-Xss2M

我的命令文件长约2600行,因此您的堆栈大小可能会因文件大小或命令数而异。