activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Green (JIRA)" <>
Subject [jira] [Commented] (AMQ-2923) Clients are sent messages out of producer-order
Date Mon, 04 Jul 2011 15:54:21 GMT


James Green commented on AMQ-2923:

This is a non-issue, having discussed the stomp log with gtully on irc. I'm recommending that be updated with the following:

Message Ordering

When delivering messages the broker uses the message-id to order them. This is based on the
producer-id which, in the case of STOMP connections, is generated at the point that the producer
connects to the broker.

Therefore apparently out-of-order messages may occur. To give an example:

1. Producer p1 connects
2. Producer p2 connects
3. Producer p2 sends Message 1 to /queue/test
4. Producer p1 sends Message 2 to /queue/test several seconds later
5. Consumer c1 connects and subscribes to /queue/test and receives Message 2 followed by Message


Hopefully I have interpreted gtully's explanation correctly and this is understandable.

> Clients are sent messages out of producer-order
> -----------------------------------------------
>                 Key: AMQ-2923
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.0, 5.4.1, 5.4.2
>         Environment: Ubuntu 10.04.
>            Reporter: James Green
>            Priority: Critical
>         Attachments: amq.gif, stomp.log
> On a single host:
> Producer P1 posts message M1 to Queue Q.
> Producer P2 posts message M2 to Queue Q a few seconds later.
> Consumer C1 comes a few seconds further along along and begins reading from Queue Q.
Occassionally, C1 receives M2 before M1.
> This is what I'm seeing in two PHP application connecting to ActiveMQ via STOMP. After
dozens of tests I've finally reproduced it with trace=true. I am not sure what environmental
conditions cause this to occur.
> I will attach a log. Watch for destination:/queue/Outbound.Account.200000 which is Q.
M1 has a reason="MJINITIALSTATE" and M2 has a reason="E----:Confirmed..."

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message