Hello Greg, Both statements are correct. The first link refers to running a single broker instance. In that case messages will be dispatched in order to all topic consumers and in round-robin fashion to all queue consumers.
Your second quote refers to the fact that when running broker instances in a broker network (each node in the network runs a single broker, not a master/slave pair) messages may be trapped in a broker if that broker goes down and hence potentially cannot be delivered in order (i.e. if another producer connected to a different broker in the network continues to produce msgs on the same destination, these msgs will be dispatched). The messages on the crashed broker can only be delivered whenever that crashed broker is restarted. This could potentially take some time, depending on how quickly you can recover from that crash. One possible solution is to create a broker network with master/slave pairs on each node. In that case the slave broker will be able to take over after a master broker crash within a few seconds. As that failover still takes a couple of seconds, you still have the potential that for that period of time messages may be delivered out of order. > or with a network of brokers will the other > brokers store up the messages from the producer until the failed > broker recovers, thus preserving the order during delivery? No, that will not happen. Other brokers will continue to accept and dispatch messages and hence the order of messages being dispatched may not be preserved. Hope this helps. Torsten Mielke tors...@fusesource.com tmie...@blogspot.com On Mar 15, 2012, at 6:08 PM, Greg Thomas wrote: > I note at http://activemq.apache.org/how-do-i-preserve-order-of-messages.html > that is says "ActiveMQ will preserve the order of messages sent by a > single producer to all consumers on a topic". > > However, at http://activemq.apache.org/clustering.html it says: > > The problem with running lots of stand alone brokers or brokers in a > network is that messages are owned by a single physical broker at any > point in time. If that broker goes down, you have to wait for it to be > restarted before the message can be delivered. > > Now does that mean that the FAQ in the first link only applies to > non-clustered solutions; or with a network of brokers will the other > brokers store up the messages from the producer until the failed > broker recovers, thus preserving the order during delivery? > > Thanks, > > Greg