DBCP1.3 数据库 连接 漏洞
发布时间
阅读量:
阅读量
DBCP1.3数据库连接泄漏问题
线上使用的dbcp版本1.3,数据库为达梦7。
问题
在生产环境中进行测试时发现,在当dbcp连接的数据库因故发生故障时,在重新启动数据库之后会话可能会出现严重问题,并最终导致整个系统崩溃
如图中所示,会话撑满100个(上限默认的为100),连接全部是IDLE。

依据该问题的详细分析,并通过本地测试确认了问题再次出现
问题的根本原因是,在所连接的数据库发生故障之后,在程序中使用BasicDataSource对象进行数据库访问时会导致validateConnectionFactory方法出现异常从而致使dataSource成员变量始终保持为空状态
主要问题在于createDataSource()方法。
- 通过
dataSource !=null来防止重复创建数据源

- 创建连接池

还没有任何评论哟~
