WebLogic 典型故障案例:数据库连接泄漏问题

故障现象

 

 

使用 weblogic 数据源,系统运行一段时间后,数据源连接池达到最大,可用连接数为0,无法连接数据库。应用报错。

 

 

分析过程

 

 

这是明显的数据库连接泄漏问题,首先进入weblogic 控制台,打开左侧菜单, 配置连接池:

 

主页 >JDBC 数据源概要 >[JDBC Data Source-0],进入连接池页面,在高级中修改“非活动连接超时(Inactive Connection

Timeout)”值为 60。保存weblogic 配置生效,查看weblogic 的server 日志有如下

<2015-10-8 下午 10 时21 分29

秒 GMT+08:00> <Warning> <JDBC> <BEA-

001153> <Forcibly releasing inactive connection "weblogic.jdbc. wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@ fe001a5" back int

o the connection pool "rlsds", currently reserved by: java.lang.

Exception

     at weblogic.jdbc.common.internal.ConnectionEnv. setup(ConnectionEnv.java:325)

     at weblogic.common.resourcepool.ResourcePoolImpl.reserveR esource(ResourcePoolImpl.java:363)

…………

     at SmartPool.plugin.WebLogicConUtil. getConnection(WebLogicConUtil.java:91)

…………

 

此段信息说明weblogic强制回收了数据库连接,通过打印出的堆栈信息,可以找到建立连接的信息,通过提示信息查找代码中的bug。

 

 

解决方案

 

 

1、修改连接池的“非活动连接超时(Inactive Connection Timeout)”,值设为 60(默认为 0, 即不启用)。 

 

2、根据日志打印的堆栈信息,修改代码中的 bug。


锻造凝炼IT草莓视频黄色在线观看 助推用户事业发展
地址:北京市西城区百万庄大街11号粮科大厦3层
电话:(010)58523737
传真:(010)58523739