Huge enqueues quantity in consumer list page

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Huge enqueues quantity in consumer list page

Ishitori
I am using ActiveMQ web console to monitor ActiveMQ performance. And I've found a very strange statistics in my brokers.

I use failover in AMQ 5.5.0 and there is a queue which has 100 consumers. Roughly, I run through the queue about 300k messages a day. I use individual acknowledge mode and if the message is not got processed, I put it back into the queue with a delay.

If I go to Queue details -> View consumers page then I will see the list of the consumers of the queue with the columns: Enequeues, Dequeues, Dispatched. I expect these values to be the same, since every enqueued message should be dequeued and then dispatched. And this assumption is correct for other queues, but it is not for that one specific queue. I can see the following statistics:

Client ID | Enqueues | Dequeues | Dispatched
A          | 1078702   | 266         | 266  
B          | 1667141   | 289         | 289
C          | 1653100   | 281         | 281

The number of enqueued message is too high and it is increasing after each page refresh by about 100 messages. But the system is not that loaded for sure.

Right now I am experiencing some losts of messages and I want to make sure if that problem might be related to missing messages problem. Has anyone experienced the same problem with the number of enqueues?
Reply | Threaded
Open this post in threaded view
|

Re: Huge enqueues quantity in consumer list page

Ishitori
Ok, it seems I figured out the answer. It is states for NMS provider, but I think it is more general problem.

The problem reproduces if you have a consumer with 0 prefetchSize. In this case a call to MessageConsumer.SendPullRequest gives true on the following condition:

if (this.info.PrefetchSize == 0 && this.unconsumedMessages.Empty)

It does send message pull request:

session.Connection.Oneway(messagePull);

So, it seems fine to me. But what I can't understand is why it displays pull requests in Enqueues column in Active Consumers page? It seems a bug to me.