java dbpool_java - Java数据库连接池(BoneCP vs DBPool vs c3p0) - 堆栈内存溢出

我们在Tomcat内外都使用C3P0。 但是,监视和日志记录并不是最好的,因此我们将开始使用SpringSource连接池。 我期待的最好的功能之一就是准确显示在任何特定时间运行的SQL语句。

我们必须添加到C3P0的一个方法是计算当池已满并且所有连接都忙时,特定连接请求等待连接的时间长度:

public Connection getConnection() throws SQLException

{

long t = System.currentTimeMillis();

ComboPooledDataSource ds = (ComboPooledDataSource) getDelegate();

Connection conn = null;

if (ds.getNumBusyConnections() == ds.getMaxPoolSize())

{

logger.info("Pool (" + ds.getUser() + ") full, waiting for connection");

conn = ds.getConnection();

t = System.currentTimeMillis() - t;

logger.info("Connection busy wait time (" + ds.getUser() + "): " + t + "ms");

}

else

{

conn = ds.getConnection();

}

return conn;

}

所以你必须考虑的事情:

支持和活动(如您所述)

速度

监控,日志记录和生产控制

BoneCP看起来很快(我之前没有听说过)但老实说C3P0对我们来说也是如此。 回到4年或5年前我们测试过DBCP非常缓慢(他们似乎已经修复了),Oracle的池速度相当慢,而且C3P0非常快。 我们的测试非常类似于BoneCP网站上的测试。

我对BoneCP的可管理性一无所知。 #3已经证明是我们生产环境中最重要的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值