camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shivakumar (JIRA)" <>
Subject [jira] [Commented] (CAMEL-4616) register exception listener with camel-jms producer endpoint
Date Wed, 06 Feb 2013 16:51:13 GMT


Shivakumar commented on CAMEL-4616:

We are affected too.. We need a fix ASAP.. Please help
> register exception listener with camel-jms producer endpoint
> ------------------------------------------------------------
>                 Key: CAMEL-4616
>                 URL:
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jms
>    Affects Versions: 2.8.2
>         Environment: camel-jms producer sending to ActiveMQ 
>            Reporter: Torsten Mielke
>              Labels: transactions
> camel-jms should register an exception listener automatically when used as a message
producer. That way it can deal with any exception that may occur on async sends.
> To be more precise:
> If a camel-jms producer sends a msg within a transaction to an ActiveMQ broker, then
this message send happens async by default (kind of an optimization done by ActiveMQ). If
anything goes wrong with the send (e.g. broker raises a javax.jms.ResourceAllocationException
because its full or there is a transport problem) then we currently don't catch this exception
as there is no async exception listener registered. What's worse the TX will be committed
thereafter although the send has actually failed.
> As a result the msg is lost. 
> For ActiveMQ there is a simple solution to this problem, either
> - set jms.useAsyncSend=false on the broker URL, or
> - call setAlwaysSyncSend(true) on the ActiveMQConnectionFactory
> However many users won't be aware of this solution and will simply assume that using
a transaction is enough to guard against message loss. 
> Also the same problem can potentially arise with other JMS providers if they also use
async send within a transaction. 
> Camel should ensure that the out of the box behavior prevents from loosing msgs in transactional

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message