Websphere 自由强制连接回池

Websphere liberty force connection back to pool

假设有一段代码从池中获取了一个连接,但没有return将它返回到池中。

我想知道 liberty 中是否有任何设置,如果在空闲时间(可能是 10 秒)后未在连接上识别出 activity,则强制将连接返回池。

我正在使用 liberty 8.5.5.9

Websphere Liberty 没有任何机制可以在一定时间后强制使用中的连接返回池中。

最接近这种行为的是"transaction timeout"(默认120秒),超时后全局事务会超时,全局事务中的所有资源都会被清理。

但是,默认情况下,WebSphere 总是会在事务作用域结束后清理泄漏的连接(无论是本地事务遏制还是全局事务)。

例如,如果我在 servlet 中执行以下操作:

Connection conn = ds.getConnection();
// conn never closed!

当servlet请求结束时,连接会自动关闭并返回到连接池

如果你在全局事务中做类似的事情:

tx.begin();
Connection conn = ds.getConnection();
// conn never closed!
// tx never ended!

全局事务将结束,资源将回滚

因此,只要您没有长运行 服务请求,默认的清理行为就会为您提供您正在寻找的行为。如果您确实有很长的 运行 服务请求,那么您可能需要考虑调整事务超时。