可用于Java / JDBC的最佳连接池是什么?
我正在考虑2个主要候选人(免费/开源):
我已经在博客和其他论坛上阅读了很多有关它们的内容,但无法做出决定。
这两个有其他相关选择吗?
DBCP已过时,而不是生产级。不久前,我们对这两者进行了内部分析,创建了一个测试夹具,生成了针对这两者的负载和并发性,以评估它们在现实生活条件下的适用性。
DBCP始终在我们的测试应用程序中生成异常,并努力达到C3P0能够无任何异常处理的性能水平。
C3P0还可以稳健地处理数据库断开连接和恢复时的透明重新连接,而如果从其下方拔出链接,则DBCP永远不会恢复连接。更糟糕的是,DBCP会将连接对象返回到基础传输中断的应用程序。
从那时起,我们已经在4个主要的重负荷消费者Web应用程序中使用了C3P0,并且从未回过头。
更新:事实证明,经过多年搁置,Apache Commons员工使DBCP脱离了hibernate状态,现在它又是一个积极开发的项目。因此,我的原始帖子可能已过时。
话虽这么说,我还没有体验过这个新的升级库的性能,也没有听说过它在任何最新的应用程序框架中都是事实。
使用来自DBCP的BasicDataSource,如果我们执行getConnection()并且在最后一个块中我们关闭连接,它是真的将连接返回到池还是关闭连接。我正在检查的代码片段是这样的 我正在检查BasicDataSource的源代码,并访问了这个包装类以获取连接。 委托对象的类型为java。sql。联系包装器代码调用委托的close方法,该方法将关闭集合,而不是将连接返回到池。这是DBCP的
我正在使用DBCP连接池,并创建了一个MBean来在Jconsole中显示连接池的统计信息。我观察到的是,即使应用程序上没有活动(意味着没有页面点击等),连接池统计数据也会显示活动连接。 我们在上面看到的16个虚拟连接并没有降到零。我不知道为什么?有人能解释一下吗? 谢谢
问题内容: 似乎与我的应用程序有关。每当启动应用程序很长时间(不确定确切的时间)后,我的日志中都会出现以下错误消息。我正在使用Spring + Hibernate + MySQL和ApacheDBCP进行连接池 如果我重新启动URL,则一切正常。我认为这与我的连接池有关。这是我的Apache DBCP设置,MYSQL中的wait_timeout设置为其默认值。(28800秒或8小时)。 在搜索的同
我们很难弄清楚定义的属性,,等等。 我们在以下设置中看到以下错误
在我的程序中,我正在访问wep api。最多可以有7个不同的线程访问web api的不同服务器。每个线程负责一个服务器,每个服务器速率限制每个线程。每个线程更新相同的mysql数据库。线程数保持不变。 在我的示例中,是否需要连接池?我不应该只打开7个不同的连接,这些连接将在程序的生命周期中打开吗?
我读了一些关于Stackoverflow、mkong和Tomcat JDBC池官方文档的链接。我太困惑了。 需要注意的要点: 1) 我知道Oracle通用连接池是一个新概念,不稳定。在此链接中,此人询问OracleDataSource(请注意)链接1 2)所以让我们说UCP是完全不同的。现在Mkong(尊重)有这个教程可用。链接2 3) Tomcat的官方文档链接3上有这个链接 OracleDat