BDB JE异常

时间:2013-02-05 23:53:16

标签: berkeley-db-je

com.sleepycat.je.DatabaseException: (JE 3.2.76) fetchTarget of 0x45/0x27aa63 parent IN=3316846 lastFullVersion=0x45/0x47b147 parent.getDirty()=false state=0 com.sleepycat.je.log.DbChecksumException: (JE 3.2.76) Read invalid log entry type: 97
at com.sleepycat.je.tree.IN.fetchTarget(IN.java:989)
at com.sleepycat.je.tree.Tree.getNextBinInternal(Tree.java:1441)
at com.sleepycat.je.tree.Tree.getNextBin(Tree.java:1306)
at com.sleepycat.je.dbi.CursorImpl.getNextWithKeyChangeStatus(CursorImpl.java:1498)
at com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1368)
at com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:1587)
at com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1397)
at com.sleepycat.je.Cursor.getNext(Cursor.java:456)
at browse.bdb.dao.JENodeDao.load(JENodeDao.java:76)
    .................my code..................
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Caused by: com.sleepycat.je.log.DbChecksumException: (JE 3.2.76) Read invalid log entry type: 97
at com.sleepycat.je.log.LogEntryHeader.<init>(LogEntryHeader.java:69)
at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:631)
at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:597)
at com.sleepycat.je.tree.IN.fetchTarget(IN.java:958)
... 16 more

出了什么问题?

2 个答案:

答案 0 :(得分:0)

可能是某些日志文件已损坏,请在打开时尝试恢复环境。

答案 1 :(得分:0)

出现此异常是因为我试图读取尚未刷新到文件系统的记录 对于JE,它是:environment.sync();
对于JNI,它是:environment.syncCache(null);