Leaving my persistance settings to default I wanted to do some tests about the behavior of the broker with lots of messages incoming when the consumer is dead.
I am using a slow virtual machine and Tanukiwrapper, when Tanuki detects the ActiveMQ VM is not responding it kills and restarts it - in effect it's a test what would happen should a server just loose power and I'm quite interested in knowing my persistent queues will be able to survive such a power event. It's my understanding that the Kaha store is specifically resilient to this kind of crash/server death/VM crash but what I am seeing are exceptions like: 2010-08-06 20:02:49,948 [erSimpleAppMain] ERROR BrokerService - Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException: Chunk stream does not exist at page: 0 java.io.EOFException: Chunk stream does not exist at page: 0 at org.apache.kahadb.page.Transaction$2.readPage(Transaction.java:454) at org.apache.kahadb.page.Transaction$2.<init>(Transaction.java:431) at org.apache.kahadb.page.Transaction.openInputStream(Transaction.java:428) at org.apache.kahadb.page.Transaction.load(Transaction.java:404) at org.apache.kahadb.page.Transaction.load(Transaction.java:361) at org.apache.activemq.store.kahadb.MessageDatabase$1.execute(MessageDatabase.java:233) at org.apache.kahadb.page.Transaction.execute(Transaction.java:728) at org.apache.activemq.store.kahadb.MessageDatabase.loadPageFile(MessageDatabase.java:220) 2010-08-06 20:02:49,992 [erSimpleAppMain] ERROR KahaDBStore - Could not stop service: org.apache.activemq.store.kahadb.kahadbst...@2a869113. Reason: java.lang.NullPointerException java.lang.NullPointerException at org.apache.kahadb.page.Transaction.openOutputStream(Transaction.java:262) at org.apache.kahadb.page.Transaction.store(Transaction.java:247) at org.apache.activemq.store.kahadb.MessageDatabase$5.execute(MessageDatabase.java:382) at org.apache.kahadb.page.Transaction.execute(Transaction.java:728) at org.apache.activemq.store.kahadb.MessageDatabase.unload(MessageDatabase.java:380) If I just delete all the data it comes back - but looses the data obviously. Is Kaha the best storage system to use for persistence I was under the impression that it's default enableJournalDiskSyncs should always keep the journal updated and that a recovery will then be able to recover things. I'd even be happy if the in-flight transaction gets aborted but would be really nice to be able to recover the bulk of a queue post power event. -- View this message in context: http://old.nabble.com/Kaha-corruption-in-5.4-SNAPSHOT-tp29356482p29356482.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.