activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christoph Kutzinski" <ku...@gmx.de>
Subject Problem with 'dispatched queue'
Date Tue, 19 Jan 2010 09:44:27 GMT
Hi,

let me first describe my use-case as it is probably a little bit different from the usual
JMS use case:

We have a single process which fills a JMS queue from a pool of available items (say we have
50 items total).
The we have n consumers (lets say 2) which read the items from the queue in a synchronous
way (i.e. Spring JmsTemplate#receive).
This goes like so:
- consumer A fetches 5 items
- consumer B fetches 20 items
- consumer A fetches 5 items
and so on.

The problem we have now is that we are not able to fetch all items from the queue - e.g. if
there are still 10 items left in the queue and I want to get 10, I only get 5 or so.

I've already found the prefetchSize configuration and set it to 0 (also tried 1), but still
the same problem.
The problem seems to be that each consumer has an internal 'dispatched queue' which already
has some entries and consumer A has no possibility to access the dispatched queue of consumer
B.

For example the web console looks like this:
Consumer A; Enqueues 10; Dequeues 5; Dispatched 10; Dispatched Queue 5; Prefetch 0; Max Pending
0

Consumer B; Enqueues 20; Dequeues 10; Dispatched 20; Dispatched Queue 10; Prefetch 0; Max
Pending 0

In this case there would be e.g. still 15 items total in the queue, but with consumer A I
would onyl be able to get 5 items and with consumer B only 10 items.

I've tried various configuration options which I found in the ActiveMQ docu (dispatchAsync,
alwaysSessionAsync, sendAsync, ...), but none seemed to help.

Can anyone help? Does anyone know how to configure/disable this dispatched queue?


thanks
Christoph

Mime
View raw message