Advertisement

DBCP1.3 数据库 连接 漏洞

阅读量:

DBCP1.3数据库连接泄漏问题

线上使用的dbcp版本1.3,数据库为达梦7。

问题

在生产环境中进行测试时发现,在当dbcp连接的数据库因故发生故障时,在重新启动数据库之后会话可能会出现严重问题,并最终导致整个系统崩溃

如图中所示,会话撑满100个(上限默认的为100),连接全部是IDLE。

依据该问题的详细分析,并通过本地测试确认了问题再次出现

问题的根本原因是,在所连接的数据库发生故障之后,在程序中使用BasicDataSource对象进行数据库访问时会导致validateConnectionFactory方法出现异常从而致使dataSource成员变量始终保持为空状态

主要问题在于createDataSource()方法。

  1. 通过dataSource !=null来防止重复创建数据源
  1. 创建连接池

![](https:/

全部评论 (0)

还没有任何评论哟~