Hello Alex, 1) you can use one SocketConnector to create many connections
2) search the forum for "Too many open files" This thread might interest you: http://www.nabble.com/Too-many-open-files-to7521146s16868.html HTH Maarten On Dec 27, 2007 4:43 PM, stork <[EMAIL PROTECTED]> wrote: > > Hi, I'm trying to write a client that can utilize a set number of connections > using MINA trunk (mina-core-2.0.0-M1-20071221.061156-110.jar). > I'm using the netcat > (http://svn.apache.org/viewvc/mina/trunk/example/src/main/java/org/apache/mina/example/netcat/Main.java?view=markup) > as an example but I think I'm doing it wrong. I've never used NIO before so > this is all a bit confusing to me. > > What's the preferred way of managing a lot of nio client connections using > MINA? At the moment I'm just creating a lot of NioSocketConnector objects, > and connecting them. I have added an IoFutureListener to the ConnectFuture > obtained by calling nioSocketConnector.connect(InetSocketAddress): > public void operationComplete(IoFuture arg0) { > if(arg0 instanceof ConnectFuture) { > ConnectFuture cf = (ConnectFuture)arg0; > > debug("connected="+cf.isConnected()+",exc="+cf.getException()); > if(cf.isConnected()) { > /** > * Add the connected client to the clients > queue for processing > */ > boolean offered = > clients.offer((TyrClient)cf.getSession().getAttribute("CLIENT")); > if(!offered) > throw new RuntimeException("Couldn't > offer connected client."); > } else { > /** > * Add a new connection attempt to the > connection queue. > */ > boolean offered = > pending.offer(createNewConnection(TIMEOUT)); > if(!offered) > throw new RuntimeException("Couldn't > offer connection."); > } > } > } > > And I'm getting a lot of this: > [T:NioSocketConnector-75] connected=false,exc=java.net.ConnectException: > Connection refused > [T:NioSocketConnector-76] connected=false,exc=java.net.ConnectException: > Connection refused > [T:NioSocketConnector-77] connected=false,exc=java.net.ConnectException: > Connection refused > (Which is being expected since I'm just connecting to a closed port) > and then, > 7693 [NioSocketConnector-77] WARN > org.apache.mina.common.DefaultExceptionMonitor - Unexpected exception. > org.apache.mina.common.RuntimeIoException: Failed to initialize. > at > org.apache.mina.common.AbstractPollingIoConnector.<init>(AbstractPollingIoConnector.java:103) > at > org.apache.mina.common.AbstractPollingIoConnector.<init>(AbstractPollingIoConnector.java:61) > at > org.apache.mina.transport.socket.nio.NioSocketConnector.<init>(NioSocketConnector.java:52) > at tyr.Client.createNewConnection(RickRoller.java:46) > at tyr.Client.operationComplete(RickRoller.java:154) > at > org.apache.mina.common.DefaultIoFuture.notifyListener(DefaultIoFuture.java:302) > at > org.apache.mina.common.DefaultIoFuture.notifyListeners(DefaultIoFuture.java:287) > at > org.apache.mina.common.DefaultIoFuture.setValue(DefaultIoFuture.java:221) > at > org.apache.mina.common.DefaultConnectFuture.setException(DefaultConnectFuture.java:95) > at > org.apache.mina.common.AbstractPollingIoConnector.processSessions(AbstractPollingIoConnector.java:262) > at > org.apache.mina.common.AbstractPollingIoConnector.access$500(AbstractPollingIoConnector.java:41) > at > org.apache.mina.common.AbstractPollingIoConnector$Worker.run(AbstractPollingIoConnector.java:298) > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.io.IOException: Too many open files > at sun.nio.ch.IOUtil.initPipe(Native Method) > at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:49) > at > sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:18) > at java.nio.channels.Selector.open(Selector.java:209) > at > org.apache.mina.transport.socket.nio.NioSocketConnector.init(NioSocketConnector.java:69) > at > org.apache.mina.common.AbstractPollingIoConnector.<init>(AbstractPollingIoConnector.java:98) > ... 15 more > > > So what am I doing wrong? > > Thanks, > Alex. > -- > View this message in context: > http://www.nabble.com/Using-a-bunch-of-connections-in-a-client--tp14514544s16868p14514544.html > Sent from the Apache MINA Support Forum mailing list archive at Nabble.com. > >
