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.

Reply via email to