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>