Ashwin,

it is a simulated consumer in my code with a delay, actual consumer is a
external system which could take some time to send reply.
 
I am using "toasync" instead of "to"  so that I don't loose message. are we
saying that option sync=false doesn't work in combination with "toasync"?.

Thanks for working on a new framework. I am using this for a production app,
so I don't have much time to  wait and switch to a new tcp frameworks.

Thanks,
Anand

Ashwin Karpe wrote:
> 
> 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 <sku...@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
>>>>>
>>>>>
>>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 

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

Reply via email to