我正在尝试在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个关系。)
答案 0 :(得分:0)
我知道这是一个较旧的问题,但我会为未来的任何Google员工提供答案。
如何增加堆栈大小以便上传更大的Neo4j数据库?
我在加载大型Cypher命令文件时也有类似的问题(也来自Java内部)。通过将JVM堆栈大小增加到2兆字节,我能够完成它。执行此操作的方法是在neo4j.conf
文件的末尾添加其他JVM选项的配置行:
#increasing stack size
dbms.jvm.additional=-Xss2M
我的命令文件长约2600行,因此您的堆栈大小可能会因文件大小或命令数而异。