将记录插入BerkeleyDB时发生环境故障异常

时间:2019-03-04 17:12:01

标签: java berkeley-db-je

我们正在尝试运行数据集并将记录插入BerkeleyDB(版本JE 5.0.103),并遇到以下故障。我们可以运行其他数据集,但是对于特定数据集,我们会遇到此错误。

Size of current value: 206911625
Mar 03, 2019 7:54:06 AM com.sleepycat.je.utilint.DaemonThread run
SEVERE: <DaemonThread name="Checkpointer"/> caught exception, com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) /srv/serpent java.lang.IllegalArgumentException UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed. Exiting
com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) /srv/serpent java.lang.IllegalArgumentException UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed.

        at com.sleepycat.je.EnvironmentFailureException.unexpectedException(EnvironmentFailureException.java:351)`
        at com.sleepycat.je.log.LogManager.multiLog(LogManager.java:466)
        at com.sleepycat.je.recovery.Checkpointer.logSiblings(Checkpointer.java:1474)
        at com.sleepycat.je.recovery.Checkpointer.flushIN(Checkpointer.java:1198)
        at com.sleepycat.je.recovery.Checkpointer.flushDirtyNodes(Checkpointer.java:951)
        at com.sleepycat.je.recovery.Checkpointer.doCheckpoint(Checkpointer.java:735)
        at com.sleepycat.je.recovery.Checkpointer.onWakeup(Checkpointer.java:508)
        at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:148)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException
        at java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
        at com.sleepycat.je.log.LogManager.marshallIntoBuffer(LogManager.java:837)
        at com.sleepycat.je.log.LogManager.multiLog(LogManager.java:402)
        ... 7 more

Size of current value: 164052585
com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) Environment must be closed, caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 5.0.103) /srv/serpent java.lang.IllegalArgumentException UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed.
        at com.sleepycat.je.EnvironmentFailureException.wrapSelf(EnvironmentFailureException.java:246)
        at com.sleepycat.je.dbi.EnvironmentImpl.checkIfInvalid(EnvironmentImpl.java:1618)
        at com.sleepycat.je.Environment.checkEnv(Environment.java:2225)
        at com.sleepycat.je.Environment.beginTransactionInternal(Environment.java:1348)
        at com.sleepycat.je.Environment.beginTransaction(Environment.java:1319)
        at edu.ncsu.csc.coul.pathquery.storage.BdbStorage.writeEntryToBdb(BdbStorage.java:882)
        at edu.ncsu.csc.coul.pathquery.storage.BdbStorage.writeToBDb(BdbStorage.java:702)
        at edu.ncsu.csc.coul.pathquery.newGraph.storeGraphToBdb(newGraph.java:2931)
        at edu.ncsu.csc.coul.pathquery.newGraph.eliminate(newGraph.java:2894)
        at edu.ncsu.csc.coul.pathquery.newGraph.<init>(newGraph.java:1319)
        at edu.ncsu.csc.coul.pathquery.QueryProcessor.createPathSequence(QueryProcessor.java:3162)
        at edu.ncsu.csc.coul.pathquery.exec.PathQueryDriver.main(PathQueryDriver.java:322)
Caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 5.0.103) /srv/serpent java.lang.IllegalArgumentException UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed.
        at com.sleepycat.je.EnvironmentFailureException.unexpectedException(EnvironmentFailureException.java:351)
        at com.sleepycat.je.log.LogManager.multiLog(LogManager.java:466)
        at com.sleepycat.je.recovery.Checkpointer.logSiblings(Checkpointer.java:1474)
        at com.sleepycat.je.recovery.Checkpointer.flushIN(Checkpointer.java:1198)
        at com.sleepycat.je.recovery.Checkpointer.flushDirtyNodes(Checkpointer.java:951)
        at com.sleepycat.je.recovery.Checkpointer.doCheckpoint(Checkpointer.java:735)
        at com.sleepycat.je.recovery.Checkpointer.onWakeup(Checkpointer.java:508)
        at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:148)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException
        at java.nio.ByteBuffer.allocate(ByteBuffer.java:334)
        at com.sleepycat.je.log.LogManager.marshallIntoBuffer(LogManager.java:837)
        at com.sleepycat.je.log.LogManager.multiLog(LogManager.java:402)
        ... 7 more

Couldn't store to recordDb

我们还在运行应用程序时打印出了数据库统计信息。

Home of the Database: /srv/serpent General database environment statistics: I/O: Log file opens, fsyncs, reads, writes, cache misses.
        bufferBytes=3,145,728
        endOfLog=0x3b/0x19e1ae
        nBytesReadFromWriteQueue=0
        nBytesWrittenFromWriteQueue=0
        nCacheMiss=112
        nFSyncRequests=1
        nFSyncTime=240
        nFSyncs=1
        nFileOpens=22
        nGroupCommitRequests=1
        nGroupCommitWaits=0
        nGrpCommitTimeouts=0
        nLogBuffers=3
        nLogFSyncs=3
        nLogIntervalExceeded=0
        nLogMaxGroupCommitThreshold=0
        nNoFreeBuffer=0
        nNotResident=112
        nOpenFiles=0
        nRandomReadBytes=103,225,344
        nRandomReads=177
        nRandomWriteBytes=177,504
        nRandomWrites=2
        nReadsFromWriteQueue=0
        nRepeatFaultReads=46
        nSequentialReadBytes=114,590,040
        nSequentialReads=167
        nSequentialWriteBytes=1,696,223
        nSequentialWrites=2
        nTempBufferWrites=1
        nWriteQueueOverflow=0
        nWriteQueueOverflowFailures=0
        nWritesFromWriteQueue=0

有人可以指导我们如何解决此问题吗?

0 个答案:

没有答案