c3p0、dbcp、tomcat jdbc pool 连接池区别(推荐使用jdbc pool)
2016-04-19 13:14
676 查看
查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下,决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。区别参考链接:http://www.open-open.com/lib/view/open1329182303124.html
<!-- class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" --> <!-- class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" parent="c3p0DataSource">Tomcat 在 7.0 以前的版本都是使用 commons-dbcp 做为连接池的实现,但是 dbcp 饱受诟病,原因有:dbcp 是单线程的,为了保证线程安全会锁整个连接池dbcp 性能不佳dbcp 太复杂,超过 60 个类dbcp 使用静态接口,在 JDK 1.6 编译有问题dbcp 发展滞后因此很多人会选择一些第三方的连接池组件,例如 c3p0 , bonecp, druid (@wenshao ) 等。为此,Tomcat 从 7.0 开始引入一个新的模块:Tomcat jdbc pooltomcat jdbc pool 近乎兼容 dbcp ,性能更高异步方式获取连接tomcat jdbc pool 是 tomcat 的一个模块,基于 tomcat JULI,使用 Tomcat 的日志框架使用 javax.sql.PooledConnection 接口获取连接支持高并发应用环境超简单,核心文件只有8个,比 c3p0 还更好的空闲连接处理机制支持 JMX支持 XA Connectiontomcat jdbc pool 的优点远不止这些,详情请看这里。tomcat jdbc pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。推荐使用
<!-- JDBC连接池 、数据源 --><bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"><property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="true" /><property name="testOnReturn" value="false" /><property name="validationQuery" value="SELECT 1" /><property name="validationInterval" value="30000" /><property name="timeBetweenEvictionRunsMillis" value="30000" /><property name="maxActive" value="100" /><property name="minIdle" value="2" /><property name="maxWait" value="10000" /><property name="initialSize" value="4" /><property name="removeAbandonedTimeout" value="60" /><property name="removeAbandoned" value="true" /><property name="logAbandoned" value="true" /><property name="minEvictableIdleTimeMillis" value="30000" /><property name="jmxEnabled" value="true" /></bean>引入Maven依赖:<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId><version>7.0.29</version></dependency><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-juli</artifactId><version>7.0.29</version></dependency>
tomcat-dbcp与commons-dbcp有什么区别
The default database connection pool implementation in Apache Tomcat relies on the libraries from the Apache Commons project. The following libraries are used:Commons DBCPCommons PoolThese libraries are located in a single JAR at $CATALINA_HOME/lib/tomcat-dbcp.jar. However, only the classes needed for connection pooling have been included, and the packages have been renamed to avoid interfering with applications.以上是tomcat7.x的帮助文档,大意是tomcat-dbcp.jar包含了commons-dbcp和Commons Pool的内容,当然也只仅仅包含了需要数据库连接的部分,而不是全部
相关文章推荐
- Ubuntu 10.10配置JRE、JDK、Eclipse和Tomcat7.0.5
- Spring tomcat jdbc pool mybatis 集成配置
- tomcat重新启动后,session不失效
- Eclipse中配置Tomcat
- Eclipse中配置Tomcat
- Tomcat、MySQL注意
- Tomcat 报java.lang.OutOfMemoryError
- quartz执行2次任务解决方法
- Syslog-ng+Rsyslog收集日志:收集Tomcat日志(三)
- Tomcat基础使用知识
- tomcat笔记
- Apache + Tomcat +mod_jk实现集群服务
- 深入剖析tomcat读书笔记——连接器
- 如何用Loadrunner监控Tomcat
- 精通Tomcat之路-学习笔记之一:配置Tomcat
- Tomcat安装
- tomcat configuration path报错
- 在 Linux 下整合 Apache 与 Tomcat
- Tomcat类加载器架构
- Eclipse的安装以及与Tomcat的集成