hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brad <b...@javawork.co.uk>
Subject Re: Too many open sockets
Date Fri, 16 Nov 2007 11:25:56 GMT
Oleg,

thanks for your reply.

So if I understand correctly, what that is implying in this situation
is that there is a limit to how many sockets can be opened and closed
in a given time period?

If that's the case, then fair enough but I was hoping there would  be
some way to make commons-http re-use a socket. That seemed to be the
whole point of the recycle() method. The documentation seemed to be
suggesting that it would use keep-alives to avoid opening a new socket
every time. Is there any way around this?

Brad.

On Nov 16, 2007 11:03 AM, Oleg Kalnichevski <olegk@apache.org> wrote:
>
>
> On Fri, 2007-11-16 at 10:54 +0000, Brad wrote:
> > Hi,
> >
> > I'm using http-commons to make some calls to a http server. There are
> > situations where I may have to make a large volumen of calls in a
> > short period of time.
> >
> > My problem is that http-commons seems to be eating connections,
> > resulting in eventually getting this error
> >
> >           java.net.BindException: Address already in use: connect
> >
> > A quick netstat from the command prompt shows thousands of sockets
> > with status TIME_WAIT.
> >
> > Here's my simple test code:
> >
> >         public void testHttpGet() {
> >
> >                 HttpClient client = new HttpClient();
> >                 GetMethod get = new GetMethod();
> >
> >                 try {
> >
> >                         for (int i = 0; i < 10000; i++) {
> >
> >                                 get.setPath("http://localhost:8081/");
> >                                 int code = client.executeMethod(get);
> >                                 byte[] responseBody =  get.getResponseBody();
> >                                 get.recycle();
> >                                 System.out.println(i + ", response: " + code);
> >                         }
> >
> >                 } catch (Exception e) {
> >                         e.printStackTrace();
> >                 } finally {
> >                         get.releaseConnection();
> >
> >                 }
> >         }
> >
> > I checked the tutorial and I've made sure to read the response body. I
> > call recycle() in the loop and yet it still uses a new connection
> > every time.
> >
> > All help very much appreciated.
> >
>
> Please see item 4 in the micro FAQ below
>
> http://tangentsoft.net/wskfaq/articles/debugging-tcp.html
>
> Oleg
>
>
> > Cheers,
> > Brad.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Mime
View raw message