I'm not sure I understand - how can a SocketConnector create more than one connection? That would explain why the connections aren't getting close properly.
Maarten Bosteels wrote: > > 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. >> >> > > -- View this message in context: http://www.nabble.com/Using-a-bunch-of-connections-in-a-client--tp14514544s16868p14516950.html Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.
