oops sorry, and sorry for the delayed answer.
I am using mina-2.0.0-M4
here pseudo code of the code I am using:
static final Executor executor = Executors.newCachedThreadPool(new
DaemonThreadFactory("controller"));
static final SimpleIoProcessorPool pool = new
SimpleIoProcessorPool(NioProcessor.class);
NioSocketAcceptor _acceptor;
public void init()
{
_acceptor = new NioSocketAcceptor(executor, pool);
_acceptor.getFilterChain().add...
_acceptor.getFilterChain().add...
_acceptor.getFilterChain().addLast("threadPool", new
ExecutorFilter(executor, IoEventType.MESSAGE_RECEIVED));
_acceptor.setHandler(new ControllerHandler());
// do not allow multiple servers to bind on the same port
_acceptor.setReuseAddress(false);
// close all connections on unbind
_acceptor.setCloseOnDeactivation(true);
ExceptionMonitor.setInstance(new ExceptionMonitor()..);
}
public void start()
{
int port = startPort;
boolean ok = false;
while (!ok && port < maxPort)
{
try
{
_acceptor.bind(new InetSocketAddress(port));
ok = true;
}
catch (Exception ex)
{
ex.printStackTrace();
Thread.sleep(500);
port++;
}
}
}
public void stop()
{
if (_acceptor != null && _acceptor.isActive())
if (!_acceptor.isDisposing() && !_acceptor.isDisposed())
{
_acceptor.unbind();
_acceptor.dispose();
}
}
public void main
{
init()
while (! shutdown)
{
start()
..... // this may take minutes to 24 hours
stop()
}
}
Apart of the exception I already mentioned I am also getting randomly
(once a week for a 24x7 application)
INFO|12848/0|09-09-03 02:59:49|java.io.IOException: An operation was
attempted on something that is not a socket
INFO|12848/0|09-09-03 02:59:49| at
sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
INFO|12848/0|09-09-03 02:59:49| at
sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)
INFO|12848/0|09-09-03 02:59:49| at
org.apache.mina.transport.socket.nio.NioSocketAcceptor.accept(NioSocketAcceptor.java:218)
INFO|12848/0|09-09-03 02:59:49| at
org.apache.mina.transport.socket.nio.NioSocketAcceptor.accept(NioSocketAcceptor.java:49)
INFO|12848/0|09-09-03 02:59:49| at
org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.processHandles(AbstractPollingIoAcceptor.java:472)
INFO|12848/0|09-09-03 02:59:49| at
org.apache.mina.core.polling.AbstractPollingIoAcceptor$Acceptor.run(AbstractPollingIoAcceptor.java:405)
INFO|12848/0|09-09-03 02:59:49| at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:65)
INFO|12848/0|09-09-03 02:59:49| at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
INFO|12848/0|09-09-03 02:59:49| at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
INFO|12848/0|09-09-03 02:59:49| at java.lang.Thread.run(Thread.java:619)
- Ron
Emmanuel Lecharny wrote:
rzo wrote:
Mina: 3.1.0
MINA last version is 2.0.0-M6 ...