On Thu, Aug 4, 2011 at 8:29 AM, Sam Crawford <[email protected]> wrote: > No. What you've done with cm.setMaxTotal(100) is set 100 maximum > connections across the entire connection manager. So, with that alone, > you could only reach 100 concurrent connections if you were hitting at > least 50 unique hosts. > > If you want 100 connections to a single host and you were only making > connections to that one host, then you could use something simple like > this: > > cm.setMaxTotal(100); > cm.setDefaultMaxPerRoute(100);
Thanks! so if I have 2 unique VIP that I use in HttpGet/Post etc. for shared HttpClient then I use cm.setMaxTotal(2) and cm.setDefaultMaxPerRoute(100); > > Thanks, > > Sam > > On 4 August 2011 16:18, Mohit Anchlia <[email protected]> wrote: >> 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] >> >> > > --------------------------------------------------------------------- > 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]
