Hi Take a look at these EIP patterns
http://camel.apache.org/content-enricher.html http://camel.apache.org/polling-consumer.html On Tue, May 4, 2010 at 10:00 AM, daytaa <[email protected]> wrote: > > Hi, > > I want to try and read (pop) a bulk set of messages from a VM component > queue into a list of sorts that I can pass into a bean method, dynamically > create some SQL and then call my data source. > > Really I want to do two things: > 1. In the first route shown below I want to keep the original entity object > PatsTofOrderEntity right the way through my different routes and contexts > 2. I want to use a timer to periodically get a bulk list of entries from the > final queue and then do some transformations and create some dynamic SQL to > then save it to data store. This queue should be created/added to in the > final camel context shown below and should save the original > PATSordereventEntity object rather than the OrderEventDTO. > > > Im using Spring DSL:. > > <camelContext id="patsOrderEntityPoll" > xmlns="http://camel.apache.org/schema/spring"> > .... > <route id="pollPatsOrderTable" startupOrder="5" shutdownRoute="Defer"> > <from > uri="jpa:com.macquarie.ficc.futexe.bel.entity.pats.PatsTofOrderEntity?consumer.namedQuery=pollTofOrderRecords&consumeDelete=false&delay=20000&consumer.useFixedDelay=true" > /> > <convertBodyTo > type="com.macquarie.ficc.futexe.bel.entity.pats.PatsTofOrderEntity" /> > <to > uri="vm:patsTransformationOrder?size=500000&timeout=1000000&concurrentConsumers=50" > /> > </route> > ... > </camelContext> > > > > <camelContext id="patsOrderTransformerRoute" > xmlns="http://camel.apache.org/schema/spring"> > ... > <route id="transformPatsOrderRoute" startupOrder="3" shutdownRoute="Defer"> > <from > uri="vm:patsTransformationOrder?size=500000&timeout=1000000&concurrentConsumers=50" > /> > <to uri="bean:patsTofTransformerBean?method=transformPatsTofOrder" /> > <convertBodyTo type="com.macquarie.ficc.futexe.bel.dto.OrderEventDTO" > /> > <to > uri="vm:storeNewEntity?size=1000000&timeout=1000000&concurrentConsumers=100"></to> > </route> > ... > </camelContext> > > > > <camelContext id="storeNewOrderEventEntity" > xmlns="http://camel.apache.org/schema/spring"> > ... > <route id="persistNewOrderEvent" startupOrder="1" shutdownRoute="Defer"> > <from > uri="vm:storeNewEntity?size=1000000&timeout=1000000&concurrentConsumers=100" > /> > <to uri="bean:saveOrderEventRepository?method=saveNewOrderEvent" /> > <add to another queue here - pass in the original entity object some > how use a timer/> > </route> > ... > </camelContext> > > > > ... > <route id="some new route using a timer and taking a bulk set of the > original entity objects and passing them to a bean to make a dynamicSQL > query> > <from uri="timer:xxx"> > <read from ? read from the queue in the above route> > <to uri"bean to make dynamic SQL and save entity object"> > </route> > ... > </camelContext> > > Any help would be greatly appreciated. > > Thanks. > -- > View this message in context: > http://old.nabble.com/Reading-from-a-VM-queue-tp28444281p28444281.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
