activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <>
Subject Re: Request for clarification: strictOrderDispatch="true" vs Exclusive Consumers - for queues
Date Tue, 17 Dec 2013 13:18:30 GMT
strictOrderDispatch does not wait for acks. Given 2 consumers(c),
normal dispatch would round robin to each consumer, m0 to c0, m1 to
c1, m2 to c0 etc.
With strictOrderDispatch, m0-N (where N = c0's prefetch Value)  will
go to c0, then c1 will get any remaining messages up to its prefetch,
etc. So prefetch has a big bearing, a really large prefetch would make
c0 effectively exclusive.
With exclusive consumer, only one of c0 or c1 will be considered active.

On 11 December 2013 17:29, dimitry12 <> wrote:
> Hello! I'd like to confirm my understanding of dispatch policies in ActiveMQ.
> When we deal with *queues* and have strictOrderDispatch="true" set in
> policyEntry - then ActiveMQ ensures that all messages are processed strictly
> in order. If there are multiple consumers then:
> - ActiveMQ will feed #prefetch-limit messages to the first consumer
> - wait until this consumer acknowledges/processes all prefetched messages
> - after that: feed messages to the next consumer
> - wait.. repeat..
> Is the above description generally correct?
> If we deal with queues and have an exclusive consumer, then (ignoring
> priorities for now) ActiveMQ feeds all messages to this consumer and all
> other consumers get nothing. Thus effectively messages are processed
> strictly in order.
> My understanding is: for queues both strictOrderDispatch and exclusive
> consumer produce the same effect = messages are processed strictly in order.
> Please, correct me if I'm wrong.
> Thanks!
> --
> View this message in context:
> Sent from the ActiveMQ - User mailing list archive at


View raw message