I have a travel industry background, and we definitely had a requirement for message ordering in protocols - some of the same scenario issues Brad outlines below. If your flight booking, commit and cancellation message ordering in a session got mixed up, the result was a passenger showing up at the gate with no booking (something I'm sure some of you have had the pleasure of experiencing). Also, the JMS spec provides for message ordering (section 4.4.10 if you're interested
http://java.sun.com/products/jms/docs.html ): JMS defines that messages sent by a session to a destination must be received in the order in which they were sent (see Section 4.4.10.2, “Order of Message Sends,” for a few qualifications). This defines a partial ordering constraint on a session’s input message stream. JMS does not define order of message receipt across destinations or across a destination’s messages sent from multiple sessions. and further down in the spec: A client may use a transacted session to group its sent messages into atomic units (the producer component of a JMS transaction). A transaction’s order of messages to a particular destination is significant. The order of sent messages across destinations is not significant. See Section 4.4.7,“Transactions,” for more information. Colleen Lund, Brad wrote: > In-order messaging is important because say you send a message to order 100 > widgets, then you send an order to cancel that last order and you then send > a final message to order 10000 widgets, all in a very short amount of time. > If that is the way it is suppose to be BUT it arrives like this Order > 10000, cancel last order, order 100 widgets, it is very different and maybe > not what you intended. > > Brad > >