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!
全局事务将结束,资源将回滚
因此,只要您没有长运行 服务请求,默认的清理行为就会为您提供您正在寻找的行为。如果您确实有很长的 运行 服务请求,那么您可能需要考虑调整事务超时。
假设有一段代码从池中获取了一个连接,但没有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!
全局事务将结束,资源将回滚
因此,只要您没有长运行 服务请求,默认的清理行为就会为您提供您正在寻找的行为。如果您确实有很长的 运行 服务请求,那么您可能需要考虑调整事务超时。