camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Torsten Mielke (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAMEL-4616) register exception listener with camel-jms producer endpoint
Date Fri, 04 Nov 2011 09:49:00 GMT
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


camel-jms should register an exception listener automatically when used as a 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
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 async 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


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message