【问题标题】:Neo4j java.lang.StackOverflowErrorNeo4j java.lang.StackOverflowError
【发布时间】:2015-01-14 06:04:14
【问题描述】:

我正在尝试在 PC 上创建一个相对较小的 Neo4j 数据库(或者更准确地说,是运行 Neo4j 2.1.0 的 MacBookPro 10.9.2),由 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)

...

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)

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

【问题讨论】:

  • 请添加整个堆栈跟踪。
  • 您是否考虑过将 XML 转换为 CSV 并使用LOAD CSV
  • @Jens 我已经添加了堆栈跟踪
  • 如果你只是想知道如何增加堆栈大小:stackoverflow.com/questions/3700459/…
  • 我设置了-Xss515m、-Xmx4G、-Xms4G、-Xmn1G,但还是没有骰子。太多了?太少了?

标签: java neo4j stack-overflow


【解决方案1】:

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

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

我在加载大型 Cypher 命令文件(也来自 Java 中)时遇到了类似的问题。我能够通过将 JVM 堆栈大小增加到 2 兆字节来完成它。这样做的方法是在 neo4j.conf 文件的末尾添加额外 JVM 选项的配置行:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    相关资源
    最近更新 更多