[ 
https://issues.apache.org/jira/browse/CAMEL-4616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13625671#comment-13625671
 ] 

Praveen Billampati commented on CAMEL-4616:
-------------------------------------------

We use JMS provider. We too need this to be fixed.
                
> register exception listener with camel-jms producer endpoint
> ------------------------------------------------------------
>
>                 Key: CAMEL-4616
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4616
>             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 sends.

--
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: http://www.atlassian.com/software/jira

Reply via email to