[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oleg Kalnichevski resolved HTTPCLIENT-2172.
-------------------------------------------
    Resolution: Not A Problem

> HttpClient4 limiting to 5 http connections per route, web requests back up in 
> client
> ------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2172
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2172
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 3.1 (end of life), 4.5.13
>         Environment: Axis2 1.7.9
> httpclient-4.5.13.jar
> httpcore-4.4.14.jar
>            Reporter: Eoghan O'Hare
>            Priority: Major
>         Attachments: axis2_httpclient.7z, axis2client.7z, 
> httpclient4_setup_code.txt, 
> requests_per_second_applicationlog_vs_httpclientlog.txt
>
>
> I am investigating a client side issue under load whereby;
>  # The number of http connections per http route cannot be increased above 5 
> regardless of what the default maximums are set to
>  # Http POST requests seem to backup in the httpclient and sending of 
> requests is delayed
> The client application is invoking SOAP web services which are implemented in 
> the client using Axis2 auto generated stubs. The web services are 
> asynchronous using Axis2 OperationClient::execute(false).
> The Axis2 ServiceClient is configured to use httpclient4.
> For this load test, there was 1000 web requests sent at a rate of 100 web 
> requests per second. There is one http server being used. That is the RHEL 8 
> packaged Apache httpd. The server is localhost to the client. 
> The web requests seem to backup in the httpclient, with send delays that 
> increase exponentially. From running tcpdump, I can confirm that a maximum of 
> 5 http connections are created to the http server during the load test.
> I have tried the load test splitting the load across 4 http servers, I can 
> get above 100 total web service requests per second, however once I increase 
> the rates up to 300 web requests per second the same issues start occurring. 
> Makes sense to some degree since 100 web request per second across 4 routes 
> would be only 25 web request per route per second.
> From an implementation point of view, the client application is using the 
> PoolingClientConnectionManager. The default max per route setting is set to 
> be 200, the max total is set to be 1000.
> From our client traces, I can see that there are approximately 100 web 
> service invocations into axis2 per second for the 10 second run. So the 
> client application is making calls into axis2 at the correct rate for the 
> load test.
> I have attached axis2 and httpclient trace level logs from the load test with 
> one http route at 100ws requests per second for simplicity. I tried to attach 
> a tcpdump capture from the test, however Jira would not allow me (size wise, 
> it is only 2.8M).
> Find attached the sample code where;
>  * the connection manager is instantiated
>  * the connection manager settings are configured
>  * the http client instance is created
>  * the http client instance is set as the cached client into axis2 
> ServiceClient
> We have a production client that is using Apache commons httpclient3 for 
> these web service transmissions. I understand this is end of life, however it 
> is having a similar issue with a limited number of http connections created 
> and a backup of web requests within httpclient/axis.
> I am hoping that you can give some pointers as to how to resolve these issues 
> on both httpclient libraries since the issues are very similar.
> I have been working this issue for a number of weeks, trying lots of 
> different code and configurations, changing axis versions, changing http 
> client versions etc. Any help you can provide would be much appreciated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to