Kelly Wiles wrote:
I changed the code to do the following when the disconnect method is called in my IoHandlerAdapter.
<snip/>

The "here 1" and 2 are printed then a 60 second pause.
Then the command shell prompt appears.
The "here 3" and 4 are not printed.

So the call to cf.awaitUninterruptibly(CONNECT_TIMEOUT); blocks for 60 seconds.

Do I need to do the connector.dispose() before the do the wait?
No, certainly not.
I am probably doing stuff out of order I am thinking.
Nope, it's correct.

Now, looking at MINA's code, I see no place you can be blocked in for 60 seconds, except if your system time is not giving you a bad value. We have fixed a potential bug in await0( timeout ), but I don'ts ee how it can impact your code.

Hav you done a thread dump while your client is waiting for 60 seconds ? I would like to see which thread is blocking.

Also please give us the OS and java version.

Thanks !

Kelly

Emmanuel Lecharny wrote:
Kelly Wiles wrote:
Hi

When I close a session using the call
   session.close(true).awaitUninterruptibly(3000);

The session does not close for 60 seconds.
What do you mean ? Have you checked the CloseFuture.isClosed() result ?
CloseFuture closeFuture = session.close(true);
closeFuture.awaitUninterruptibly(3000);

if (closeFuture.isDone()) {
 // The session is closed...
}

Is this the right way to shutdown a connection?
Yes, it will close the session.

I am trying to send two messages to a server then once the responses have returned I shutdown my client program. But the client program does not quit for 60 seconds.
You also have to dispose the Connector. Closing the session won't be enough.

------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 8.5.339 / Virus Database: 270.12.53/2156 - Release Date: 06/05/09 06:24:00




--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to