I am using the thread pool from Java 1.5 to do just that. The thread pool manages the requests; the connection pool in MultiThreadedConnectionManager manages the connections. I don't have the same problem you are seeing because I am using persistent connections. Is there a reason you want the connections closed after each method call?
--Steve -----Original Message----- From: Rajat Sharma [mailto:[EMAIL PROTECTED] Sent: Friday, March 24, 2006 3:54 PM To: HttpClient User Discussion Subject: RE: java.net.BindException when loadtesting.. Oleg, Can't we come up with a thread pool mechanism. So we can have a httpThreadPool interface on which the request can be executed. Something based on similar lines of concurrent package in java 1.5 .... Raj -----Original Message----- From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 22, 2006 10:49 AM To: HttpClient User Discussion Subject: Re: java.net.BindException when loadtesting.. On Wed, 2006-03-22 at 12:38 +0100, Ole Matzura wrote: > Hi all! > > I have a "strange" problem.. I'm running loadtests on a local IIS using > a MultiThreadedConnectionManager created as follows: > > MultiThreadedHttpConnectionManager connectionManager = new > MultiThreadedHttpConnectionManager(); > connectionManager.getParams().setDefaultMaxConnectionsPerHost( 500 ); > connectionManager.getParams().setMaxTotalConnections( 2000 ); > httpClient = new HttpClient(connectionManager); > > (i've tried lower values with the same results) > > My loadtest runs 10 parallell threads which create new PostMethods > containing a "Connection: close" header for each request. Well. Since you force connection close per each request, at some point your process may create more sockets than the OS can allocate enough local ports for. The fact that HttpClient called #close() on the java.net.Socket instance may not necessarily mean that the local port used by the socket can immediately be made available for a new socket Oleg > After each > request I call postMethod.releaseConnection().. (in a finally block) > > After about 3600 requests i get an exception when calling > httpClient.executeMethod( postMethod ); > > java.net.BindException: Address already in use: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) > at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) > at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) > at java.net.Socket.connect(Socket.java:507) > at java.net.Socket.connect(Socket.java:457) > at java.net.Socket.<init>(Socket.java:365) > at java.net.Socket.<init>(Socket.java:238) > at > org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.crea teSocket(DefaultProtocolSocketFactory.java:79) > at > org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.crea teSocket(DefaultProtocolSocketFactory.java:121) > at > org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:70 6) > at > org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpCon nectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321) > at > org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMe thodDirector.java:386) > at > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMetho dDirector.java:170) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3 96) > at > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3 24) > > running netstat from the command line shows a list of thousands of > active connections.. shouldn't these have been closed? IIS returns the > Connection: close header in the response. Why am I running out of > connections/sockets/ports/whatever? What am I doing wrong? Can I "force" > the closing of the requests some other way? > > thanks for any help! > > regards, > > Ole > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
