I think I figured out a realistic theory as to why my broker died last week
and ended up with my entire queue moving to the dead letter queue.

The problem happens when ActiveMQ goes into a full-GC loop where it
continually spends 100% CPU doing full -GCs.

messages are still served, but only say 1% of them (because there’s no CPU
left to do much work).

The problem comes from sessions or client acks where you have to commit()
or ack a message manually.

This never happens.  Because the broker is spending all time doing GCs.

So the 1% of messages that leave, only have a 1% chance of being ack’d…
which means that 99% of messages that are served by the broker aren’t ack’d.

This keeps happening slowly and your entire queue will be drained with
messages going into the DLQ.

It would probably end up with around say a small percentage of your
messages being processed.  But the majority would end up in the DLQ.



-- 

Founder/CEO Spinn3r.com
Location: *San Francisco, CA*
blog: http://burtonator.wordpress.com
… or check out my Google+ profile
<https://plus.google.com/102718274791889610666/posts>
<http://spinn3r.com>

Reply via email to