Java/JDBC可用的最佳连接池库是什么?
我正在考虑两个主要的候选(免费/开源):
Apache DBCP - http://commons.apache.org/dbcp/ C3P0 - http://sourceforge.net/projects/c3p0
我在博客和其他论坛上读了很多关于他们的文章,但无法做出决定。
有什么相关的替代方案吗?
Java/JDBC可用的最佳连接池库是什么?
我正在考虑两个主要的候选(免费/开源):
Apache DBCP - http://commons.apache.org/dbcp/ C3P0 - http://sourceforge.net/projects/c3p0
我在博客和其他论坛上读了很多关于他们的文章,但无法做出决定。
有什么相关的替代方案吗?
当前回答
当连接超时时,我遇到了DBCP问题,所以我尝试了c3p0。我本打算将其发布到生产环境中,但随后开始了性能测试。我发现c3p0表现很糟糕。我根本无法将其配置得很好。我发现它比DBCP慢两倍。
然后我尝试了Tomcat连接池。
这是c3p0的两倍快,并修复了我在DBCP中遇到的其他问题。我花了很多时间调查和测试这3个池子。如果要部署到Tomcat,我的建议是使用新的Tomcat JDBC池。
其他回答
不幸的是,它们都过时了。DBCP最近更新了一些,另外两个已经有2-3年的历史了,有很多突出的bug。
我们遇到了需要引入连接池的情况,我们面前有4个选项。
DBCP2 C3P0 Tomcat JDBC HikariCP
我们根据我们的标准进行了一些测试和比较,决定去HikariCP。 阅读这篇文章,它解释了为什么我们选择HikariCP。
当我们使用多线程项目时,C3p0很好。在我们的项目中,我们使用DBCP同时执行多个线程,然后如果我们使用更多的线程执行,我们就会得到连接超时。所以我们用了c3p0位型。
本文中还提到了另一种替代方案Proxool。
您可能会发现为什么Hibernate在其默认连接池实现中捆绑c3p0 ?
当连接超时时,我遇到了DBCP问题,所以我尝试了c3p0。我本打算将其发布到生产环境中,但随后开始了性能测试。我发现c3p0表现很糟糕。我根本无法将其配置得很好。我发现它比DBCP慢两倍。
然后我尝试了Tomcat连接池。
这是c3p0的两倍快,并修复了我在DBCP中遇到的其他问题。我花了很多时间调查和测试这3个池子。如果要部署到Tomcat,我的建议是使用新的Tomcat JDBC池。