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]

Reply via email to