首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当neo4j发送UnderlyingStorageException时,我能做什么?

当neo4j发送UnderlyingStorageException时,我能做什么?
EN

Stack Overflow用户
提问于 2012-12-11 23:04:07
回答 2查看 365关注 0票数 0

我刚刚遇到了它,完全被惊呆了:

代码语言:javascript
复制
[#|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。

所以。我能做些什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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的建议并设置了给定的标志

代码语言:javascript
复制
asadmin set server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=-1

错误现在已消失。

票数 0
EN

Stack Overflow用户

发布于 2012-12-12 04:24:22

java.nio.*中的内容对中断非常敏感,这意味着一旦被中断的线程访问FileChannel,它就会关闭。Neo4j使用FileChannel,这个问题很可能是由您的环境以某种方式中断线程造成的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13822523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档