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 <willem.ji...@gmail.com> 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: >> http://camel.apache.org/better-jms-transport-for-cxf-webservice-using-ap >> ache-camel.html >> <http://camel.apache.org/better-jms-transport-for-cxf-webservice-using-a >> 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: >> http://camel.465427.n5.nabble.com/CXF-Camel-JMS-Endpoint-exception-handl >> ing-td4471175.html >> <http://camel.465427.n5.nabble.com/CXF-Camel-JMS-Endpoint-exception-hand >> ling-td4471175.html> ? >> >> Thanks for your help >> Stefan >> > > > -- > Willem > ---------------------------------- > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang > Weibo: willemjiang