[
https://issues.apache.org/jira/browse/CXF-9059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andriy Redko updated CXF-9059:
------------------------------
Affects Version/s: 4.0.5
(was: 4.1.0)
> HttpConduit should flush output stream ahead of closing connections when
> HttpClient is autocloseable
> ----------------------------------------------------------------------------------------------------
>
> Key: CXF-9059
> URL: https://issues.apache.org/jira/browse/CXF-9059
> Project: CXF
> Issue Type: Improvement
> Components: JAX-RS
> Affects Versions: 4.0.5
> Reporter: Jamie Mark Goodyear
> Priority: Major
> Fix For: 4.1.0, 4.0.6
>
>
> HttpConduit should flush output stream ahead of closing connections when
> HttpClient is autocloseable.
> When running WebClient in a load test (single host) we'll observe low
> throughput.
> When we adjust the HttpConduit to flush output stream ahead of connection
> close, we observe significant throughput improvement.
> The key issue being addressed here is ephemeral port usage. Once all
> available ports are in use, the clients are unable to send more messages.
> Controlling ephemeral port usage means the client can more often send
> messages to the server-side.
> Given this appears to affect just autocloseable HttpClient, we select to
> flush the output stead only when the JVM provides the autocloseable
> HttpClient variety.
>
> AbstractConduit:
> finally {
> OutputStream os = msg.getContent(OutputStream.class);
> // Java 21 may hang on close, we flush stream to help close them out.
> if (os != null && AutoCloseable.class.isAssignableFrom(HttpClient.class))
> {. os.flush(); }
> super.close(msg);
> }
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)