关于Berkeley DB遇到的一些问题
最近使用Berkeley DB遇到到了一些问题,我在初始化BerkeleyDB环境时报错。如下
com.sleepycat.je.EnvironmentFailureException: (JE 6.1.5) F:\berkeleydb last LSN=0x5a7/0x986a42 LOG_INTEGRITY: Log information is incorrect, problem is likely persistent. Environment is invalid and must be closed.
at com.sleepycat.je.recovery.RecoveryManager.traceAndThrowException(RecoveryManager.java:3020)
at com.sleepycat.je.recovery.RecoveryManager.readINsAndTrackIds(RecoveryManager.java:924)
at com.sleepycat.je.recovery.RecoveryManager.buildINs(RecoveryManager.java:793)
at com.sleepycat.je.recovery.RecoveryManager.buildTree(RecoveryManager.java:665)
at com.sleepycat.je.recovery.RecoveryManager.recover(RecoveryManager.java:352)
at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:654)
at com.sleepycat.je.dbi.DbEnvPool.getEnvironment(DbEnvPool.java:208)
at com.sleepycat.je.Environment.makeEnvironmentImpl(Environment.java:251)
at com.sleepycat.je.Environment.<init>(Environment.java:232)
at com.sleepycat.je.Environment.<init>(Environment.java:176)
at com.mediaadx.data.berkeleydb.BerkeleyDBService.setUp(BerkeleyDBService.java:41)
at com.mediaadx.data.berkeleydb.BerkeleyDBService.<init>(BerkeleyDBService.java:20)
at com.mediaadx.data.berkeleydb.BerkeleyDBService.getInstance(BerkeleyDBService.java:26)
at com.mediaadx.data.url.UrlService.<init>(UrlService.java:30)
at com.mediaadx.data.servlet.InitServlet.init(InitServlet.java:16)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 6.1.5) F:\berkeleydb com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 127 LOG_CHECKSUM: Checksum invalid on read, log is likely invalid. Environment is invalid and must be closed.
at com.sleepycat.je.log.FileReader.readNextEntry(FileReader.java:235)
at com.sleepycat.je.recovery.RecoveryManager.readINsAndTrackIds(RecoveryManager.java:853)
... 27 more
Caused by: com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 127
at com.sleepycat.je.log.LogEntryHeader.<init>(LogEntryHeader.java:160)
at com.sleepycat.je.log.FileReader.readBasicHeader(FileReader.java:603)
at com.sleepycat.je.log.FileReader.readNextEntryAllowExceptions(FileReader.java:261)
at com.sleepycat.je.log.FileReader.readNextEntry(FileReader.java:229)
... 28 more
java.lang.NullPointerException
at com.mediaadx.data.berkeleydb.BerkeleyDBService.open(BerkeleyDBService.java:55)
at com.mediaadx.data.berkeleydb.BerkeleyDBService.<init>(BerkeleyDBService.java:21)
at com.mediaadx.data.berkeleydb.BerkeleyDBService.getInstance(BerkeleyDBService.java:26)
at com.mediaadx.data.url.UrlService.<init>(UrlService.java:30)
at com.mediaadx.data.servlet.InitServlet.init(InitServlet.java:16)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
我初始化代码如下:
/**
* 初始化BerkeleyDB环境
* @param path
* @param cacheSize
*/
private void setUp(String path, long cacheSize) {
EnvironmentConfig envConfig = new EnvironmentConfig();
envConfig.setAllowCreate(true);
envConfig.setCacheSize(cacheSize);
try {
env = new Environment(new File(path), envConfig);
} catch (DatabaseException e) {
e.printStackTrace();
}
}
path=F:\berkeleydb cacheSize=1000000
求大神帮忙解决啊。。