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
