camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Burkard <>
Subject Re: Transacted CXF-Consumer from queue
Date Fri, 23 Mar 2012 08:49:02 GMT
My problem seems to be that, with MEP InOnly, a CXF endpoint consuming
from a queue does not "see" an exception that occurs later in the
route and therefore commits the consumptions to the queue.

Does anybody know how I can make this exception visible to CXF? I
think this should be possible, otherwise it would not be possible to
read asynchronous and transacted with CXF from a queue.


On Wed, Mar 21, 2012 at 17:26, Stefan Burkard <> wrote:
> Hi Willem
> I suspected something like this - I am a Camel beginner and therefore
> didn't know if this is a bug or a feature :-)
> My case is to make the following routes transactional:
> 1. I am consuming messages with a CXF bean endpoint from an ActiveMQ
> queue to get an unmarshalled Exchange (the producer sends - fire and
> forget - SOAP messages with mtom attachments to the queue)
> 2. I am sending the Exchanges with ".to(direct:...)" to the main route
> of my module
> 3. The main route processes the Exchanges
> To check how these routes behave under error conditions, I am
> injecting intentionally an exception into the direct-endpoint
> (to"direct:...") of the first route. Therefore I am getting (as
> expected) the exception and afterwards the queue is empty. This means
> my route is not secured against message loss. If I understand you
> correctly, the exception that occurs during route-processing is not
> recoginsed by the CXF-consumer and therefore the consumer commits the
> message consumption to the queue.
> So, how can I make this asynchronous SOAP over JMS usecase
> transactional so that the message remains in the queue if an error
> occurs during route processing?
> Thanks for your help
> Stefan
> On Wed, Mar 21, 2012 at 14:23, Willem Jiang <> wrote:
>> If you are using inOnly MEP, camel-cxf producer will not know any thing
>> about the exception.
>> I'm not sure what kind of error that you get.
>> On 3/21/12 5:54 PM, Burkard Stephan wrote:
>>> Hello
>>> I try to get running a SOAP over JMS usecase with the configuration
>>> outlined here:
>>> ache-camel.html
>>> <
>>> pache-camel.html>
>>> My webservice is InOnly, it does not respond to requests. The client
>>> therefore sends SOAP messages to a queue without waiting for an answer.
>>> On the server side camel consumes the messages.
>>> I tried to test transaction behaviour of my camel routes with unittests
>>> where I advice the route with exceptions that occur at specific
>>> entpoints. This works fine when I consume from the queue directly
>>> (activemq:queue:...). If an error occurs the message is not commited and
>>> it stays in the queue.
>>> When I use a CXF endpoint to consume messages (cxf:bean:...), messages
>>> are lost when an exception occurs. They seem to be commited in activemq
>>> before or despite an error occurs.
>>> Therefore I tried to read first from the queue directly, forward the
>>> message to a direct endpoint and consume the messages with CXF from the
>>> direct endpoint. But in this case the message is also lost if an error
>>> occurs after consuming the message with CXF.
>>> Before posting routes and configuration details, I just would like to
>>> know if this is "normal" behaviour of the CXF endpoint with inOnly MEP
>>> or if the messages should stay in the queue as I expect?
>>> Perhaps this is the same problem as described in this thread:
>>> ing-td4471175.html
>>> <
>>> ling-td4471175.html>  ?
>>> Thanks for your help
>>> Stefan
>> --
>> Willem
>> ----------------------------------
>> FuseSource
>> Web:
>> Blog: (English)
>> (Chinese)
>> Twitter: willemjiang
>> Weibo: willemjiang

View raw message