activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Sitsky <>
Subject Re: Large PendingQueueSize values for subscriptions on a queue with one message
Date Fri, 24 Aug 2007 04:25:41 GMT
Hi Rob,

I thought that would be your answer - fair enough.

I've attached a unit test which demonstrates the problem.  I tried to 
make the code as small as possible.

In this situation, the issue (program hangs) seems to happen when 
QUEUE_PREFETCH_SIZE == 1 and NUM_WORKERS = 2 (90% of the time). 
Changing NUM_WORKERS to 1 seems to make it work.

Increasing the QUEUE_PREFETCH_SIZE also seems to make things work.

Thanks for looking into this.  I am really interested to find out what 
the culprit is.  I am a relative novice with JMS, so I wouldn't be 
surprised if it is something I have done wrong.


Rob Davies wrote:
> could you build a junit test case to demonstrate this ? This would be 
> most hopeful
> cheers,
> Rob
> 'Go Get Integrated -  ride the Camel! -'
> On Aug 23, 2007, at 9:22 AM, David Sitsky wrote:
>> I have an application which is using the latest snapshot of ActiveMQ 5.0.
>> I have a master JVM process which sends an item to a work-item queue.  
>> I have worker JVM processes which pick up these items, process them, 
>> and possibly create new items into the work-item queue as a part of 
>> processing these messages.
>> The master sends a new work-item once the workers have completed all 
>> their work.
>> I have a situation where if there is only one worker JVM process (one 
>> consumer), everything works fine.  If there are two workers, they 
>> complete all of their work, the master sends the next work item to the 
>> queue, but they never get notified of this new message.
>> I know the message is sent, via the JMX console, and that the worker 
>> subscriptions are still active.
>> What is strange is the worker's subscriptions have large 
>> PendingQueueSize values, which seems odd, since they aren't processing 
>> any more messages.  The queue size is 1 after the master sends its new 
>> message.
>> If I create a new worker process, it immediately gets the message from 
>> the master!
>> This happens with or without transactions, and with all sorts of 
>> pre-fetch sizes, using the same or separate Connections.
>> I've started to run the broker in my IDEA debugger to try and 
>> understand what is going on - but the fact that the PendingQueueSize 
>> are quite large, does this explain why the old workers don't get new 
>> messages? Does this sound like a bug?
>> Any suggestions on what I should look for?  I'm happy to dive into the 
>> code, but would appreciate some guidance.
>> Cheers,
>> David


Nuix Pty Ltd
Suite 79, 89 Jones St, Ultimo NSW 2007, Australia    Ph: +61 2 9280 0699
Web:                            Fax: +61 2 9212 6902

View raw message