I took a stab at creating a config with a separate kahadb for the DLQs:
<mKahaDB directory="${activemq.base}/data/kahadb">
<filteredPersistenceAdapters>
<filteredKahaDB queue=">.DLQ">
<persistenceAdapter>
<kahaDB />
</persistenceAdapter>
</filteredKahaDB>
<filteredKahaDB>
<persistenceAdapter>
<kahaDB />
</persistenceAdapter>
</filteredKahaDB>
</filteredPersistenceAdapters>
</mKahaDB>
Does that make sense?
I am unsure about the ">" wildcard as I am not sure if it can be used at
the start. All examples I found till now only seem to use it at the end.
I would be happy about a confirmation that what I do is correct or a
better solution.
Christian
On 29.04.2016 14:39, Christian Schneider wrote:
We have the issue that our journals at a customer are very large. We
analyzed the messages in the system and found that most of the time
the normal queues stay at a very low number of messages near to 0. The
only queues that hold messages for longer periods of time are the dead
letter queues.
The journals are much bigger than the dead letter queue contents.
My assumption is that most of the journals only contain very few still
needed messages and the ones they contain are the messages that now
are in the dead letter queues.
Still the journals can not be cleaned up of course.
So what I would like to to is to use one kahadb for the regular queues
and a different one for the dead letter queues. Does that make sense?
I will try to do this using "Multi(m) kahaDB persistence adapter": See
http://activemq.apache.org/kahadb.html
I also wonder if it would make sense that ActiveMQ cleans up its
journals regularly. It could simply move all oldest messages to the
newest jorunal to kind of pack if denser.
Would that work?
Christian
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com