So keep in mind that nak_limit on the broker side is the number of poison pills the broker will accept before moving a message to dlq.
I'm guessing in your ActiveQM 5.x client, you are expecting your redelivery policy to send back an nack for each rollback? ...but it doesn't. It sends a nack (poison pill) after the redelivery options have been exhausted: http://activemq.apache.org/message-redelivery-and-dlq-handling.html "Once a message's redelivery attempts exceeds the maximumRedeliveries configured for the Redelivery Policy<http://activemq.apache.org/redelivery-policy.html>, a "Poison ack" is sent back to the broker letting him know that the message was considered a poison pill. " So to behave like ActiveMQ 5.x broker, you'll want to set <queue nak_limit="1" ... /> and also configure your redelivery maximumRedeliveries == n where n is the number of rollbacks you expect. I've committed a tests on the Apollo code base to demonstrate this: Check the very last test named "Rollback moves messages to DLQ" here: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-openwire/src/test/scala/org/apache/activemq/apollo/openwire/test/OpenwireParallelTest.scala?view=markup On Wed, Jul 31, 2013 at 6:53 AM, Yong Ouyang <yong.ouy...@gmail.com> wrote: > I use OpenWire protocol on the client side, where connection is created by > ActiveMQConnectionFactory > > > On Wed, Jul 31, 2013 at 9:43 PM, Christian Posta > <christian.po...@gmail.com>wrote: > > > What protocol are you using on the client side? > > > > > > On Wed, Jul 31, 2013 at 6:31 AM, Yong Ouyang <yong.ouy...@gmail.com> > > wrote: > > > > > Hello, > > > > > > I am playing with Apollo 1.6 recently. Given the below config, I am > > > expecting a dead message (being rolled back 3 times, for example) of > > queue > > > "app1.queue1" will be forwarded to the dead letter queue > > "dlq.app1.queue1". > > > But this doesn't actually happen at all. Did anyone encounter the same > > > behavior? Thank you. > > > > > > ... > > > <virtual_host id="default"> > > > ... > > > <queue id="app1.**" dlq="dlq.*" nak_limit="3" > auto_delete_after="0"/> > > > ... > > > </virtual_host> > > > ... > > > > > > Regards, > > > Yong > > > > > > > > > > > -- > > *Christian Posta* > > http://www.christianposta.com/blog > > twitter: @christianposta > > > -- *Christian Posta* http://www.christianposta.com/blog twitter: @christianposta