我刚刚遇到了它,完全被惊呆了:
[#|2012-12-10T14:16:49.663+0100|WARNING|glassfish3.1.1|javax.enterprise.system.core.transaction.com.sun.jts.jtsxa|_ThreadID=165;_ThreadName=Thread-2;|JTS5068: Unexpected error occurred in rollback
org.neo4j.kernel.impl.nioneo.store.UnderlyingStorageException: Unable to write defragged id batch
at org.neo4j.kernel.impl.nioneo.store.IdGeneratorImpl.writeIdBatch(IdGeneratorImpl.java:554)
at org.neo4j.kernel.impl.nioneo.store.IdGeneratorImpl.freeId(IdGeneratorImpl.java:295)
at org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.freeId(CommonAbstractStore.java:404)
at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.doRollback(WriteTransaction.java:309)
at org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.rollback(XaTransaction.java:278)
at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.rollback(XaResourceManager.java:488)
at org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.rollback(XaResourceHelpImpl.java:111)
at com.sun.jts.jta.TransactionState.rollback(TransactionState.java:193)
at com.sun.jts.jtsxa.OTSResourceImpl.rollback(OTSResourceImpl.java:333)
at com.sun.jts.CosTransactions.RegisteredResources.distributeRollback(RegisteredResources.java:1038)
at com.sun.jts.CosTransactions.TopCoordinator.rollback(TopCoordinator.java:2290)
at com.sun.jts.CosTransactions.CoordinatorTerm.commit(CoordinatorTerm.java:420)
at com.sun.jts.CosTransactions.TerminatorImpl.commit(TerminatorImpl.java:250)
at com.sun.jts.CosTransactions.CurrentImpl.commit(CurrentImpl.java:623)
at com.sun.jts.jta.TransactionManagerImpl.commit(TransactionManagerImpl.java:323)
at com.sun.enterprise.transaction.jts.JavaEETransactionManagerJTSDelegate.commitDistributedTransaction(JavaEETransactionManagerJTSDelegate.java:186)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:858)
at com.sun.enterprise.transaction.UserTransactionImpl.commit(UserTransactionImpl.java:208)
............
Caused by: java.nio.channels.ClosedByInterruptException
at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:299)
at org.neo4j.kernel.impl.nioneo.store.IdGeneratorImpl.writeIdBatch(IdGeneratorImpl.java:530)
... 104 more我能做些什么,如何从该异常中恢复?
我必须说,在Glassfish应用服务器中使用neo4j jca连接器运行neo4j。
所以。我能做些什么?
发布于 2013-01-08 00:54:20
问题实际上与neo4j无关,而是因为Glassfish默认为EAR提供了有限的部署时间(不是直接部署,而是通过用于将命令发送到域的HTTP通道)。
这一点以神秘的日志语句的形式给出了提示:
线程池中断空闲线程:
- #|2012-12-10T11:41:49.725+0100|WARNING|glassfish3.1.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=29;_ThreadName=Thread-2;|GRIZZLY0023:--4848(9).|#
我用谷歌快速搜索一下,就知道我的EAR部署到底发生了什么:"application cannot start on ubuntu but starts on windows without any trouble“。因此,我遵循了java.net的建议并设置了给定的标志
asadmin set server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=-1错误现在已消失。
发布于 2012-12-12 04:24:22
java.nio.*中的内容对中断非常敏感,这意味着一旦被中断的线程访问FileChannel,它就会关闭。Neo4j使用FileChannel,这个问题很可能是由您的环境以某种方式中断线程造成的。
https://stackoverflow.com/questions/13822523
复制相似问题