java-Neo4j:2.2.3:“检测到错误地关闭数据库,执行恢复”后,服务器无法启动

neo4j服务器的意外关闭显然是由于过多的RAM使用(我的VPS统计数据显示> 32 GB使用).接下来,我尝试启动服务器.由于耗时太长,我使用Ctrl C停止了该过程.我尝试使用控制台启动它.我在messages.log中收到以下错误

*"org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.Recovery@4dad40e0' failed to initialize. Please see attached cause exception."*
org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.Recovery@4dad40e0' failed to initialize. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:489) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:72) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:106) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:530) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:507) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:331) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:59) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.recovery.StoreRecoverer.recover(StoreRecoverer.java:96) [neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.server.preflight.PerformRecoveryIfNecessary.run(PerformRecoveryIfNecessary.java:65) [neo4j-server-2.2.3.jar:2.2.3]
        at org.neo4j.server.preflight.PreFlightTasks.run(PreFlightTasks.java:71) [neo4j-server-2.2.3.jar:2.2.3]
        at org.neo4j.server.AbstractNeoServer.runPreflightTasks(AbstractNeoServer.java:399) [neo4j-server-2.2.3.jar:2.2.3]
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:195) [neo4j-server-2.2.3.jar:2.2.3]
        at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:117) [neo4j-server-2.2.3.jar:2.2.3]
        at org.neo4j.server.Bootstrapper.main(Bootstrapper.java:69) [neo4j-server-2.2.3.jar:2.2.3]
Caused by: java.lang.Error: Maximum lock count exceeded
        at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquire(ReentrantReadWriteLock.java:403) ~[na:1.7.0_85]
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197) ~[na:1.7.0_85]
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:945) ~[na:1.7.0_85]
        at org.neo4j.index.impl.lucene.LuceneDataSource.getWriteLock(LuceneDataSource.java:229) ~[neo4j-lucene-index-2.2.3.jar:2.2.3]
        at org.neo4j.index.impl.lucene.LuceneCommandApplier.visitIndexDefineCommand(LuceneCommandApplier.java:117) ~[neo4j-lucene-index-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.command.NeoCommandHandler$Delegator.visitIndexDefineCommand(NeoCommandHandler.java:323) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.LegacyIndexApplier.applier(LegacyIndexApplier.java:92) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.LegacyIndexApplier.visitIndexRemoveCommand(LegacyIndexApplier.java:149) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.CommandApplierFacade.visitIndexRemoveCommand(CommandApplierFacade.java:218) ~[neo4j-kernel-2.2.3.jar:2.2.3]
 at org.neo4j.kernel.impl.index.IndexCommand$RemoveCommand.handle(IndexCommand.java:253) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:82) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:45) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier.apply(TransactionRepresentationStoreApplier.java:108) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:70) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:36) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:54) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:32) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.Recovery.init(Recovery.java:72) ~[neo4j-kernel-2.2.3.jar:2.2.3]
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:483) [neo4j-kernel-2.2.3.jar:2.2.3]
        ... 17 common frames omitted

我注意到该错误是由以下原因引起的:java.lang.Error:超出了最大锁定数.我无法启动数据库.当我以控制台模式启动时,只是说“检测到错误地关闭数据库,执行恢复..”,并同时出现messages.log中的错误.
如果可以在graph.db中进行一些手动清理,请提出建议.
任何帮助是极大的赞赏.

解决方法:

此问题已修复,将包含在2.2.4版本中.有关更多详细信息,请参见https://github.com/neo4j/neo4j/commit/c9596af0d990d7dde9a9053799b7295985ae3c05.

上一篇:java-使用Cypher在嵌入式Neo4J应用程序中创建节点


下一篇:如何使用Spring Data Neo4j将Map(java.util.Map)对象持久保存在NodeEntity中?