We are using jetty-6.1.26 HTTP client to post messages to an IIS server (SSL) on very low bandwidth and high latency connections (VSAT).
The code fragment used is as below:
httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
httpClient.setMaxConnectionsPerAddress(1);
httpClient.setMaxRetries(0);
httpClient.setSoTimeout(soTimeout);
httpClient.setTimeout(timeout);
contentExchange = new ContentExchange(true);
contentExchange.setRetryStatus(false);
int result = contentExchange.waitForDone();
if(result == HttpExchange.STATUS_COMPLETED)
{
We have seen that in production in certain instances the http client while sending data would appear hung and if restarted it would send that data. There is no timeout/expiry or any other errors.
We cannot move to any newer versions of Jetty.
How can we stop/interrupt the HTTP client send/exchange from an external thread forcefully? We would like to control every send of http client by a timer. If that timer pops and the data is still being sent (suggesting a hung situation) we would like to call an abort or stop.
Thanks a lot in advance!!