Weblogic Error:Pool JDBC Data Source-0 is disabled解决(转载)
(2016-08-26 14:15:23)分类: MiddleWare |
weblogic错误:Pool JDBC Data Source-0 is disabled解决
核心提示:有客户说,他们通过connection pool监控发现weblogic92连接池中当前连接数(current
capacity)小于初始连接数(initial
capacity)。从现象上来说,给客户的直觉是:连接池初始化有问题,没有帮助他们初始化他们需要的那么多连接。但他同时发现,几个connection
1:java.net.SocketException: 管道已断开 (errno:32)
2:weblogic.common.resourcepool.ResourceDisabledException: Pool
JDBC Data Source-0 is disabled, cannot allocate resources to
applications.
weblogic.common.resourcepool.ResourceDisabledException: Pool
JDBC Data Source-0 is disabled, cannot allocate resources to
applications
1:配置一个datasource,connection的连接数具体配置如下:
2:weblogic启动后,我们可以看到current capacity为15,此时connection
pool刚被初始化,weblogic会根据initial
capacity去创建相应数量的连接。此时如果我们关闭数据库,然后通过测试程序去获取连接,你会看到我们无法拿到连接(注意我们要选上TestOnReserve),重复三次,再次去监控connection
pool。因为三次test失败后,connection pool会被disable(状态为suspend),如下:
3:重启database。由于weblogic内部实现了connection
pool的自检功能,对于disabled的connection
pool,weblogic每隔5秒钟去做一次连接尝试,如果连接创建成功,新建连接会被放入连接池,同时resume连接池。通过监控我们可以看到,连接池状态变成running,同时current
capacity变成1,
4:启动多线程测试程序,模拟2个用户并发。第一个用户可以从connection
pool中成功拿到连接,而第二个用户因为连接池的current
capacity为1,无法直接从pool中拿到连接,这是连接池需要做扩展,而扩展的个数就是我们设定的capacity
increment(20)。再来监控connection pool,我们就会看到连接池的current
capacity为21,如下:
1.
2.
3.
CountOfTestFailuresTillFlush
4.
10
5.
6.
7.
CountOfRefreshFailuresTillDisable
8.
20
9.
10.
internal-properties用于定义一些weblogic
internal的参数,这些参数无法在console上做配置。除了上面的这两个参数,我们还可以通过internal-properties配置如下几个参数: