因为我要监控连接池的连接数的情况,所以这样输出查看
g.info("正在使用连接数:"+cpds.getNumBusyConnections());
g.info("空闲连接数:"+cpds.getNumIdleConnections());
g.info("总连接数:"+cpds.getNumConnections());而我这样设置了C3P0
 cpds.setInitialPoolSize(10);
 cpds.setMaxPoolSize(12);
 cpds.setAcquireIncrement(5);这样设置后,我的理解是,获取一个连接后:
初始连接数为10,g.info("总连接数:"+cpds.getNumConnections()); 输出应该是10
g.info("空闲连接数:"+cpds.getNumIdleConnections()); 应该是9
g.info("正在使用连接数:"+cpds.getNumBusyConnections());应该是1调用获取连接为:
for(int i=0;i<20;i++){
g.info("i"+i+"=="+c.getConnection(false));
}怎么下面的规律根本就不是我设置的,究竟是怎么一回事,我没有使用tomcat 数据源 而是直接jdbc驱动获取连接。如果说查看的方式不对,那你们是怎么监控连接总数、连接空闲数、已使用的连接数等
输出结果为:
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:1
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:2
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:3
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i0==com.mchange.v2.c3p0.impl.NewProxyConnection@89cf1e
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:2
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:2
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:4db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i1==com.mchange.v2.c3p0.impl.NewProxyConnection@1c0e45a
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:3
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:2
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:5db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i2==com.mchange.v2.c3p0.impl.NewProxyConnection@d02b51
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:4
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:1
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:5db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i3==com.mchange.v2.c3p0.impl.NewProxyConnection@1c247a0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:5
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:5
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i4==com.mchange.v2.c3p0.impl.NewProxyConnection@1431340
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:6
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:6
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i5==com.mchange.v2.c3p0.impl.NewProxyConnection@e45076
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:7
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:7
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i6==com.mchange.v2.c3p0.impl.NewProxyConnection@e91f5d
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:8
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:8
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i7==com.mchange.v2.c3p0.impl.NewProxyConnection@a9c09e
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:9
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:9
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i8==com.mchange.v2.c3p0.impl.NewProxyConnection@12a3793
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:10
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:10
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i9==com.mchange.v2.c3p0.impl.NewProxyConnection@4cee32
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:11
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:11
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i10==com.mchange.v2.c3p0.impl.NewProxyConnection@14c194d
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:54)- 正在使用连接数:12
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:55)- 空闲连接数:0
db.dbpool.C3p0DBPool.getConnection(C3p0DBPool.java:56)- 总连接数:12
db.dbpool.C3p0DBPool.main(C3p0DBPool.java:74)- i11==com.mchange.v2.c3p0.impl.NewProxyConnection@bb7759

解决方案 »

  1.   

    没有配置,就是直接java里面setXX的
      

  2.   

    没什么详细啊 就上面那几行
    是说你的不会出现这样的情况吗
    能不能把你的使用代码贴上,我用你的运行一下 看是不是也是一样,我就奇怪了 怎么设置
    InitialPoolSize
    结果通过这个获取的还是3g.info("总连接数:"+cpds.getNumConnections());
      

  3.   

    貌似c3p0有问题,close()之后似乎没有马上放回连接池中,数据库端的session记录一直在增加
      

  4.   

    他没close  数据库正在连接数没看一直在增加么