hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: NO_HTTP_RESPONSE_EXCEPTION
Date Wed, 18 Feb 2009 13:13:43 GMT
Joan Balagueró wrote:
> Hello Oleg,
> 
> I've been making some tests about the NoHttpResponseException problem, and I
> can't find any reason why HC4 gives some random errors with this exception.
> 

Joan

As I said this is _very_ unlikely to be a problem on the client side


> But I need your opinion about the following. I've made a very simple test
> sending a request to this "problematic" server. This is the code
> (simplified):
> 
> long start;
> 
> try
> {
>  (... Some operations ...)
> 	    
>   start = Calendar.getInstance().getTimeInMillis();
> 
>   this.objHttp.execute(objPost);
> 
>  (... Some operations ...)
> }
> catch (NoHttpResponseException nhre) 		  
> {
>  System.out.println("Time (ms) = " +
> (Calendar.getInstance().getTimeInMillis() - start));
> 
>  nhre.printStackTrace(); 
> }
> 
> 
> And this is the result in console:
> 
> Time (ms) = 2
> org.apache.http.NoHttpResponseException: The target server failed to respond
> (...)
> 
> 
> As you can see, the process just takes 2 ms. since we send the request until
> we receive the error. With this time of 2ms, my opinion is that the request
> is not sent and the execute method fails with this exception.
> 

I doubt this is the case. NoHttpResponseException can only be thrown by 
the HttpResponseParser after a request has been written to the 
connection socket.


> Keep in mind that I'm in Barcelona and I'm sending the request to a server
> located in Madrid, and I'm using an ADSL line shared with many other users.
> 
> But I'm not really sure. What do you think about this?
> 

I have nothing new to add. The problem is likely to occur because the 
connection gets dropped before the server is able to send back a 
response of any kind, either due to a problem on the server side, due to 
a firewall, ADSL modem issue or whatever. This does not seem to be an 
issue with HttpClient code.

Oleg


> Thanks,
> Joan.
> 
> 
> -----Mensaje original-----
> De: Oleg Kalnichevski [mailto:olegk@apache.org] 
> Enviado el: sábado, 07 de febrero de 2009 14:08
> Para: HttpClient User Discussion
> Asunto: Re: NO_HTTP_RESPONSE_EXCEPTION
> 
> sebb wrote:
>> On 06/02/2009, Oleg Kalnichevski <olegk@apache.org> wrote:
>>> Joan Balagueró wrote:
>>>
>>>> Thanks Oleg. It seems strange to me because HttpClient3 (sending
> requests
>>> to
>>>> the same server) never fails. I'll take a look at the code again and
> I'll
>>>> comment you something else.
>>>>
>>>>
>>>  I do not know why the server chokes on packets generated by HttpClient
> 4,
>>> but this is clearly a server side problem. The server should return a non
>>> 2xx response if something is not okay, not just drop the connection.
>>>
>>>  HTTP/1.0 can be a problem or absence of User-Agent header. Whatever. At
> any
>>> rate the server is broken.
>>>
>>>
>>>
>>>> Just another question. When I modify a connection or response timeout
>>>> setting another value (for example, from 5000 to 2000) HttpClient4
> applies
>>>> this new value correctly (as expected, obviously). But not the same with
>>>> maxConnections. If I set MaxConnections from 100 to 1 using
>>>> ConnManagerParams.setMaxTotalConnections, then:
>>>>
>>>> DefaultHttpClient object --> DefaultParams --> parameters -->
>>>> http.conn-manager.max-total=1 --> OK!
>>>>
>>>> But DefaultHttpClient object --> connManager --> connectionPool -->
>>>> maxTotalConnections still to 100 --> BAD!
>>>>
>>>> And if I send 50 simultaneous request, HttpClient processes all of them
>>> even
>>>> with maxTotalConnections to 1.
>>>>
>>>> Is this a bug? Or after
>>> "ConnManagerParams.setMaxTotalConnections" I must
>>>> set the new "param" values to the HttpClient object with
>>>> "this.objHttp.setParams(set the "params" object with the new value of
>>>> MaxConnections)"?
>>>>
>>>>
>>>  This happens because the connection manager does not reset the existing
>>> connection pools for established routes. One can see this as a bug or a
>>> 'feature' as one can look at it from different perspectives. To me this
> is
>>> an expected behavior. MaxTotalConnections parameter is expected to be set
> at
>>> the start up time and to not mutate afterwards.
>> Maybe this could be added to the Javadoc?
>>
> 
> Opened a JIRA for this issue
> 
> https://issues.apache.org/jira/browse/HTTPCLIENT-823
> 
> Oleg
> 
>>>  Oleg
>>>
>>>
>>>
>>>> Thanks,
>>>>
>>>> Joan.
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>>  To unsubscribe, e-mail:
>>> httpclient-users-unsubscribe@hc.apache.org
>>>  For additional commands, e-mail:
>>> httpclient-users-help@hc.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
>> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> 


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


Mime
View raw message