This content has been marked as final.
Show 5 replies
-
1. Re: JBM 2 Consumer flow control.
timfox May 7, 2008 6:26 AM (in response to ataylor)When the consumer frees up some messages on the client side it will send a changeRate, which should cause delivery to be prompted on the queue.
See ServerConsumerEndpoint::changeRate() -
2. Re: JBM 2 Consumer flow control.
ataylor May 7, 2008 6:29 AM (in response to ataylor)See ServerConsumerEndpoint::changeRate()
is this 2.0 as this class doesn't exist anymore? -
3. Re: JBM 2 Consumer flow control.
timfox May 7, 2008 6:36 AM (in response to ataylor)ServerConsumerImpl::receiveTokens in JBM 2.0
-
4. Re: JBM 2 Consumer flow control.
ataylor May 7, 2008 6:59 AM (in response to ataylor)yeah ive been looking at this, i have noticed that promptDelivery is called in a a different thread i.e.
public void promptDelivery(final Queue queue) { // TODO - do we really need to prompt on a different thread? executor.execute(new Runnable() { public void run() { queue.deliver(); } }); }
if i change this the problem goes away, maybe this is causing a race condition! -
5. Re: JBM 2 Consumer flow control.
timfox May 7, 2008 7:03 AM (in response to ataylor)IIRC this is called on a different thread to avoid a deadlock condition.
I would try and find out why it's not actually being executed - has the executor shutdown or maybe it's queue is full?