Unfortunately the ordering doesn't work with client acknowledge in 4.1.0 as the following example shows
1) 10 messages for topic produced 2) First attempt to receive the messages with a durable topic subscriber (acknowledment mode set to client acknowlede but not called for any of the messages) Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:1 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:2 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:3 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:4 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:5 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:6 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:7 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:8 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:9 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:10 3) Second attempt Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:10 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:9 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:8 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:7 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:6 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:5 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:4 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:3 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:2 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:1 4) Third attempt: Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:1 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:2 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:3 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:4 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:5 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:6 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:7 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:8 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:9 Message ID: ID:hvb0396-1306-1189153233546-1:0:1:1:10 As you can see the order gets reversed after each attempt. I'll do some further testing with tranacted sessions. Kind regards Juergen James.Strachan wrote: > > On 9/6/07, Juergen Mayrbaeurl <[EMAIL PROTECTED]> wrote: >> >> Hi! >> >> Our application has to make sure that all consumers with durable topic >> subscriptions get messages in strict order even when a message has to be >> delivered. >> E.g. >> Publisher puts message 1 to 10 on topic. Consumer opens a session, gets >> message 1, makes a client acknowledment, gets message 2, makes a client >> acknowledment, and so on. On message 3 a runtime exception occurs and no >> client acknowledment is done, but the session and the connection are >> closed. >> The next time the consumer opens a session message 4 gets delivered >> before >> message 3. >> >> What do we have to do to get message 3 (and not 4) as the first message? >> Do >> we have to use a special redelivery policy? > > It should just work; though FWIW I'd recommend you switch from using > acknowledge to using JMS transactions. They are typically faster as > well as allowing you to do a rollback (rather than having to close the > session & connection on failure) > http://activemq.apache.org/should-i-use-transactions.html > > >> PS: We're using ActiveMQ 4.1.0 > > I'd also recommend you upgrade to 4.1.1 > -- > James > ------- > http://macstrac.blogspot.com/ > > -- View this message in context: http://www.nabble.com/Strict-order-of-messages-with-redelivery-tf4391491s2354.html#a12538047 Sent from the ActiveMQ - User mailing list archive at Nabble.com.