错误指示“执行必要的操作(tx恢复/重启)”。这是怎么做到的?

时间:2013-03-13 16:44:10

标签: neo4j

基本安装

我在Amazon EC2上有一个m1.large Neo4j Server实例,我根据这里的说明进行设置: http://www.neo4j.org/develop/ec2

我没有以任何方式改变该设置。

它几乎完美地工作了几个星期,偶尔重启。但是,我今天早上(2013年3月13日)无法通过我的网络应用程序连接到它。

尝试#1:重新启动

从EC2管理控制台通过Neo4j Server实例重新启动。重新启动后,我的网络应用程序似乎能够进行初始连接(通过Neoid和Neography),因此我的网络应用程序至少会启动。

然而,所有交易都失败了。我尝试在webadmin /上访问端口7474上的Neo4j管理控制台,这是我看到的错误,特别是:

javax.transaction.SystemException: TM has encountered some problem, please perform neccesary action (tx recovery/restart)

重新启动不是解决方案。

访问网络面板时,

尝试#1的完整错误跟踪GIST #1

尝试#2:恢复

我发现thread引用了一个看似相关的问题,表明在控制台模式下启动neo4j可以在没有超时的情况下完全恢复,所以我尝试了SEVERE结果,脱落更清楚我的问题:

看起来这是根本原因:

Caused by: java.io.IOException: Unknown xid for identifier 8964

尝试#2的完整错误跟踪正在运行sudo /var/lib/neo4j/bin/neo4j consoleGIST #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 consoleGIST #3

恢复工作,所以我重新启动服务器作为守护进程。

完全跟踪尝试#4启动守护程序:正在运行sudo /var/lib/neo4j/bin/neo4j startGIST #4

它工作了几分钟。然后再次回到此错误:

TM has encountered some problem, please perform neccesary action (tx recovery/restart)

从Neography尝试执行脚本看到的新错误的完整跟踪:GIST #5

调试

我现在认为尽管使用了作为以下this guide for an m1.large server的一部分安装的香草Neo4j,但这种配置存在一些问题。当我start the server in console mode这些是我看到的令人烦恼的事情时:

  1. INFO ... Could NOT find resource [logback.groovy]
  2. INFO ... Could NOT find resource [logback-test.xml]
  3. ERROR ... Could not find resource corresponding to [custom-logback.xml]
  4. 这一个

    WARNING! Deprecated configuration options used. See manual for details
    cannot configure writers and searchers individually since they go together
    
  5. 更新:我已为这些默认配置问题提交了separate issue

1 个答案:

答案 0 :(得分:1)

问题是根设备空间不足。

我已经解决了我的问题,所以这里有一个完整的历史记录和修复解释: http://github.com/neo4j-contrib/neo4j-puppet/issues/3