[ https://issues.apache.org/activemq/browse/CAMEL-2795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59972#action_59972 ]
Claus Ibsen commented on CAMEL-2795: ------------------------------------ Well what we can do is when creating a *new* Exchange then we can let it be under an unit of work. I think this patch is better. Where we let {{target}} be the producer to process the Exchange. And if its a new Exchange its being wrapped by an {{UnitOfWorkProcessor}} which is the way you should do it. Its how Camel does it for routes etc. {code} protected Exchange sendExchange(final Endpoint endpoint, ExchangePattern pattern, final Processor processor, Exchange exchange) throws Exception { return doInProducer(endpoint, exchange, pattern, new ProducerCallback<Exchange>() { public Exchange doInProducer(Producer producer, Exchange exchange, ExchangePattern pattern) throws Exception { // target is the producer executing the exchange Processor target = producer; if (exchange == null) { exchange = pattern != null ? producer.createExchange(pattern) : producer.createExchange(); // if creating new exchange than wrap in unit of work target = new UnitOfWorkProcessor(producer); } if (processor != null) { // lets populate using the processor callback processor.process(exchange); } // now lets dispatch if (LOG.isDebugEnabled()) { LOG.debug(">>>> " + endpoint + " " + exchange); } // set property which endpoint we send to exchange.setProperty(Exchange.TO_ENDPOINT, endpoint.getEndpointUri()); // send the exchange using the processor StopWatch watch = new StopWatch(); try { target.process(exchange); } finally { // emit event that the exchange was sent to the endpoint long timeTaken = watch.stop(); EventHelper.notifyExchangeSent(exchange.getContext(), exchange, endpoint, timeTaken); } return exchange; } }); } {code} > ProducerCache send() should use the UnitOfWork to wrap the exchange > ------------------------------------------------------------------- > > Key: CAMEL-2795 > URL: https://issues.apache.org/activemq/browse/CAMEL-2795 > Project: Apache Camel > Issue Type: Improvement > Components: camel-core > Reporter: Willem Jiang > Assignee: Willem Jiang > Fix For: 2.4.0 > > > In this way the UnitOfWork of the exchange which is sent by the > DefaultProducerTemplate can be used rightly. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.