如何从TransactionFailureException中恢复?

时间:2015-04-27 18:03:35

标签: neo4j

在事务中间应用程序出错(线程被杀死,导致ThreadDeath等),因此事务失败,但是之后没有新的事务可以启动:

org.neo4j.kernel.api.exceptions.TransactionFailureException: 
Kernel has encountered some problem, please perform neccesary action (tx recovery/restart)

我应该采取什么行动来处理这个问题?

更新:我忘了提到我之前遇到过这种类型的错误,并通过删除事务日志文件来管理(至少暂时)修复它。但是现在,显然,neo4j数据目录中根本没有任何*nioneo*(IIRC)文件!日志文件的位置或名称是否发生了变化?或者我错过了什么?有neostore.transaction.db.x个文件,在grepping时似乎包含我的数据块。我确实启动了应用程序的新实例(幸运的是这是一个测试),所以我现在无法检查它,但是如果我删除它们,我能否从之前的状态重新启动应用程序?

1 个答案:

答案 0 :(得分:1)

Neo4j 2.2的一个改进是事务日志的统一,现在是neostore.transaction.db.x

如果db不再启动,您可以尝试删除它们(但一定要保留备份副本)并重新启动数据库。但是,请事先尝试使用这些文件重新启动。如果事务日志的存在导致数据库无法启动,我会认为这是一个错误。