Am using vm already.
Claus Ibsen-2 wrote: > > Hi > > Try to do it in pure Camel, eg using seda, direct, vm etc and not the > NMR or SMX. > > > On Thu, Mar 4, 2010 at 2:38 PM, lekkie <[email protected]> wrote: >> >> I saw this and I completely understand it. >> my problem is not that router1 is waiting for initial request to complete >> (I'd like it to wait as my request is an InOut), but, I will like it to >> accept another request and respond to the appropriate endpoint (the one >> that >> initiated the request). That does not seem to be happening. >> >> What is happening is that, router1 receives an initial request (and keep >> waiting for a response - which is fine), and receives another request and >> sends the output message from initial request as a response to the second >> request. Thats confusing, but it was what I got when I turned on the >> trace >> on the router. >> >> kr. >> >> >> >> >> Claus Ibsen-2 wrote: >>> >>> Well if you take your time to read the VM wiki page, you will notice >>> it extends the SEDA which offers options to configure the blocking >>> >>> http://camel.apache.org/vm >>> http://camel.apache.org/seda.html >>> >>> You can use waitForTaskToComplete to control the blocking behavior >>> >>> >>> On Thu, Mar 4, 2010 at 2:17 PM, lekkie <[email protected]> wrote: >>>> >>>> Are you saying that you route to "route1" 2 times? eg kinda like in a >>>> circle? >>>> >>>> You are right. The idea is to make router1 (which is a dynamic >>>> recipient >>>> EIP) to take messages and route to whichever endpoint. It is suppose to >>>> be a >>>> central endpoint. Collect msges route to the nxt endpoint and wait to >>>> collect response and send to original requester. >>>> >>>> I didnt expect the router to block when it has not got response from >>>> initial >>>> request (which is why I used vm). Is there a non blocking endpoint that >>>> can >>>> do this? >>>> >>>> I tried this and it worked. >>>> >>>> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >>>> trace="true"> >>>> <route> >>>> <from uri="nmr:consumerEndPoint"/> >>>> <loadBalance ref="roundRobinRef"> >>>> <to uri="vm:router1"/> >>>> <to uri="vm:router2"/> >>>> </loadBalance> >>>> </route> >>>> </camelContext> >>>> >>>> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring" >>>> trace="true"> >>>> <route> >>>> <from uri="nmr:someIntermediateEndPoint "/> >>>> <loadBalance ref="roundRobinRef"> >>>> <to uri="vm:router2"/> >>>> <to uri="vm:router1"/> >>>> </loadBalance> >>>> </route> >>>> </camelContext> >>>> >>>> >>>> >>>> Regards. >>>> >>>> >>>> Claus Ibsen-2 wrote: >>>>> >>>>> On Thu, Mar 4, 2010 at 8:50 AM, lekkie <[email protected]> wrote: >>>>>> >>>>>> I have a use case that requires a certain endpoint to be re-used. >>>>>> Lets >>>>>> say >>>>>> the re-usable endpoint is called router1. >>>>>> >>>>>> The flow below causes a blockage on my route and leads to camel >>>>>> throwing >>>>>> exception. >>>>>> >>>>>> consumerEndPoint -> router1 -> someIntermediateEndPoint -> router1`-> >>>>>> someProviderEndpoint ........ >>>>>> >>>>> >>>>> Are you saying that you route to "route1" 2 times? eg kinda like in a >>>>> circle? >>>>> >>>>> And what does your route1 recipient list do? >>>>> >>>>> All together I suggest to make your use case as simple as possible, to >>>>> get something working. >>>>> And then build from there. >>>>> >>>>> And you can change the MEP if you need. >>>>> >>>>>> >>>>>> This flow is an InOut exchange flow. What is happening is that, >>>>>> because >>>>>> the >>>>>> first message passes through router1 and it is still waiting for a >>>>>> response, >>>>>> router1` will wait forever. I think camel throws the exception below >>>>>> >>>>>> 08:29:12,569 | INFO | oLogger-thread-1 | Tracer >>>>>> | >>>>>> rg.apache.camel.processor.Logger 88 | >>>>>> c66c0dd3-657a-4508-9295-c6f6b6d64a02 >>>>>>>>> (route20) OnException[ExchangeTimedOutException] --> transform[ >>>>>> >>>>>> 08:29:12,569 | ERROR | oLogger-thread-1 | DefaultErrorHandler >>>>>> | >>>>>> rg.apache.camel.processor.Logger 202 | Failed delivery for >>>>>> exchangeId: >>>>>> c66c0dd3-657a-4508-9295-c6f6b6d64a02. Processed by failure processor: >>>>>> Channel[Transform( >>>>>> >>>>>> 08:29:33,653 | INFO | saction-thread-1 | Tracer >>>>>> | >>>>>> rg.apache.camel.processor.Logger 88 | >>>>>> c36c48b5-e18d-498e-9fed-b340e0baeb05 >>>>>>>>> vm://router1 --> OnException[ExchangeTimedOutException] <<< >>>>>> Pattern:InOut, Headers:{operationName=null, nmrMessage=Message []}, >>>>>> BodyType:String, Body: >>>>>> >>>>>> 08:29:33,653 | INFO | saction-thread-1 | Tracer >>>>>> | >>>>>> rg.apache.camel.processor.Logger 88 | >>>>>> c36c48b5-e18d-498e-9fed-b340e0baeb05 >>>>>>>>> (route23) OnException[ExchangeTimedOutException] --> transform[ >>>>>> >>>>>> 8:29:33,653 | ERROR | saction-thread-1 | DefaultErrorHandler >>>>>> | >>>>>> rg.apache.camel.processor.Logger 202 | Failed delivery for >>>>>> exchangeId: >>>>>> c36c48b5-e18d-498e-9fed-b340e0baeb05. Processed by failure processor: >>>>>> Channel[ >>>>>> >>>>>> >>>>>> Loadbalancer is not resolving this as it still ends up sending to >>>>>> same >>>>>> router. >>>>>> >>>>>> See my camel snippets below: >>>>>> >>>>>> <camelContext id="camel" >>>>>> xmlns="http://camel.apache.org/schema/spring" >>>>>> trace="true"> >>>>>> <route> >>>>>> <from uri="nmr:consumerEndPoint"/> >>>>>> <loadBalance ref="roundRobinRef"> >>>>>> <to uri="vm:router1"/> >>>>>> <to uri="vm:router2"/> >>>>>> </loadBalance> >>>>>> </route> >>>>>> </camelContext> >>>>>> >>>>>> <camelContext id="camel" >>>>>> xmlns="http://camel.apache.org/schema/spring" >>>>>> trace="true"> >>>>>> <route> >>>>>> <from uri="nmr:someIntermediateEndPoint "/> >>>>>> <loadBalance ref="roundRobinRef"> >>>>>> <to uri="vm:router1"/> >>>>>> <to uri="vm:router2"/> >>>>>> </loadBalance> >>>>>> </route> >>>>>> </camelContext> >>>>>> >>>>>> <camelContext id="camel" >>>>>> xmlns="http://camel.apache.org/schema/spring" >>>>>> trace="true"> >>>>>> <route> >>>>>> <from uri="nmr:someProviderEndPoint"/> >>>>>> <to uri="mock:whatever"/> >>>>>> </route> >>>>>> </camelContext> >>>>>> >>>>>> <camelContext id="camel" >>>>>> xmlns="http://camel.apache.org/schema/spring" >>>>>> trace="true"> >>>>>> <route> >>>>>> <from uri="vm:router1"/> >>>>>> <bean ref="router1ProcessorRecipientList" >>>>>> method="route"/> >>>>>> </route> >>>>>> </camelContext> >>>>>> >>>>>> <camelContext id="camel" >>>>>> xmlns="http://camel.apache.org/schema/spring" >>>>>> trace="true"> >>>>>> <route> >>>>>> <from uri="vm:router2"/> >>>>>> <bean ref="router2ProcessorRecipientList" >>>>>> method="route"/> >>>>>> </route> >>>>>> </camelContext> >>>>>> >>>>>> >>>>>> >>>>>> What EIP would be the most appropriate for this scenario? >>>>>> >>>>>> kr. >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/Blocked-endpoints%3A-What-EIP-%27d-be-most-appropriate--tp27777606p27777606.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 >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/Blocked-endpoints%3A-What-EIP-%27d-be-most-appropriate--tp27777606p27780598.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 >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/Blocked-endpoints%3A-What-EIP-%27d-be-most-appropriate--tp27777606p27780828.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 > > -- View this message in context: http://old.nabble.com/Blocked-endpoints%3A-What-EIP-%27d-be-most-appropriate--tp27777606p27818866.html Sent from the Camel - Users mailing list archive at Nabble.com.
