On Thu, Mar 5, 2009 at 11:11 AM, ee7arh <andrew.hu...@2e-systems.com> wrote: > > Thanks, > > The only issue I now foresee by connecting sub-routes together by either > direct: or seda: is when I am trying to use transactions. > > I am trying to build an application using Camel / ActiveMQ which can never > lose a message. My whole application is based arount the camel routing and I > want it so that no matter whether a message is being processed by bean or > sitting on a queue, it will never be lost in case of application going down. > The way I thought to do this was to pass messages from a persistent queue, > along to some beans, then landing again on a persistent queue all within a > "PROPOGATION_REQUIRED" transaction. > > My understanding of what you wrote is that rather than using "direct" or > "seda" (which are not persistent), I would have to instead route to a jms > queue (persistent) to maintain my overall goal of never losing a message. > Could you comment whether I'm thinking along the right lines here? It's a > key assumption for my design so would hate to be going in totally the wrong > direction! If you break your routing into sub routes using the "direct" endpoint then there should not be a problem as it will continue running on the same thread.
However using "seda" will of course use different threads for the consumer side. > > Regards > Andrew > > > > ee7arh wrote: >> >> Hi, >> >> When I tryto use the functions "splitter()" or "multicast()" in my DSL >> within a "choice()" block, I am not able to have another "when()" or even >> an "otherwise()" >> >> Predicate isInvitation >> = PredicateBuilder.regex(header("event_type"), "invitation"); >> >> Predicate isReply >> = PredicateBuilder.regex(header("event_type"), "reply"); >> >> from("jms:queue:myQueue") >> .choice() >> .when(isInvitation) >> .to("bean:eventMarshaller?methodName=unmarshallTriggerInvites") >> .splitter(body()) // This line causes a compilcation problem on >> the next when() or otherwise() >> .to("jms:queue:unmarshalledEventsQueue")) >> .when(isFlightUpdate) >> >> If I take out the splitter() line above, all works fine and I can have as >> many when() statements as I like. Is there a reason why this doesn't work? >> >> Thanks >> Andrew >> >> >> > > -- > View this message in context: > http://www.nabble.com/DSL-Content-Router-interrupted-with-splitter%28%29-or-multicast%28%29-tp22347983p22348709.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/