use strictOrderDispatch on your queue and use a prefetch that is a little larger than your expected queue depth. With these settings, the dispatcher will attempt to fill the first consumers prefetch buffer with all the messages in order.
When strictOrderDispatch=false, the default, it will round robin across the available consumers on each dispatch, such that consumer 1 gets message 1, consumer 2 message 2 etc. When true, consumer1 gets 0-prefetch, consumer 2 prefetch-2*prefetch etc. You can also use consumer priority to have some consumers get the bulk of messages. See: consumer.priority from http://activemq.apache.org/destination-options.html On 24 July 2011 23:12, swathig <swathi.gangise...@gmail.com> wrote: > I'm using ServiceMix and activemq broker to transport messages between > services deployed in ServiceMix. I'm observing a round robining pattern in > the order in which activemq chooses the concurrent consumers to push the > messages to. This seems to be the case even when the prefetch is modified to > 1. I cannot use a prefetch of 0 since I'm using Spring. I've tried changing > the dispatch policy to Simple Dispatch in the activemq configuration xml but > I continue to see the same behavior. Is there any way I can configure > activemq to push a message to the first available consumer (rather than > round robin through consumers which I guess is the default out of box > setting for the version of activemq I'm using)? > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Default-Dispatch-Policy-and-Pending-message-Limit-Strategy-tp2365262p3691134.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > -- http://fusesource.com http://blog.garytully.com