You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Allesmallachen <Sp...@web.de> on 2007/03/19 05:17:22 UTC

Order of message consumption across destinations

Hi,
the JMS specification says that "JMS does not define order of message
receipt across destinations". The documentation on the websites only
describes ordering issues with mutiple sessions or mutiple producers. But
what about one producer and several consumers with different topics?

I've tried to get the ActiveMQ to make mistakes that show that there is no
ordering across destinations. I have two TopicSubscribers with two different
Topics (one nomal "m", one temporary "x") under same session and one
TopicPublisher under a different session that publishes messages to the two
different topics in a separate Thread. To make this a little bit more
challeging for the ActiveMQ I've also added a few other consumers for topic
m.

However no matter how many message I send, all are received in the correct
order also accross destinations. For exampe if the publisher sends
m1;m2;x1;m3;x2 ... then m1 to m3 are received by the subscriber to m and
then afterwards x1 is received by the subscriber to x and so on. Everything
in perfect order. 

I know that a session is a single threaded context and therefore it is clear
to me that the consumer's onMessage methods will be called in order if the
messages arrive in order. However, does this mean that ActiveMQ supports
ordering across destinations or is my TestCase just too simply to force
mistakes?

Best regards, 
Christian
-- 
View this message in context: http://www.nabble.com/Order-of-message-consumption-across-destinations-tf3425028s2354.html#a9546365
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Order of message consumption across destinations

Posted by James Strachan <ja...@gmail.com>.
BTW we support optional total ordering to ensure that all consumers on
a topic see the same order (which is slower as we have to synchronize
the processing of the processors in the broker)

On 3/19/07, James Strachan <ja...@gmail.com> wrote:
> ActiveMQ supports ordering of a single producers messages; so the only
> way to get things to arrive out of order is to have multipe producers
> and get the messages to interleaved. i.e. so for producers M and N,
> one consumer might see M1, M2, N1, N2 the other might see M1, N1, M2,
> N2 etc
>
>
>
> On 3/19/07, Allesmallachen <Sp...@web.de> wrote:
> >
> > Hi,
> > the JMS specification says that "JMS does not define order of message
> > receipt across destinations". The documentation on the websites only
> > describes ordering issues with mutiple sessions or mutiple producers. But
> > what about one producer and several consumers with different topics?
> >
> > I've tried to get the ActiveMQ to make mistakes that show that there is no
> > ordering across destinations. I have two TopicSubscribers with two different
> > Topics (one nomal "m", one temporary "x") under same session and one
> > TopicPublisher under a different session that publishes messages to the two
> > different topics in a separate Thread. To make this a little bit more
> > challeging for the ActiveMQ I've also added a few other consumers for topic
> > m.
> >
> > However no matter how many message I send, all are received in the correct
> > order also accross destinations. For exampe if the publisher sends
> > m1;m2;x1;m3;x2 ... then m1 to m3 are received by the subscriber to m and
> > then afterwards x1 is received by the subscriber to x and so on. Everything
> > in perfect order.
> >
> > I know that a session is a single threaded context and therefore it is clear
> > to me that the consumer's onMessage methods will be called in order if the
> > messages arrive in order. However, does this mean that ActiveMQ supports
> > ordering across destinations or is my TestCase just too simply to force
> > mistakes?
> >
> > Best regards,
> > Christian
> > --
> > View this message in context: http://www.nabble.com/Order-of-message-consumption-across-destinations-tf3425028s2354.html#a9546365
> > Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> >
> >
>
>
> --
>
> James
> -------
> http://radio.weblogs.com/0112098/
>


-- 

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

Re: Order of message consumption across destinations

Posted by James Strachan <ja...@gmail.com>.
ActiveMQ supports ordering of a single producers messages; so the only
way to get things to arrive out of order is to have multipe producers
and get the messages to interleaved. i.e. so for producers M and N,
one consumer might see M1, M2, N1, N2 the other might see M1, N1, M2,
N2 etc



On 3/19/07, Allesmallachen <Sp...@web.de> wrote:
>
> Hi,
> the JMS specification says that "JMS does not define order of message
> receipt across destinations". The documentation on the websites only
> describes ordering issues with mutiple sessions or mutiple producers. But
> what about one producer and several consumers with different topics?
>
> I've tried to get the ActiveMQ to make mistakes that show that there is no
> ordering across destinations. I have two TopicSubscribers with two different
> Topics (one nomal "m", one temporary "x") under same session and one
> TopicPublisher under a different session that publishes messages to the two
> different topics in a separate Thread. To make this a little bit more
> challeging for the ActiveMQ I've also added a few other consumers for topic
> m.
>
> However no matter how many message I send, all are received in the correct
> order also accross destinations. For exampe if the publisher sends
> m1;m2;x1;m3;x2 ... then m1 to m3 are received by the subscriber to m and
> then afterwards x1 is received by the subscriber to x and so on. Everything
> in perfect order.
>
> I know that a session is a single threaded context and therefore it is clear
> to me that the consumer's onMessage methods will be called in order if the
> messages arrive in order. However, does this mean that ActiveMQ supports
> ordering across destinations or is my TestCase just too simply to force
> mistakes?
>
> Best regards,
> Christian
> --
> View this message in context: http://www.nabble.com/Order-of-message-consumption-across-destinations-tf3425028s2354.html#a9546365
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 

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