[
https://issues.apache.org/jira/browse/HTTPCLIENT-2172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eoghan O'Hare updated HTTPCLIENT-2172:
--------------------------------------
Affects Version/s: (was: 4.5.14)
4.5.13
Environment:
Axis2 1.7.9
httpclient-4.5.13.jar
httpcore-4.4.14.jar
was:
Axis2 1.7.9
httpclient-4.5.3.jar
httpcore-4.4.14.jar
> 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, httpclient4_setup_code.txt
>
>
> I am investigating a client side issue under load whereby;
> # The number of http connections per http route cannot be increased above 5
> # Http POST requests seem to backup in the httpclient and requests are
> delayed being sent
> The client application is invoking SOAP web services which are implemented in
> the client using Axis2 auto generated stubs.
> 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 backup in the httpclient, with request send delays that
> increase exponentially. From running tcpdump, I can see 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 to get 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.
> 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 have tried to
> attach a tcpdump capture from that 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 they 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]