我们在RHEL上使用Neo4j2.0.1 (jdk 1.7..51) -我们在一个同步的线程上调用GraphDatabaseService.shutDown(),这个方法从不返回或抛出任何异常。
其他并发尝试访问图形的线程在beginTran()上遇到此异常
org.neo4j.graphdb.TransactionFailureException: Database is currently not available. No blocking components
at org.neo4j.kernel.InternalAbstractGraphDatabase.beginTx(InternalAbstractGraphDatabase.java:944)
at org.neo4j.kernel.TransactionBuilderImpl.begin(TransactionBuilderImpl.java:43)
at net.ahm.graph.EmbeddedDBService.beginTx(EmbeddedDBService.java:275)
at net.ahm.cm.graph.SummaryForPatientDAO.process(SummaryForPatientDAO.java:29)
at net.ahm.cm.handlers.admin.GetSummaryPatientInfoMessageHandlerImpl.processAction(GetSummaryPatientInfoMessageHandlerImpl.java:15)
at net.ahm.cm.handlers.common.BaseCareTeamHandler.doWork(BaseCareTeamHandler.java:46)
at net.ahm.cm.handlers.common.CareTeamServicesHandler.processService(CareTeamServicesHandler.java:197)
at net.ahm.cm.thrift.services.common.CareTeamServices$Processor$processService.getResult(CareTeamServices.java:178)
at net.ahm.cm.thrift.services.common.CareTeamServices$Processor$processService.getResult(CareTeamServices.java:162)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:123)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:516)
at org.apache.thrift.server.Invocation.run(Invocation.java:18)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)shutDown()方法几乎永远阻塞的可能原因是什么?敬请指教。
发布于 2014-04-23 00:22:12
就在几个小时前,我遇到过类似的问题,当时我意外地调用了GraphDatabaseService实例上的db.shutdown(),然后尝试调用同一实例上的其他方法。也许你可以发布一些代码,这样我们就可以获得更多的信息来进行推理。到目前为止,您的问题最有可能的原因就是我所描述的。
https://stackoverflow.com/questions/23222377
复制相似问题