I am using Sprin's DefaultMessageListenerContainer to consume messages. What I noticed was "maximumRedeliveries" setting is not effective for some reason. It just keeps redelivering messages.
Following is my connectionFactory setting. According to the ActiveMQ documentation it seems a "Poison ack" is not being sent back to the broker letting him know that the message was considered a poison pill. Am I missing anything here? <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover:(tcp://.....)" /> <property name="redeliveryPolicy"> <bean class="org.apache.activemq.RedeliveryPolicy"> <property name="maximumRedeliveries" value="3"/> <property name="backOffMultiplier" value="2"/> <property name="initialRedeliveryDelay" value="50"/> <property name="useExponentialBackOff" value="true"/> </bean> </property> </bean> </property> <property name="maximumActive" value="8" /> </bean> Came across following http://www.oreillynet.com/onjava/blog/2006/01/message_redelivery_and_dlq _tip.html Is this still valid for the AMQ 4.1.0 as well? Since I am using Message Driven POJOs I don't have access to low level message details. Any idea is highly appreciated. Thanks