Forgive the poor wording - I meant to say "The HTTP/1.1 RFC says you should make _at most_ 2 connections per target host".
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]
