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 <[email protected]> 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.