【Weblogic数据源】实际开发中解决数据源超过最大连接数的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30546099/article/details/80346847

实际开发中,出现数据源连接数超过最大连接数的问题。

问题描述

 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——重置。

 

以上即解决问题。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试