我把“localDb.commit();” 在每个“localDb.compact();”之前 但仍然得到例外:
线程“Thread-0”java.lang.IllegalAccessError 中的异常:WAL 不为空;先提交,然后在 org.mapdb.StoreDirect.compact(StoreDirect.java:810) 的 org.mapdb.EngineWrapper.compact(EngineWrapper.java:130) 的 org.mapdb.StoreWAL.compactPreUnderLock(StoreWAL.java:1100) 进行压缩在 org.mapdb.EngineWrapper.compact(EngineWrapper.java:130) 在 org.mapdb.DB.compact(DB.java:1626)
我的 commit()、compact() 位于 Thread.run() 中,我的 DBMaker 配置为:
DB localDb = DBMaker.newFileDB(new File(filename)).closeOnJvmShutdown().make();
存储大小:471M,包括*.compact、*.compact.p、*.p、*.t java -version: java version "1.8.0_11" uname -r: 2.6.32-279.el6.x86_64
谢谢!