You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Niklas Therning (JIRA)" <ji...@apache.org> on 2006/08/25 10:31:25 UTC

[jira] Assigned: (DIRMINA-246) MINA (0.9.4) blocks with unbindAll while serveral clients were connected

     [ http://issues.apache.org/jira/browse/DIRMINA-246?page=all ]

Niklas Therning reassigned DIRMINA-246:
---------------------------------------

    Assignee: Niklas Therning

> MINA (0.9.4) blocks with unbindAll while serveral clients were connected
> ------------------------------------------------------------------------
>
>                 Key: DIRMINA-246
>                 URL: http://issues.apache.org/jira/browse/DIRMINA-246
>             Project: Directory MINA
>          Issue Type: Bug
>    Affects Versions: 0.9.4
>         Environment: Windows XP, JDK 1.5.06
>            Reporter: Frederic Bregier
>         Assigned To: Niklas Therning
>         Attachments: 2dumps.txt
>
>
> After a post on the mailing list, as asked, I post a JIRA request:
> I wanted to offer a function to shutdown gracefully the server,
> that is to say that the server doesn't accept new connection,
> but does let already connected client to finished correctly
> their session (which are multi messages related).
> In the beginning I used:
> - setDisconnectOnUnbind(false)
> - unbindAll()
> - wait in my business logic that all already connected users shutting down
> - setDisconnectOnUnbind(true)
> - unbindAll()
> I've got a lot of freeze (using 6 clients making a lot of messages)
> in either the first or the second unbindAll().
> So I simplify like this:
> - I am waiting in my business logic that all already connected users shutting
>   down and does not accept new connection by hand (business logic).
>   To make that, when I have the global static boolean shutdown as True,
>   every new connexion are immediately closed by the server.
>   Also, every pending connexion will finished their session, and when
>   finished, the server also closed the connexion.
>   The session used to send the shutdown order is closed immediately
>   after receiving the order.
> - setDisconnectOnUnbind(true)
> - unbindAll()
> I still have easily a freeze in the server during the call to
> unbindAll().
> - If I have only 1 client, unbindAll is never blocking.
> - If I have 2 to 6 clients, making their stuff, they all disconnected
>  correctly from the server (the server is closing the session itself).
>  I saw that every clients are getting correctly the closed event.
>  But the server often blocks during the call of unbindAll().
> I am no able at this time to see where is the problem in MINA.
> Everything seems ok for me from the point of vue of a programmer
> using MINA. But I surely make some mistakes since it seems
> that I am the only one to have this problem.
> Could it be related to the fact that this is the server that is
> forcing the close of the session ?
> The only thing I can tell now is that it is blocling during the
> call of unbindAll() in the server part.
> I attached two thread dumps in one file : the first is when the server is 
> completely started and functionnal, the second after it blocks.
> I generate these dump using jdb since I was not able to generate them directly).
> I hope this can clarify where is the problem.
> Frederic Bregier

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira