I seem to have came across a similar problem. I received the logs just today, so I made no measurements or tests yet, but from what I can see the link between producer and consumer get clogged. There are no (or almost no) messages for a few minutes and then there comes a burst with retarded messages.
The producer produces steadily 10-100msg/s, so there's data to be transfered for sure. TCP is used as transport, link between sites is ~128kbps, upgrade to ActiveMQ 5.3.2 didn't help.
So in my case the bandwidth turned out to be the problem. Messages were send serialized and ActiveMQ also added its load. The connection was not clogged, in case of "message burst" it just took quite a while to send all produced messages. Custom message format fixed the issue for now.
But I was suprised to find ActiveMQ overhead is quite substantial. Does the ActiveMQMessage.size() method return the actual load that is pushed through the wire? I looked up source code and a constant DEFAULT_MINIMUM_MESSAGE_SIZE is 1024, I assume bytes. This could be an overkill for say, hundreds of small messages sent per second. Is ActiveMQ right choice for such scenario?
Where experiencing trouble at a clients site where, and it's happened twice in recent months, the brokers seem to go into a slow burst mode.
It manifests itself by the client receiving messages at a normal speed, then not getting anything for 3-4 minutes then getting another burst of 100 or so transactions, then nothing for 3-4 minutes again and so on.