I'm running version 0.9.3 and the session.close() actually does not seem
to end the session immediately. We're using session.close() for idle
timeouts, and it works great for well-behaved clients. However, for
clients who don't read the server responses and thus for whom mina is
queuing up write data, the session.close is not closing the session. I
assumed it was because mina was processing the queued events in order
and therefore the CloseFuture would not be acted upon until the writes
had completed.

Again, this is with 0.9.3, so maybe things have changed by 1.1 or maybe
my assumptions are wrong about why the session.close() command isn't
immediate for badly behaved clients.

-----Original Message-----
From: Mladen Turk (JIRA) [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 23, 2007 7:24 AM
To: dev@mina.apache.org
Subject: [jira] Commented: (DIRMINA-382) Provide a close() method that
doesn't close the connection until all messages are written.


    [
https://issues.apache.org/jira/browse/DIRMINA-382?page=com.atlassian.jir
a.plugin.system.issuetabpanels:comment-tabpanel#action_12498196 ] 

Mladen Turk commented on DIRMINA-382:
-------------------------------------

Why not add shutdown() instead parameterized close.
It would also allow adding timeout (someting like lingering on standard
sockets)


> Provide a close() method that doesn't close the connection until all
messages are written.
> ----------------------------------------------------------------------
> --------------------
>
>                 Key: DIRMINA-382
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-382
>             Project: MINA
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Trustin Lee
>             Fix For: 2.0.0-M1
>
>
> Currently, IoSession.close() closes the connection immediately no
matter how many messages are not written yet.  Calling close() will
discard all pending writes and close the connection immediately.
Although we can add a IoFutureListener.CLOSE to the last WriteFuture, it
will be more convenient to provide another close method that doesn't
close the connection until all message are written.  
> Adding a boolean parameter to the close method will be fine. Of
course, original method without a parameter will be retained.
> To implement this, the implementation should satisfy the following
condition.
> 1) IoSession.isClosing() must return true after close() is called no
matter what boolean parameter is specified.
> 2) The session should be closed after all messages are written out.

--
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