camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Mina async route not working
Date Wed, 03 Mar 2010 06:52:58 GMT
On Wed, Mar 3, 2010 at 7:39 AM, Willem Jiang <willem.jiang@gmail.com> wrote:
> Claus Ibsen wrote:
>>
>> On Wed, Mar 3, 2010 at 7:00 AM, anandsk <skusma@arccorp.com> 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.
>>>
>>
>> I think you need to split it into 2 routes then. One for sending, and
>> the other for listening for responses.
>>
>
> I just wandering, how can the two routes share the same Mina session ?

They can't, but it can be 2 request only message styles.

Otherwise he can always code it himself using the Mina API directly.

Or maybe look at Netty which is more in active development than Apache
Mina, which seems to newer get their act together and get 2.0 done.
It has been more than 2,5 years in development. Which makes me start
to loose faith in Mina.

Ashwin Karpe is working on a camel-netty component.





>
>>
>>
>>> 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
>>>>>>
>>>>>>
>>>>
>>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Mina-async-route-not-working-tp27757690p27764563.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

Mime
View raw message