On Thu, Aug 4, 2011 at 7:05 AM, Sam Crawford <[email protected]> wrote: > Forgive the poor wording - I meant to say "The HTTP/1.1 RFC says you > should make _at most_ 2 connections per target host". > Sorry I am little confused. In my example I thought I was creating 100 connections to a particular host by setting setMaxTotal to 100. > > On 4 August 2011 15:03, Sam Crawford <[email protected]> wrote: >> Yes, absolutely. The HTTP/1.1 RFC says you should make 2 connections >> per host, and HttpClient obeys that strictly out-of-the-box (side >> note: web browsers do not anymore). >> >> A 'route' in HttpClient is typically defined as protocol (HTTP/HTTPS) >> + host + port. I see there are some additional options in 4.1.x for >> tunneling, but the three I listed will be the primary ones. >> >> See section 2.8.4 in >> http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html. >> You'll want to change either the default max per route or the max for >> an individual route. >> >> Hope this helps, >> >> Sam >> >> >> On 4 August 2011 14:55, KARR, DAVID (ATTSI) <[email protected]> wrote: >>>> -----Original Message----- >>>> From: Russell Brown [mailto:[email protected]] >>>> Sent: Thursday, August 04, 2011 12:04 AM >>>> To: HttpClient User Discussion >>>> Subject: Re: Using ThreadSafeClientConnManager >>>> >>>> On 4 Aug 2011, at 01:18, Mohit Anchlia wrote: >>>> >>>> > I am trying to understand these 2: >>>> > >>>> > ClientConnectionManager cm = new ThreadSafeClientConnManager(); >>>> > cm.setMaxTotal(100); >>>> > HttpClient httpClient = new DefaultHttpClient(cm); >>>> > >>>> > Have couple of questions: >>>> > >>>> > 1) Can one httpClient object be shared accross multiple threads doing >>>> > post/get/delete/put requests? >>>> >>>> Yes. >>>> >>>> > 2) What happens in above case if there are more concurrent threads >>>> say >>>> > 200 than actual no. of connections? So what happens if 200 threads >>>> > trying to use httpClient object (shared). But we created only 100 >>>> > connections. Does it wait on .execute if all connections are busy? >>>> >>>> The thread attempting to acquire a connection blocks. If you have set a >>>> timeout then it blocks until the timeout is reached and an exception is >>>> thrown. >>>> >>>> Worth noting, in your above snippet the max connections per route will >>>> only be *2*. >>> >>> Sorry to the OP to hijack this question, but I'd like to understand a >>> little more about this. Is a "route" defined as the path to a particular >>> host? If all of my connections go to the same host, and I'll have numerous >>> threads trying to make that connection, do I need to change some default to >>> allow more than 2 connections per "route"? >>> >>>> > Can somone please help me understand? >>>> > >>>> > --------------------------------------------------------------------- >>>> > 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] > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
