Yes its very much applicable, but there is very little or no
documentation around this.

thanks
ashish

On Thu, Mar 4, 2010 at 4:20 PM, Brad Harvey <harve...@gmail.com> wrote:
> Is this still applicable?
>
> https://issues.apache.org/jira/browse/DIRMINA-92?focusedCommentId=12488311&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12488311
>
>
> Emmanuel Lecharny wrote:
>>
>> On 3/3/10 6:45 PM, Carlo Camerino wrote:
>>>
>>> HI,
>>>
>>> I would like to ask on how to handle request reply with apache mina.
>>> How do i ensure that when a thread sends a message, the thread gets
>>> the reply for that message.
>>> What happens is, at very highly concurrent scenario a thread gets the
>>> response of another thread.
>>>
>>
>> Mina is asynchronous. When you send a request, you can't simply wait for
>> the response. The Handler will get the response back and you have to
>> correlate this response with the request.
>>
>> Now, each connection is associated with a session, so if you send a
>> request in a session, you have the guarantee that this session will receive
>> the response.
>>
>> So one option is to store the response as an attribute of your session, so
>> that your thread can get it back later.
>>
>> Remains one issue : you don't want to poll the session until the response
>> is stored into it, otherwise you'll lose the benefit of using an
>> asynchronous framework.
>>
>> You have many ways to deal with this :
>> - you simply call session.read(), you'll get back a readFuture. You then
>> just have to wait() on it, and you'll get the response in the readFuture
>> when it's back
>> - store a callback in the session, and when the response arrives, the
>> callback will be called
>> - use a synchronization mechanism your main thread will wait on, and when
>> the message arrives, you release the lock so that the requester is waken up
>>
>> That's the three that come to my mind, but there are probably other
>> scenarii.
>>
>> Hope it helps
>>
>

Reply via email to