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: Wildcard and message distribution
Date Fri, 30 Jun 2006 08:02:56 GMT
On 6/29/06, Vadim Pesochinsky <Vadim.Pesochinskiy@mscibarra.com> wrote:
>
> Let's say I have N queues named as follows:
>
> FIN.VAL.MQ1
> ...
> FIN.VAL.MQN
>
> Receiver uses FIN.VAL.MQ* to listen on the queues.

Minor nit - you'd have to use FIN.VAL.* as we don't currently support
the use of * within a name; just to specify a step if you see what I
mean.


>  Lets say that all queues
> are filled up with messages. In what order will reciever be getting
> messages? Will it keep getting messages from e.g. FIN.VAL.MQ1 until there
> are no more messages in this queue?

No, its more kinda random. Basically the wildcard subscription is
kinda interpreted as an aggregation of subscriptions on all the
available queues which match the selector; so the subscription on each
individual queue is independent; though as soon as the consumers
prefetch buffer is filled then other queues can't dispatch to it. So
it will tend to 'chunk' on one destination at a time.

> Is there a policy that can be
> configured? I need to round-robin between queues ;-).

It depends how 'fair' you want to be. If you want to ensure that one
message is processed from each queue one after the other then no we
don't currently support that. One option could be to use a single
queue with round robin dispatch (to ensure things are dispatched
fairly and to avoid one consumer getting 100 messages in sequence)
then using a header/selector if you need to consume only MQ1 etc.

-- 

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

Mime
View raw message