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]

Reply via email to