activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: Input queue and output queue grouping and sequences question
Date Thu, 12 Apr 2007 18:34:29 GMT
On 4/12/07, tnine <todd.nine@gmail.com> wrote:
>
> Ok, if that's the case I seem to have completely missed the point of Message
> Grouping.    It states that the following semantics are applied according to
> the description in the "Impliations" section here
> http://activemq.apache.org/message-groups.html.
>
> # partioning the traffic
> # load balancing of message groups across consumers
>
>
> Doesn't this mean that I can have multiple instances of my MDBs, each in its
> own thread, consuming a message off of the queue?

Yes


> In other words, won't
> Active MQ give the next message to whatever consumer requests a message?

It load balances messages across all available consumers on a queue concurrently


> So, can't I have message 1 read from the queue, and while that transaction
> is processing, another node reads and begins processing message 2 BEFORE the
> transaction commits for the message 1 read?  Otherwise, it becomes a
> sequential consumer, which I don't want.

We totally support concurrent processing. The whole point of Message
Groups is that it makes the processing of a single message group
(JMSXGroupID) sequential in a single thread to avoid concurrency
problems - but messages are processed concurrently for different
message groups (values of JMSXGroupID).

If you don't want any kind of sequential processing guarrentees, just
don't use message groups; then messages will be processed in parallel
across different consumers in a kinda random order (due to the usual
multithreading issues)

-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message