基础安装
我在 Amazon EC2 上有一个 m1.large Neo4j 服务器实例,我根据此处的说明进行设置:http: //www.neo4j.org/develop/ec2
我没有以任何方式改变该设置。
它已经工作了几个星期,几乎完美无瑕,偶尔会重新启动。但是,今天早上(2013 年 3 月 13 日)我无法从我的网络应用程序连接到它。
尝试#1:重新启动
从 EC2 管理控制台通过 Neo4j 服务器实例重新启动。重新启动后,我的网络应用程序似乎能够建立初始连接(通过 Neoid & Neography),因此我的网络应用程序至少可以启动。
然而,所有交易都失败了。我尝试在 webadmin/ 的端口 7474 上访问 Neo4j 的管理控制台,这是我看到的错误,特别是:
javax.transaction.SystemException: TM has encountered some problem, please perform neccesary action (tx recovery/restart)
重启不是解决办法。
访问 Web 面板时尝试 #1 的完整错误跟踪: GIST #1。
尝试#2:恢复
我发现一个线程引用了一个看似相关的问题,这表明在控制台模式下启动 neo4j 将允许完全恢复而不会超时,所以我尝试了它,SEVERE
结果更加清楚我的问题:
看起来这是根本原因:
Caused by: java.io.IOException: Unknown xid for identifier 8964
尝试 #2运行的完整错误跟踪sudo /var/lib/neo4j/bin/neo4j console
:GIST #2
尝试#3:删除并重新开始
这是生产前的数据,所以我可以采取严厉的措施。我删除了数据库并重新开始。
sudo rm -rf /var/lib/neo4j/data/graph.db/
sudo sudo /var/lib/neo4j/bin/neo4j start
我能够创建大约 50k rels 和 50k 节点,然后最多几个小时后错误又回来了。
尝试#4:再次恢复
我停止了 Neo4j 服务器,并将其加载为控制台 - 进行恢复。
尝试 #4 恢复的完整跟踪:运行sudo /var/lib/neo4j/bin/neo4j console
:GIST #3
恢复工作,所以我重新启动服务器作为守护进程。
尝试 #4 启动守护进程的完整跟踪:正在运行sudo /var/lib/neo4j/bin/neo4j start
:GIST #4
它工作了几分钟。然后再次回到这个错误:
TM has encountered some problem, please perform neccesary action (tx recovery/restart)
从 Neography 执行脚本的尝试中可以看出新错误的完整跟踪:GIST #5
调试
我现在认为,尽管已使用作为m1.large 服务器遵循本指南的一部分安装的 vanilla Neo4j ,但此配置存在一些问题。当我在控制台模式下启动服务器时,这些是我看到的烦人的事情:
INFO ... Could NOT find resource [logback.groovy]
INFO ... Could NOT find resource [logback-test.xml]
ERROR ... Could not find resource corresponding to [custom-logback.xml]
和这个
WARNING! Deprecated configuration options used. See manual for details cannot configure writers and searchers individually since they go together
更新:我已经为这些默认配置问题提交了一个单独的问题。