我正在使用 PoolingClientConnectionManager 并且我怀疑我正在泄漏连接。我有一个打印出 PoolStats 的监控线程,如下所示:
[leased: 126; pending: 0; available: 14; max: 140]
..
[leased: 140; pending: 20; available: 0; max: 140]
..
[leased: 140; pending: 10; available: 0; max: 140]
我产生的线程数与池连接数(140)相同,所以我从没想过租用+挂起>最大值。这个假设有效吗?或者这是经理保持连接的情况?我不确定这种情况下连接是否归因于“租赁”或“可用”。
我注意到的是,如果在 DNS 解析期间 HttpClient 连接中断,则可能会发生连接泄漏。在这种情况下,租用的连接不会释放回池中。是否有建议的方法来取消分配适当的资源,以便将连接正确释放回池?
提前致谢。