java - DBCP2 借用超时
问题描述
有什么方法可以配置org.apache.commons.dbcp2.BasicDataSource
为借用连接设置超时以强制它们回滚并返回池?
我知道这些参数,但它们不符合我的需要:
removeAbandonedTimeout
:如果连接的使用时间超过 removeAbandonedTimeout,则从池中删除连接。
maxConnLifetimeMillis
:在 maxConnLifeTime 之后从池中删除连接
解决方案
其实解决方法很简单。我发现 Apache 文档对此并不清楚,但设置这些值将达成交易:
removeAbandonedOnMaintenance
(或removeAbandonedOnBorrow
) + removeAbandonedTimeout
+timeBetweenEvictionRunsMillis
以下是有关废弃连接的文档说明:
如果连接的使用时间超过 removeAbandonedTimeout,则该连接被视为已放弃并符合删除条件。
但是通过查看他们应该编写的代码:
如果连接的使用时间超过 removeAbandonedTimeout并且其当前状态为 ALLOCATED,则该连接被视为已放弃并有资格删除。
这完全符合删除借来的废弃连接的需要。
推荐阅读
- mysql - MySQL + Django / ERROR 1045 和 CommandError
- javascript - Javascript返回未定义的值
- javascript - 如何从 Flutter Web 向 JS 脚本的 html 文件(HTMLElement、iframe)参数传递?
- php - 如何限制购物车中的运输方式 - woocommerce
- javascript - react和laravel中的登录身份验证无法正常工作
- python - ModuleNotFoundError: 没有名为“django”的模块
- c# - 运行最小化到系统托盘的单实例桌面应用程序
- jenkins - [cargo.remote.username] 和 [cargo.remote.password] 属性是强制性的,需要在您的配置中定义
- react-native - 尽管使用官方反应本机文档中的源代码,但 TouchableHighlight 不起作用
- java - Minecraft MCP“java(dot)io(dot)File”错误