Hi Mikko, 

You could use a custom processor to check the body of the message, if there is 
no content then exit the route otherwise carry on.

You can see examples of processors here: http://camel.apache.org/processor.html

    from("activemq:myQueue").process(new Processor() {
        public void process(Exchange exchange) throws Exception {
            String payload = exchange.getIn().getBody(String.class);
            // do something with the payload and/or exchange here
           exchange.getIn().setBody("Changed body");
       }
    }).to("activemq:myOtherQueue");

thanks

Graham

> From: [email protected]
> To: [email protected]
> Subject: Preventing empty results from MyBatis producer being forwarded
> Date: Thu, 13 Sep 2012 08:43:18 +0000
> 
> Hi.
> 
> I have a route similar to the polling example on MyBatis component page:
> 
> from("timer://pollTheDatabase?delay=30000").to("mbatis:selectAllAccounts").to("activemq:queue:allAccounts");
> 
> When I run Camel I see that also the empty resultsets are being sent to MQ. 
> This causes redundant messages and data transfer and I would like to avoid 
> that. The MyBatis docs tell about option "consumer.routeEmptyResultSet" which 
> sadly works only for producers.
> 
> Is there a way to prevent sending the empty results sets to the next step? I 
> tried to fondle a bit with the .choice(), but found no solution.
> 
> Regards,
> 
> Mikko
> 
> ________________________________
> Subject to local law, communications with Accenture and its affiliates 
> including telephone calls and emails (including content), may be monitored by 
> our systems for the purposes of security and the assessment of internal 
> compliance with Accenture policy.
> ______________________________________________________________________________________
> 
> www.accenture.com
                                          

Reply via email to