实际开发中,出现数据源连接数超过最大连接数的问题。
【问题描述】
Caused by: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool visaDS_19 to allocate to applications, please increase the size of the pool and retry..
Caused by: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool visaDS_19 to allocate to applications, please increase the size of the pool and retry..
at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:270)
at weblogic.jdbc.pool.Driver.connect(Driver.java:153)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:662)
at weblogic.jdbc.jts.Driver.connect(Driver.java:128)
at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:589)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:545)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:538)
at com.sinosoft.utility.database.DbPool.open(DbPool.java:71)
at com.sinosoft.visa.dbsvr.DBVsCodeSet.findByConditions(DBVsCodeSet.java:288)
at com.sinosoft.visa.blsvr.BLVsCodeSet.query(BLVsCodeSet.java:128)
at com.sinosig.n02.n01service.printmanager.service.impl.V0826ServiceImpl.policyBatchPrint(V0826ServiceImpl.java:363)
at com.sinosig.n02.n01service.printmanager.web.PrintMangerAction.v0826(PrintMangerAction.java:568)
... 51 more
|
【看log猜测造成问题的原因】
数据库连接池中某一数据源的最大连接数超过了上线。造成的原因有可能是代码死循环造成线程堵塞导致无限访问该数据源而不释放。
【查看原因】
(1)先查看报错原因:数据源——监视
查看是否超过最大连接数:
【解决办法】
1、从根本上解决代码的线程堵塞问题。根据报错log 定位、解决程序中是否存在无限循环的代码,优化更改。
2、重置该服务器,让其数据源重新加载。
weblogic控制台——找到该数据源——控制——选择该服务器名称,uat是coreServer_1——重置。
以上即解决问题。