Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jersey-dev] PoolingHttpClientConnectionManager not releasing connections

Oops, the link to the test:
https://github.com/namedgraph/jersey-test/blob/master/src/test/java/jersey/test/release_conn/ReleaseConnTest.java

On Tue, Apr 28, 2020 at 8:37 PM Martynas Jusevičius
<martynas@xxxxxxxxxxxxx> wrote:
>
> Hi,
>
> hitting one more snag in the upgrade...
>
> I was hoping that PoolingHttpClientConnectionManager is a drop-in
> replacement for the deprecated ThreadSafeClientConnManager.
>
> But with the seemingly identical configuration and the same
> setDefaultMaxPerRoute(5) setting, our client connections started
> hanging after reaching the per route limit:
>
>     PoolingHttpClientConnectionManager:266 - Connection request:
> [route: {s}->https://localhost:4443][total kept alive: 0; route
> allocated: 5 of 5; total allocated: 10 of 20]
>
> Looking in the logs of the 1.19 version, it seems that the limit was
> ignored - no connections available, but a new one is created anyway:
>
>     ThreadSafeClientConnManager:221 - Get connection:
> HttpRoute[{s}->https://localhost:4443], timeout = 0
>     ConnPoolByRoute:350 - [HttpRoute[{s}->https://localhost:4443]]
> total kept alive: 1, total issued: 0, total allocated: 1 out of 20
>     ConnPoolByRoute:523 - No free connections
> [HttpRoute[{s}->https://localhost:4443]][null]
>     ConnPoolByRoute:369 - Available capacity: 5 out of 5
> [HttpRoute[{s}->https://localhost:4443]][null]
>     ConnPoolByRoute:549 - Creating new connection
> [HttpRoute[{s}->https://localhost:4443]]
>
> So my questions are:
> - is this the expected behavior of PoolingHttpClientConnectionManager?
> Is it different from PoolingHttpClientConnectionManager?
> - what do we do to avoid the client hanging?
> - I suppose we need to introduce a (short) connection timeout - how do
> we do that?
>
> I've created a JerseyTest with our config that illustrates the problem:
>
> Thanks
>
> Martynas


Back to the top