One Star

Configure ActiveMQ redelivery delay in connection factory

Hi,
I am trying to configure a redelivery delay when consuming messages from an ActiveMQ connection (using the "Use Transaction" option enabled).
I've tried to add the redelivery policy properties to the connection factory broker URI, but so far, only the "maximumRedeliveries" setting has effect?
For example:
"tcp://localhost:61616?jms.redeliveryPolicy.initialRedeliveryDelay=9000&jms.redeliveryPolicy.maximumRedeliveries=2"
?results into 2 retries (good!), but there is no initial delay of 9000 ms. Any other option, such as "useExponentialBackOff" or "redeliveryDelay" have no influence what so ever; the message is retried immediately without delays until it hits the (configured) maximum.
Any ideas?
Thanks -- Robin
3 REPLIES
Employee

Re: Configure ActiveMQ redelivery delay in connection factory

Hi Robin,
I just reproduced this behavior myself, and it's quite frustrating. I'm not sure what version of Talend you're using, but I was finally able to get it to work in the attached route using the sjms component. I created this in Talend Open Studio for ESB 5.4.0. So if you're running an earlier version of Talend Studio it may not have what is required to run the route.
The only want I was able to apply the policy was through ActiveMQ Spring XML. And even then it seemed to be overridden by the camel-jms component. The camel-sjms component was the only thing that respected these policies.
I will raise a JIRA, as I think this is a bug.
Best Regards,
Ben
Employee

Re: Configure ActiveMQ redelivery delay in connection factory

One Star

Re: Configure ActiveMQ redelivery delay in connection factory

Many thanks Ben for your answer!
I was able to get my use case working (even with Talend 5.2.2) by adding the option "cacheLevelName", "CACHE_CONSUMER" to the cJMS component -- see this thread: http://activemq.2283324.n4.nabble.com/ActiveMQ-Camel-RedeliveryDelay-configuration-is-not-used-immed...
Still, I agree with you this should not be rocket-science to get the redelivery delay working, Talend should provide either in their documentation or default settings this kind of information.