I'm using MINA 1.1.7 on android (2.2 emulator) to connect to my MINA
server implementation.

My client runner looks like this:

public void init() {

        connector = new SocketConnector();
        connectorConfig = new SocketConnectorConfig();
        connectorConfig.setConnectTimeout(SOCKET_CONNECT_TIMEOUT_IN_SECONDS);
        connector.setWorkerTimeout(WORKER_THREAD_TIMEOUT_IN_SECONDS);
        connectorConfig.getFilterChain().addLast("codec", new
ProtocolCodecFilter(getCodecFactory()));
    }

    public void run() {

        try {
            LOG.info("connecting to gateway host={}, port{}", host, port);
            ConnectFuture connectFuture = connector.connect(
                    new InetSocketAddress(host, port),
                    clientSessionHandler, connectorConfig);
            connectFuture.join(CONNECT_JOIN_TIMEOUT_IN_MS);
            IoSession session = connectFuture.getSession();
            LOG.debug("Connected: {}", session.getLocalAddress());
            CloseFuture closeFuture = session.getCloseFuture();
            closeFuture.join();

            LOG.debug("Session complete: {}", session.getLocalAddress());

        } catch (Exception e) {
            LOG.error("unable to initiate session", e);
        } finally {
        }
    }

The client is run using a ScheduledExecutorService and runs every
minute to connect to the server and do a message exchange. After
running for some period of time I get this:

W/System.err( 1406): java.net.SocketException: Too many open files
W/System.err( 1406):    at
org.apache.harmony.luni.platform.OSNetworkSystem.acceptSocketImpl(Native
Method)
W/System.err( 1406):    at
org.apache.harmony.luni.platform.OSNetworkSystem.accept(OSNetworkSystem.java:69)
W/System.err( 1406):    at
org.apache.harmony.luni.net.PlainSocketImpl.accept(PlainSocketImpl.java:126)
W/System.err( 1406):    at 
java.net.ServerSocket.implAccept(ServerSocket.java:281)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.ServerSocketChannelImpl$ServerSocketAdapter.accept(ServerSocketChannelImpl.java:247)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.ServerSocketChannelImpl$ServerSocketAdapter.access$100(ServerSocketChannelImpl.java:194)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:144)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.PipeImpl$SourceChannelImpl.accept(PipeImpl.java:120)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.PipeImpl.<init>(PipeImpl.java:49)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.SelectorProviderImpl.openPipe(SelectorProviderImpl.java:51)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.SelectorImpl.<init>(SelectorImpl.java:141)
W/System.err( 1406):    at
org.apache.harmony.nio.internal.SelectorProviderImpl.openSelector(SelectorProviderImpl.java:58)
W/System.err( 1406):    at java.nio.channels.Selector.open(Selector.java:48)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketIoProcessor.startupWorker(SocketIoProcessor.java:93)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketIoProcessor.addNew(SocketIoProcessor.java:82)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketConnector.newSession(SocketConnector.java:360)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketConnector.processSessions(SocketConnector.java:295)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketConnector.access$800(SocketConnector.java:53)
W/System.err( 1406):    at
org.apache.mina.transport.socket.nio.SocketConnector$Worker.run(SocketConnector.java:383)
W/System.err( 1406):    at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
W/System.err( 1406):    at java.lang.Thread.run(Thread.java:1096)

As I understand it, I should be able to reuse the socketconnector. Is
there a reason that things aren't being cleaned up after the session?
Is there something else I need to configure? FWIW, I tried upgrading
to 2.0 in the past and ran into problems that noone was able to
resolve so that's really not an option for me unless the previous
issue I encountered has been fixed:

http://old.nabble.com/Problem-upgrading-from-1.1.7-to-2.0.0-RC1-td27989368.html#a27990787

Reply via email to