Hi Aneel,

try adding these two lines:

SocketSessionConfig config = (SocketSessionConfig) acceptor.getSessionConfig
();
config.setReuseAddress(true);

This will set reuseAddress true for all accepted sockets.

Maarten

On 5/25/07, Aneel Nazareth <[EMAIL PROTECTED]> wrote:

I've been having a problem that I thought I knew how to resolve: If I
stop my Mina (1.1.0) server when it has clients connected, and then try
to immediately restart it, I get a BindException complaining that the
address is already in use. When this happens, netstat shows some
connections in TIME_WAIT, but nothing listening on the port.

I thought that setReuseAddress would fix this problem, but it doesn't
seem to. Am I missing something?

Here's the piece of my code with the bind in question:

         // Prepare the configuration
         SocketAcceptorConfig config = new SocketAcceptorConfig();
         config.setReuseAddress( true );

         // Bind the the User Handler to its address
         userAcceptor = new SocketAcceptor();
         System.out.println( "Running " + userHandler + " on " +
this.userAddress );
         System.out.println("Reuse? " + config.isReuseAddress());
         userAcceptor.bind( this.userAddress.getSocketAddress(),
userHandler, config );


On stdout I see:

Running [EMAIL PROTECTED] on
doomsong.shockwave.com:20000
Reuse? true


But I get:

java.net.BindException: Address already in use
         at sun.nio.ch.Net.bind(Native Method)
         at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
         at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java
:59)
         at
org.apache.mina.transport.socket.nio.SocketAcceptor.registerNew(
SocketAcceptor.java:400)
         at
org.apache.mina.transport.socket.nio.SocketAcceptor.access$900(
SocketAcceptor.java:55)
         at
org.apache.mina.transport.socket.nio.SocketAcceptor$Worker.run(
SocketAcceptor.java:235)
         at
org.apache.mina.util.NamePreservingRunnable.run(
NamePreservingRunnable.java:43)
         at java.lang.Thread.run(Thread.java:595)

Reply via email to