I've configured my ActiveMQ client not to acknowledge messages.  This is
because I want the messages redelivered if the user stops and restarts the
client app.  The messages expire in 6 minutes anyway.  So any older messages
*shouldn't* be delivered.

I notice in my $ACTIVEMQ_HOME/data/kahadb directory there are files named
db-N.log where N is a sequential number starting at 1, and these are all 33
Megabytes in size.  When N gets to 300+, we see a huge performance hit in
the apps that use the broker – even though we still have plenty of free disk
space.  The only way I've found to rectify the performance problem is to
delete the contents of the kahadb directory and restart ActiveMQ.  This
fixes the problem temporarily until the log files increase to over 300
again.

When N > 300, the modification times of lower-numbered files are
significantly older.  If the messages expire after 6 minutes, what purpose
do these older db-N.log files serve?  What can I do to prevent the
performance degradation as these db-N.log files build up?  What can I do to
prevent these files from accumulating in the first place?

This article:
http://activemq.apache.org/why-do-kahadb-log-files-remain-after-cleanup.html
suggests the problem occurs because there are un-acknowledged messages
causing the files to still be “in-use”.  So I could probably eliminate the
*.log file accumulation by acknowledging the messages, but I cause another
problem in doing so, in which messages will not be not redelivered if the
client is restarted.  For the purposes described in my first paragraph, the
messages are deliberately not acknowledged.  Can I acknowledge messages and
yet still have the unexpired messages redelivered if my client app is
restarted?   Or can I safely delete the log files that are significantly
older than 6 minutes?

Mark



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/db-N-log-files-accumulating-tp4654843.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to