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/

Reply via email to