[
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]