The garbage collection process which determines which files can be garbage
collected is done in the MessageDatabase class that is part of KahaDB.  If
you turn on trace logging for
org.apache.activemq.store.kahadb.MessageDatabase then your log file will
spit out a ton of information about the gc process.  It will log
information about the garbage collection candidates after it checks various
things to determine if a file should be kept.  This log information should
help determine which phase of the GC checking removed those files from
being eligible from garbage collection.

If the issue is acks referencing the file then the ack compaction might
help with that.  There are a couple bugs with it in 5.13.3 (and it is off
by default) that are fixed for 5.14.0.

On Tue, Jun 21, 2016 at 9:34 PM, RuralHunter <ruralhun...@gmail.com> wrote:

> I noticed some old data files(generated 2 days ago) are not get cleaned up.
> So I referred the doc to check which queue is using them. I found they are
> reserved for one busy queue. The queue has several hundreds of messages
> going through every second. There couldn't be any old message left there. I
> also checked the queue in admin ui and didn't find any old message in it.
> The new messages are in and out all the time in that queue.
> If I delete the queue in admin ui, the old data files are cleaned up soon.
> Or if I restart activemq, the old data files also get cleaned up.
> I don't know how to track this problem since it only occurs occasionally
> and
> there is no reliable reproduce step. I can modify the source to debug it if
> someone can guide me.
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/5-13-3-Invisible-message-prevents-storage-garbage-clean-tp4713229.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Reply via email to