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

Eoghan O'Hare updated HTTPCLIENT-2172:
--------------------------------------
    Attachment: axis2_httpclient.7z

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

Reply via email to