使用 JDBC 的连接池选项:DBCP 与 C3P0 [已关闭]
适用于 Java/JDBC 的最佳连接池库是什么?
我正在考虑2个主要候选人(免费/开源):
- Apache DBCP - http://commons.apache.org/dbcp/
- C3P0 - http://sourceforge.net/projects/c3p0
我在博客和其他论坛上阅读了很多关于它们的信息,但无法做出决定。
这两者之间是否有任何相关的替代方案?
适用于 Java/JDBC 的最佳连接池库是什么?
我正在考虑2个主要候选人(免费/开源):
我在博客和其他论坛上阅读了很多关于它们的信息,但无法做出决定。
这两者之间是否有任何相关的替代方案?
DBCP 已过时,不是生产级。不久前,我们对两者进行了内部分析,创建了一个测试夹具,该夹具针对两者生成负载和并发性,以评估它们在现实生活条件下的适用性。
DBCP 始终如一地在我们的测试应用程序中生成异常,并努力达到 C3P0 能够处理且没有任何异常的性能级别。
C3P0 还可以可靠地处理数据库断开连接和恢复时的透明重新连接,而如果从其下方取出链接,DBCP 永远不会恢复连接。更糟糕的是,DBCP 正在将连接对象返回到基础传输已中断的应用程序。
从那时起,我们已经在4个主要的重载消费者Web应用程序中使用了C3P0,并且从未回头。
更新:事实证明,经过多年的搁置,Apache Commons人员已经将DBCP从休眠状态中解脱出来,现在它再次成为一个积极开发的项目。因此,我的原始帖子可能已过时。
话虽如此,我还没有体验过这个新升级的库的性能,也没有听说过它在最近的任何应用程序框架中都是事实上的。
我邀请您尝试一下BoneCP - 它是免费的,开源的,并且比可用的替代方案更快(请参阅基准测试部分)。
免责声明:我是作者,所以你可以说我有偏见:-)
更新:截至2010年3月,仍然比新重写的Apache DBCP(“tomcat jdbc”)池快35%左右。请参阅基准测试部分中的动态基准测试链接。
更新#2:(2013年12月)在榜首4年后,现在有一个更快的竞争对手:https://github.com/brettwooldridge/HikariCP
更新#3:(2014年9月)请考虑此时已弃用BoneCP,建议切换到HikariCP。
更新 #4:(2015 年 4 月)-- 我不再拥有该域名 jolbox.com