Hello.

I'm not sure if I'm sending my question to the right channel since my
problem could come from distinct origins...

I have bundles running in Karaf 4.4.4, using Camel 3.22.and ActiveMQ 5.18.3
(running on its own, not in Karaf). The broker is configured to move
rollbacked messages to DLQs.





*<policyEntry queue=">" producerFlowControl="true" memoryLimit="256m"
queuePrefetch="1" lazyDispatch="true">    <deadLetterStrategy>
<individualDeadLetterStrategy queuePrefix="DLQ."
useQueueForQueueMessages="true"/>    </deadLetterStrategy></policyEntry>*

This works as expected for Java applications  that create an ActiveMQ
Connection Factory with a RedeliveryPolicy setting
"redeliveryPolicy.setMaximumRedeliveries(0)" : on any exception, messages
from any queue are moved to the matching DLQ.

Now I need to manage exceptions in our bundles, such a way that errors also
lead messages to be moved to DLQ (it's a new requirement).

The connection factory is managed by PAX JMS with a CFG file where I've
just added a property to avoid redelivery, and force a rollback on the
first error.























*# Connection
configurationtype=activemqconnectionFactoryType=ConnectionFactory#
Namesname=xyz-jmsosgi.jndi.service.name
<http://osgi.jndi.service.name>=jms/xyz# Connection factory
propertiesjms.url=tcp://localhost:6000jms.user=xyzjms.password=xyzjms.clientIDPrefix=XYZjms.redeliveryPolicy.maximumRedeliveries=0#
Set XA transactionxa=false# Connection poolingpool=pooledjms# Maximum
number of connections for each user+password (default
1)pool.maxConnections=256*

The  maximumRedeliveries seems to be applied : if I set it with 3, the
message is processed 3 times, and with 0, only one time. But exceptions do
not move messages to the DLQ.

The camel route gets messages using a transacted mode :

*<from uri="jms:queue1?connectionFactory=#xyzJMS&amp;transacted=true" />*

Did I miss something ???

Thanks for your help.

Regards.

Reply via email to