[ 
https://issues.apache.org/jira/browse/DIRMINA-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Trustin Lee resolved DIRMINA-263.
---------------------------------

    Resolution: Invalid
      Assignee: Trustin Lee

Marking this issue as 'invalid' because it's not an issue but a question.
I am sorry for the unanswered questions.  Please let us know if you still have 
the same question.

> Partially read messages
> -----------------------
>
>                 Key: DIRMINA-263
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-263
>             Project: MINA
>          Issue Type: Wish
>    Affects Versions: 0.9.5
>         Environment: win xp
>            Reporter: Hooman Valibeigi
>         Assigned To: Trustin Lee
>
> assume we have a client that sends its requests consecutively ()
> I tested it using MINA and I found that MINA only notifies the server side 
> IoHandler one time for a sequence of requests
> I mean when the client sends 3 consecutive requests the server's 
> messageReceived method will be invoked only once
> (a Request in my opinion is a package containing a request ID and data 
> related to the request)
> so my question is how should we handle the ByteBuffer that contains more than 
> one requests ?
> the other IoSessions should not wait while the server is processing the 
> interminable requests of a client
> in other word the server becomes busy while processing all sent and incoming 
> requests of one client and may never finish
> even If it responds to the first buffered request in ByteBuffer and leave the 
> remaining requests in hope that they will remain intact for the next 
> messageReceived invocation from the same IoSession, it is wrong, since any 
> remaining byte in ByteBuffer will be released after the messageReceived 
> method is finished, whether we read them or not
> so we should read all the incoming bytes or we will lose them
> I ask you what is the correct solution to handle these kind of requests ?
> in short, I want to process one request per messageReceived invocation and I 
> expect that IoHandler will notify me again if I have unread data from 
> previous messageReceived calls
> this question may be translated in other way as below
> when is messageReceived invoked ?
> - when the selecetor selects a socket which is readable ?
> - so what happens if I dont process all the available data (all requests) 
> within the ByteBuffer in one shot ?
> - also another question arise. is there any chance that the ByteBuffer 
> parameter from messageReceived, does not have the full request data ? I mean 
> is it possible that a request arives in several messageReceived calls ? I ask 
> this because a ByteBuffer has a limit so It brings in mind that we may 
> encounter several problems
> such that
> - a ByteBuffer containing one partial request
> - a ByteBuffer containing more than one request (all complete)
> - a ByteBuffer containing more than one request (but the last one is partial)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to