camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ashwin Karpe <aska...@progress.com>
Subject Re: Mina async route not working
Date Wed, 03 Mar 2010 13:48:31 GMT

Hi,

Anand, it seems like you have sync set to true for the consumer, thereby
making it a In-Out exchange driven consumer (i.e request/response).

However your producer is set with sync=false thereby making it an in-only.
This will cause the response to fall through the cracks and cause connection
closure on the consumer. This should hopefully fix it for you.

BTW, as Claus mentioned, I am working on a Camel Netty component (coding is
done, currently writing tests and adding SSL support). I will bring it to
the community in the next 2-3 weeks after due testing and cleanup.

Cheers,

Ashwin...


anandsk wrote:
> 
> Hi, Thanks for the response.  I can use only one thread for sending
> messages becuase I can have only one TCP connection to external server. if
> I change sync flag to true then that thread is going to wait till the
> response comes back before it sends another message right?. I want to be
> able to send multiple requests one after the other without waiting for a
> response. responses need to be processed asynchronously.So, I can't set
> sync flag to true, is there any other solution to my problem.
>  
> Thanks,
> Anand
> 
> willem.jiang wrote:
>> 
>> Hi I think you need to change the route like this
>> 
>> from("mina:tcp://localhost:6202?textline=true&sync=true").process(new
>> Processor() {
>> 		    public void process(Exchange exchange) throws Exception {
>> 		        String body = exchange.getIn().getBody(String.class);
>> 				Thread.sleep(30000);
>> 		        exchange.getOut().setBody("Bye 1" + body);
>> 		    }
>> 		});
>> 
>> 		from("file:///test/test/response")
>> 		.convertBodyTo(String.class)
>> 		.toAsync("mina:tcp://localhost:6202?sync=true&textline=true",10)
>> 		.to("log:+++ reply++++");
>> To make sure the mina client can get the right response.
>> 
>> Willem
>> 
>> anandsk wrote:
>>> Thanks. yes, I have seen the examples and I modified my code. but it
>>> still
>>> doesn't deliver reply asyncronously.
>>> I am thinking may be camel Mina's sync option may be conflicting with
>>> async
>>> route. Please see my code below.
>>> 
>>> 		from("mina:tcp://localhost:6202?textline=true&sync=true").process(new
>>> Processor() {
>>> 		    public void process(Exchange exchange) throws Exception {
>>> 		        String body = exchange.getIn().getBody(String.class);
>>> 				Thread.sleep(30000);
>>> 		        exchange.getOut().setBody("Bye 1" + body);
>>> 		    }
>>> 		});
>>>  
>>> 		from("file:///test/test/response")
>>> 		.convertBodyTo(String.class)
>>> 		.toAsync("mina:tcp://localhost:6202?sync=false&textline=true",10)
>>> 		.to("log:+++ reply++++"); 
>>> 
>>> 
>>> 
>>> Claus Ibsen-2 wrote:
>>>> Have you seen the 2 asyncTo examples which are listed here?
>>>> http://camel.apache.org/examples.html
>>>>
>>>>
>>>>
>>>> On Tue, Mar 2, 2010 at 5:10 PM, anandsk <skusma@arccorp.com> wrote:
>>>>> Hi,
>>>>> I tried this route with camel 2.2 and it is not forwarding response to
>>>>> end
>>>>> point defined in async "direct:response". also I see the logs showing
>>>>> that
>>>>> mina producer receiving the message back from tcp server but it is not
>>>>> forwarding them to async endpoint. am I doing this wrong.
>>>>>
>>>>> Thanks,
>>>>> Anand
>>>>>              
>>>>>  from("mina:tcp://localhost:6202?textline=true&sync=true").process(new
>>>>> Processor() {
>>>>>                    public void process(Exchange exchange) throws
>>>>> Exception {
>>>>>                        String body =
>>>>> exchange.getIn().getBody(String.class);
>>>>>                        //Thread.currentThread();
>>>>>                                Thread.sleep(1000);
>>>>>                        exchange.getOut().setBody("Bye 1" + body+"\n");
>>>>>                        //exchange.getOut().setBody("Bye 2" +
>>>>> body+"\n");
>>>>>                    }
>>>>>                });
>>>>>
>>>>>
>>>>>                //from("jms:test.Camel1")
>>>>>                from("file:///test/test/response")
>>>>>                .convertBodyTo(String.class).threads(1)
>>>>>                //.to("log:jms.queue.message")
>>>>>                //.bean(smooks.StatusRequestMessageHandler.class)
>>>>>                //.setHeader(MinaEndpoint.HEADER_MINA_IOSESSION,
>>>>> expression)
>>>>>               
>>>>> .to("mina:tcp://localhost:6202?textline=true&sync=true")
>>>>>                .toAsync("direct:response",1)
>>>>>                .to("log:direct");
>>>>>
>>>>>                        from("direct:response")
>>>>>                        .to("log:jms.queue.message");
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/Mina-async-route-not-working-tp27757690p27757690.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
>>>>
>>>>
>>> 
>> 
>> 
>> 
> 
> 


-----
--- 
Ashwin Karpe, Principal Consultant, PS - Opensource Center of Competence 
Progress Software Corporation
14 Oak Park Drive
Bedford, MA 01730
--- 
+1-972-304-9084 (Office) 
+1-972-971-1700 (Mobile) 
---- 
Blog: http://opensourceknowledge.blogspot.com/


-- 
View this message in context: http://old.nabble.com/Mina-async-route-not-working-tp27757690p27768427.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message