首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >tomcat-dbcp与commons-dbcp

tomcat-dbcp与commons-dbcp
EN

Stack Overflow用户
提问于 2011-01-17 18:08:18
回答 6查看 52.5K关注 0票数 71

这两个连接池之间似乎有很多混淆之处。我想知道的是哪一个更好(如果有的话)?

这里有一些我想提出来的观点。有没有人能验证一下?

tomcat tomcat DBCP:使用默认的-dbcp.jar,它将出现在您的

  1. /lib目录中。您的web-inf/lib中不需要commons-dbcp.jar或commons-pool.jar库。DB驱动程序应该放在tomcat/lib.
  2. Tomcat中,DBCP数据源类为org.apache.tomcat.dbcp.dbcp.BasicDataSource。Commons DBCP数据源类是org.apache.commons.dbcp.BasicDataSource.
  3. The,只有在this blog中才能找到这两者的区别。不知道信息是否正确。
  4. The official Tomcat documentation清楚地提到了大多数类刚刚被重新命名和re-packaged.

所以问题是:使用哪一个,哪个更好

EN

回答 6

Stack Overflow用户

发布于 2012-04-26 00:02:44

Tomcat DBCP只是Apache Commons DBCP的重命名版本,还有一个不同的内部包名前缀。

在构建时,Tomcat获取Commons DBCP源代码(版本取决于Tomcat版本,例如Tomcat 7.0.27使用Commons DBCP 1.4),并进行包名替换(org.apache.commons -> org.apache.tomcat.dbcp)并将结果构建为tomcat-dbcp.jar

这样做是为了使内部Tomcat JDBC池永远不会与Commons DBCP类的可能应用程序使用冲突。这避免了许多潜在的类加载问题。

编辑: "dbcp“包是关于数据源管理的。对于纯池实现,Commons DBCP依赖于Commons pool (包org.apache.commons.pool),但在Tomcat中,池的实现被Tomcat自己的JDBC pool (包org.apache.tomcat.jdbc.pool)替代。

票数 37
EN

Stack Overflow用户

发布于 2015-03-25 14:38:44

这两个连接池之间似乎有很多混淆之处。我想知道的是哪一个更好(如果有的话)?

TL/DR:它们是一样的,不要使用它们中的任何一个。

Tomcat-dbcp是包含在Tomcat发行版中的apache commons池的原始重新打包。为避免类冲突,包被重命名为org.apache.tomcat.dbcp.dbcp。*

在Tomcat 7(从2011年7月的7.0.19开始)中,默认Tomcat包(作为Tomcat -jdbc.jar的一部分)中包含了一个额外的连接池,作为陈旧的apache commons实现的替代方案,称为“Tomcat JDBC连接池”:

https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

这篇文章介绍了两者之间的区别:

http://vigilbose.blogspot.com/2009/03/apache-commons-dbcp-and-tomcat-jdbc.html

简短总结为什么新的Tomcat池更好:

  • 积极支持更小、更易于理解和维护的
  • (如果您希望了解所有通用特性-dbcp特性+添加了非常有用的特性,如"initSQL“、"validationInterval”、"jdbcInterceptors“和更多
票数 14
EN

Stack Overflow用户

发布于 2011-01-17 18:55:22

Apache Commons DBCP的旧版本(即1.2版)在高负载条件下存在一些严重的线程安全问题,使其不适合这种使用。Tomcat的人重新修改了它来解决这些问题,我对此并不感到惊讶。

然而,我的理解是Commons DBCP 1.4解决了这些问题。我个人不能证实这一点,但这可能会使Tomcat版本变得多余。

有趣的是,SpringSource还为他们重新打包的Tomcat (tc-Server)版本重写了Commons DBCP,并声称从中获得了巨大的性能好处。不过,他们还没有将其开源。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4711943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档