do you have the native leveldb installed? the JNI wrappers will work only if the leveldb is installed on your machine.
otherwise, switching between index implementations *should* work. I just verified it on 5.8. On Mon, Nov 4, 2013 at 6:32 PM, HellKnight <hellkni...@foxmail.com> wrote: > I want to use jni version of levelDB since I heard it's stable.I change the > indexFactory as follow: > <broker brokerName="broker" ... > > ... > <persistenceAdapter> > <levelDB directory="activemq-data" > indexFactory="org.fusesource.leveldbjni.JniDBFactory"/> > </persistenceAdapter> > ... > </broker> > > Unfortunately it did not work out. The broker shutdown automatically. There > is an error in activemq.log: > Error: indexFactory=Could not load any of the index factory classes : > org.fusesource.leveldbjni.jniDBFactory > Moreover, I found three other errors/warns that may relates to my problem in > log file: > Could not stop > service:levelDB[D:/apache-activemq-5.8.0/bin/data/levelDB],Reason:java.lang.NullPointerException. > > Exception thrown from life cycle processor on context > close,java.lang.illegalStateException:LifeCycleProcessor not > initialized-call "refresh" before invoking lifecycle methods. > > Failed to stop broker after failure in start. > > Anyway, since I failed to load jni version of levelDB, I change my > configuration back to original, which means no indexFactory property is set > and pure java version will be load. However, my broker failed to start this > time , the command window prints out the following warning: > DB operation failed(entering recovery mode) | > org.pache.activemq.leveldb.levelDBClient | main > > I thought the levelDB is doing some recovery work, so I went home and go to > bed. But this morning I found the command window did not print out any new > infomation and the broker did not start up normally. > > I have two questions: > 1. Why I can not load jni version of levelDB ? I checked > $ACTIVEMQ_HOME/lib/extra , and I found these leveldbjni jar files: > activemq-leveldb-store-5.8.0.jar, leveldb-0.5.jar, leveldbjni-1.5.jar, > leveldb-api-0.5.jar, leveldbjni-linux32-1.5.jar, leveldbjni-linux64-1.5.jar, > leveldbjni-osx-1.5.jar, leveldbjni-win32-1.5.jar, leveldbjni-win64-1.5.jar. > It seems all leveldbjni jar files are there . > > 2. Why my broker failed to start up after I changed my configuration ? How > can I start it up and did not lose messages stored ? > > Thanks for any help in advance! > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Change-indexFactory-property-of-levelDB-and-the-broker-failed-to-start-tp4673880.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. -- Christian Posta http://www.christianposta.com/blog twitter: @christianposta