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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.