How to configure Fuse Message Broker to handle missing or corrupt DB log files when using KahaDB

Solution Verified - Updated -

Issue

  • How to configure KahaDB to handle missing or corrupted log files

  • We get the following exceptions in our log at startup:

INFO  | veMQ Broker: mq0 | ActiveMQServiceFactory           | y$ClusteredConfiguration$$anon$3  325 | 95 - org.fusesource.mq.mq-fabric - 7.1.0.fuse-047 | Exception on start: java.io.IOException: Detected missing/corrupt journal files. 178214 messages affected.
java.io.IOException: Detected missing/corrupt journal files. 178214 messages affected.
        at org.apache.activemq.store.kahadb.MessageDatabase.recoverIndex(MessageDatabase.java:695)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MessageDatabase$6.execute(MessageDatabase.java:505)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.kahadb.page.Transaction.execute(Transaction.java:772)[70:org.apache.activemq.kahadb:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MessageDatabase.recover(MessageDatabase.java:503)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MessageDatabase.open(MessageDatabase.java:366)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MessageDatabase.load(MessageDatabase.java:384)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MessageDatabase.doStart(MessageDatabase.java:239)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.KahaDBStore.doStart(KahaDBStore.java:180)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.doStart(KahaDBPersistenceAdapter.java:195)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:55)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.store.kahadb.MultiKahaDBPersistenceAdapter.start(MultiKahaDBPersistenceAdapter.java:299)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java:623)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java:612)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:577)[113:org.apache.activemq.activemq-core:5.7.0.fuse-71-047]
        at org.fusesource.mq.fabric.ActiveMQServiceFactory$ClusteredConfiguration$$anon$3.run(ActiveMQServiceFactory.scala:307)[95:org.fusesource.mq.mq-fabric:7.1.0.fuse-047]

Environment

  • Fuse Message Broker/ActiveMQ 5.3.0.5
  • Fuse ESB 7.1.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content