So my set up is that each producer creates 2 queues (send queue and recv
queue). When a consumer connects, it listens to the advisory queue and
attaches to all the send queues. So for example, a consumer may be watching
10 send queues.

The main work loop is:

for (;;)
{
   foreach queue
      WaitForMutex
      ReceiveNoWait()
      ReleaseMutex
}

The stuff with the mutex is because we are running 200 consumers on single
CPU VMs with another heavy process, so we kind of want to switch off between
that process and this consumer so they don't try to do work at the same time
and kill the machine.

Anyways... my question is... if we are monitoring the queue via the web
console, it seems like occasionally (kinda frequently) we get into a
situation where a msg shows pending, but it has actually been dispatched to
a consumer...

What I'm getting at, is if the ReceiveNoWait() is pulling a message, why is
it still showing as pending in the web console?




--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Can-you-explain-how-this-part-works-tp4670560.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to