You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by nezor <Ky...@oeconnection.com> on 2013/08/20 19:18:32 UTC

AMQ DeadLetterStrategy Not Being Respected

I'm using the standard activemq-broker.xml which comes pre-installed with
Fuse with a slight change. I have added a deadLetterStrategy for Topics and
Queues as indicated by this page 
http://activemq.apache.org/message-redelivery-and-dlq-handling.html
<http://activemq.apache.org/message-redelivery-and-dlq-handling.html>  

<destinationPolicy>
    <policyMap>
      <policyEntries>
	<policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
	  <pendingSubscriberPolicy>
	    <vmCursor />
	  </pendingSubscriberPolicy>
	  <deadLetterStrategy>
	    <individualDeadLetterStrategy queueSuffix=".DLQ"
useQueueForTopicMessages="true"/>
	  </deadLetterStrategy>
	</policyEntry>
	<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
	  <deadLetterStrategy>
	    <individualDeadLetterStrategy queueSuffix=".DLQ"
useQueueForQueueMessages="true"/>
	  </deadLetterStrategy>
	</policyEntry>
      </policyEntries>
    </policyMap>
</destinationPolicy> 

The transportConnector are default,
<transportConnectors>
     <transportConnector name="openwire" uri="tcp://localhost:61616"/>
     <transportConnector name="stomp" uri="stomp://localhost:61613"/>
</transportConnectors>

Next, the ActiveMQConnectionFactory is configured to use the default broker
from the activemq-broker.xml and my redelivery policy.
<bean id="jmsConnectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL">
      <value>tcp://localhost:61616</value> 
    </property>
    <property name="redeliveryPolicy" ref="standardRedeliveryPolicy"/>
</bean>

The rest of the configuration is standard my JmsConfiguration has transacted
= true.

My route takes a message from a topic consumer and attempts to send the
message to an http endpoint using <transacted
ref="PROPAGATION_REQUIRES_NEW"/>. The http endpoint is offline so the
message fails I watch the transaction rollback and replay 5 times, as
configured by the redelivery policy. But after the 5 tries the message is
dumped into the default DLQ, ActiveMQ.DLQ, instead of the configured
/"queue/topic name".DLQ/.

What am I missing here? Any help would be greatly appreciated, thank you!



--
View this message in context: http://camel.465427.n5.nabble.com/AMQ-DeadLetterStrategy-Not-Being-Respected-tp5737613.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: AMQ DeadLetterStrategy Not Being Respected

Posted by nezor <Ky...@oeconnection.com>.
Sorry I thought that was where this was posted.



--
View this message in context: http://camel.465427.n5.nabble.com/AMQ-DeadLetterStrategy-Not-Being-Respected-tp5737613p5737661.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: AMQ DeadLetterStrategy Not Being Respected

Posted by Christian Müller <ch...@gmail.com>.
You should may ask this on the ActiveMQ user mailing list...

Best,
Christian
Am 20.08.2013 20:02 schrieb "nezor" <Ky...@oeconnection.com>:

> I'm using the standard activemq-broker.xml which comes pre-installed with
> Fuse with a slight change. I have added a deadLetterStrategy for Topics and
> Queues as indicated by this page
> http://activemq.apache.org/message-redelivery-and-dlq-handling.html
> <http://activemq.apache.org/message-redelivery-and-dlq-handling.html>
>
> <destinationPolicy>
>     <policyMap>
>       <policyEntries>
>         <policyEntry topic=">" producerFlowControl="true"
> memoryLimit="1mb">
>           <pendingSubscriberPolicy>
>             <vmCursor />
>           </pendingSubscriberPolicy>
>           <deadLetterStrategy>
>             <individualDeadLetterStrategy queueSuffix=".DLQ"
> useQueueForTopicMessages="true"/>
>           </deadLetterStrategy>
>         </policyEntry>
>         <policyEntry queue=">" producerFlowControl="true"
> memoryLimit="1mb">
>           <deadLetterStrategy>
>             <individualDeadLetterStrategy queueSuffix=".DLQ"
> useQueueForQueueMessages="true"/>
>           </deadLetterStrategy>
>         </policyEntry>
>       </policyEntries>
>     </policyMap>
> </destinationPolicy>
>
> The transportConnector are default,
> <transportConnectors>
>      <transportConnector name="openwire" uri="tcp://localhost:61616"/>
>      <transportConnector name="stomp" uri="stomp://localhost:61613"/>
> </transportConnectors>
>
> Next, the ActiveMQConnectionFactory is configured to use the default broker
> from the activemq-broker.xml and my redelivery policy.
> <bean id="jmsConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>     <property name="brokerURL">
>       <value>tcp://localhost:61616</value>
>     </property>
>     <property name="redeliveryPolicy" ref="standardRedeliveryPolicy"/>
> </bean>
>
> The rest of the configuration is standard my JmsConfiguration has
> transacted
> = true.
>
> My route takes a message from a topic consumer and attempts to send the
> message to an http endpoint using <transacted
> ref="PROPAGATION_REQUIRES_NEW"/>. The http endpoint is offline so the
> message fails I watch the transaction rollback and replay 5 times, as
> configured by the redelivery policy. But after the 5 tries the message is
> dumped into the default DLQ, ActiveMQ.DLQ, instead of the configured
> /"queue/topic name".DLQ/.
>
> What am I missing here? Any help would be greatly appreciated, thank you!
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/AMQ-DeadLetterStrategy-Not-Being-Respected-tp5737613.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>