Hi,

I am (for now) ignoring this line as it exists before exit and after:
tcp 0 0 127.0.0.1:56901 127.0.0.1:10027 TIME_WAIT

Apart from that the acceptor tcp ports have been closed (as there is no LISTEN in your second output.

As for the remaining session (the 2 listings are the same session):
If you use close(true) then the traditional close handshake (FIN --> FIN-ACK) does not take place in the correct way. Thus this would leave the port in the CLOSE_WAIT and other end FIN_WAIT2 state.

To solve this you normally use close(false) and wait for the session to shutdown gracefully. You could built in a sleep of a few seconds to give the system the time to close the sessions.

I haven't found a better way of doing this than doing a close(false) on all sessions, wait for example 30 seconds, and then a close(true). If anyone has a better way of handling this let me know as I cannot find a good way to handle these situations all over the internet.

Maybe Emnanuel has a good solution for this.

Hope my comments help you....

Regards,
Mike

Op 20-8-2012 13:56, Harakiri schreef:
Hello,

thanks for the suggestion - i tried it out but it does not seem to work - the 
server listener port is closed (this worked for me before) however the client 
who connects still has the sessions opened. After doing a close(true) on all 
sessions - and confirming with acceptor.getManagedSessions().size() that there 
are indeed 0 sessions left - im puzzled who is to blame - the mina server or 
postfix ?

Here is the netstat output after at least one session has been created
(there are 2 mina services running, at 10027 and 10028)

tcp        0      0 127.0.0.1:10027         0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:10028         0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:54751         127.0.0.1:10028         ESTABLISHED
tcp        0      0 127.0.0.1:56901         127.0.0.1:10027         TIME_WAIT
tcp        0      0 127.0.0.1:10028         127.0.0.1:54751         ESTABLISHED

after i shutdown the server and a debug output confirmed that the address was 
unbind, and 0 sessions are left - im left with this

tcp        1      0 127.0.0.1:54751         127.0.0.1:10028         CLOSE_WAIT
tcp        0      0 127.0.0.1:56901         127.0.0.1:10027         TIME_WAIT
tcp        0      0 127.0.0.1:10028         127.0.0.1:54751         FIN_WAIT2

the client is still connecting to 10027 and 28, and for some reason the server 
port for 10028 is still open but on fin_wait2.

I also tried adding  acceptor.dispose(); after unbind - no dice.

Any further ideas?

Thanks


Reply via email to