tomcat7的数据库连接池tomcatjdbc的25个优势

tomcat的JDBC连接池org.apache.tomcat.jdbc.pool更换或替代吗Apache Commons DBCP连接池。

为什么我们须要一个新的连接池?

这里有几个原因:

1.DBCP 1.x是单线程的。

为了成为线程安全的 共享锁整个池在短时间内在两个对象 分配和对象返回。

注意,这并不适用 下议院DBCP 2.x。

2.DBCP 1.x能够缓慢。 逻辑cpu数量的添加和 并发线程的数量试图借或返回 对象的添加,性能会减少。 对高并发 系统能够显著的影响。

请注意,这并不适用 Commons DBCP 2.x。

3.DBCP超过60类。

tomcat-jdbc-pool核心是8类, 因此未来需求将须要更少的改动 的变化。

这是全部你须要执行连接池本身 歇息是肉汁。

4.DBCP使用静态接口。

这意味着你必须使用 正确的版本号为给定的JRE版本号或您可能会看到NoSuchMethodException例外。

5.不值得重写60多个类,当一个连接池 是一个更简单的实现完毕。

6.Tomcat jdbc池实现检索连接的能力 异步,无需添加额外的线程库 本身。

7.Tomcat jdbc池是Tomcat模块,这取决于Tomcat朱莉·, 简化的日志框架用于Tomcat。

8.检索底层连接使用javax.sql.PooledConnection接口。

9.饥饿的证明。 假设池是空的,和线程正在等待 返回连接,连接时,将醒着 正确的线程等待。

大多数池仅仅会饿死。

10.特性添加了其它连接池实现

11.支持高并发环境和多核心/ cpu系统。

12.动态实现的接口,将支持java.sql和javax.sql接口 您的执行时环境(仅仅要你的JDBC驱动程序做了相同的事情),即使编译较低版本号的JDK。

13.验证间隔——我们不须要验证我们每一次使用的连接,我们能够做到这一点 当我们借或返回的连接,就不是我们能够配置比间隔更频繁。

14.Run-Once查询,一个可配置的查询,将仅仅执行一次,当连接到数据库。 很实用的设置会话设置,您想要存在在整个时间建立连接。

15.配置自己定义拦截器的能力。 这同意您编写自己定义拦截器来增强功能。 您能够使用拦截器收集查询统计, 缓存会话状态,又一次连接失败,重试查询,缓存查询结果,等等。 你的选择是无尽的,拦截器是动态的,而不是绑定到一个JDK版本号的java.sql/javax.sql接口。

16.高性能——我们将展示一些性能上的差异

17.很easy,因为很简化实现,行数和源文件数量很低,和c3p0相比 有200多个源文件(上次我们检查),Tomcat jdbc 8的核心文件,连接池本身就是一半 那 错误可能发生,他们会更快的追踪,和更easy修复。

降低复杂性一直是重点从《盗梦空间》。

18.异步检索——你能够连接你的连接请求和接收队列Future<Connection>回来了。

19.更好的空暇连接处理。 而不是直接关闭连接,它仍然能够连接池大小和空暇池的智能算法。

20.你能够决定什么时候连接被觉得是放弃了,当池满了,还是直接在超时 通过指定一个池的使用门槛。

21.放弃连接计时器将重置/查询活动发表声明。 同意一个连接,在使用非常长一段时间不超时。 这是通过使用ResetAbandonedTimer

22.关闭连接后,连接为一个特定的时间。

年龄接近基于返回到池中。

23.JMX通知,当连接被怀疑是废弃的日志条目。

这类似于 的removeAbandonedTimeout但它不採取不论什么行动,仅仅是报告的信息。 这是通过使用suspectTimeout属性。

24.连接能够从检索java.sql.Driver,javax.sql.DataSource或javax.sql.XADataSource这是通过使用dataSource和dataSourceJNDI属性。

25.支持 JMX,支持 XA Connection

tomcat7的数据库连接池tomcatjdbc的25优势

时间: 2024-08-05 00:43:11

tomcat7的数据库连接池tomcatjdbc的25个优势的相关文章

tomcat数据库连接池配置

tomcat7增强了数据库连接池功能,连接池配置如下: <Resource name="jdbc/ecp" auth="Container" type="javax.sql.DataSource" maxActive="300" maxIdle="100" maxWait="10000" username="xm_db_portal" factory="

c3p0数据库连接池使用小结

一.C3P0介绍 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展.目前使用它的开源项目有hibernate,spring等.c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的. 它的特性: 1.编码的简单易用 2.连接的复用 3.连接的管理 二.使用方法 1.下载最新C3PO包文件,下载地址:https://sourceforge.NET/projects/c3p0/files/ 2.将上面的包文件中lib下的c3p0-xxx

项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我的支付宝:13958686678 一. 前言 泥瓦匠又和大家见面了,最近两天我在Code Review ,顺便代码小小的Refactoring(重构)下.先了解这个项目吧,这次解决的是数据源配置优化.因为这web项目中配置数据源的地方很多.例如JDBC要配置数据源,Mybatis要配置数据源,Quartz定时任务要配

java数据库连接池性能对比

这个测试的目的是验证当前常用数据库连接池的性能. testcase Connection conn = dataSource.getConnection(); PreparedStatement stmt = conn.preparedStatement("select 1"); ResultSet rs = stmt.executeQuery(); while (rs.next()) { } rs.close(); stmt.close(); conn.close(); test c

主流的数据库连接池

1.数据库连接池概述 数据库连接的建立是一种耗时.性能低.代价高的操作,频繁的数据库连接的建立和关闭极大的影响了系统的性能.数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中,当程序需要访问数据库时,不再建立一个新的连接,而是从连接池中取出一个已建立的空闲连接,使用完毕后,程序将连接归还到连接池中,供其他请求使用,从而实现的资源的共享,连接的建立.断开都由连接池自身来管理. 数据库连接池为系统的运行带来了以下优势:昂贵的数据库连接资源得到重用:减少了数据库连接建立和释放的时间开销

JDBC数据库连接池技术

在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 用池的概念来管理Connection,这样可以重复使用Connection.有了连接池以后就不用自己亲自创建连接而是通过连接池来获得Connection对象.当使用完Connection之后,调用Connection的close()方法不是真的将连接关闭,而是把Connection归还给连接池.连接池就可以继续保

DBCP数据库连接池的简单使用

0.DBCP简介      DBCP(DataBase connection pool)数据库连接池是 apache 上的一个Java连接池项目.DBCP通过连接池预先同数据库建立一些连接放在内存中(即连接池中),应用程序需要建立数据库连接时直接到从接池中申请一个连接使用,用完后由连接池回收该连接,从而达到连接复用,减少资源消耗的目的. 1.DBCP所依赖的jar包(以下例子基于如下jar包版本)    commons-dbcp2-2.1.1.jar       commons-logging-

javaweb学习总结(三十九)——数据库连接池

一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出.拓机.如下图所示: 二.使用数据库连接池优化程序性能 2.1.数据库连接池的基本概念 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性

MySql数据库连接池

1.传统链接(如下为示意图) 注意: (1).传统方式找DriverManager要连接,数目是有限的. (2).传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的桥梁,即无发送到SQL命令到数据库端执行  (3).项目中,对于Connection不说,不会直接使用DriverManager取得,而使用连接池方式. 2.采用连接池(示意图) 3.开源数据库连接池 (1).现在很多Web服务器(Weblogic, WebSphere, Tomcat)都提供了Da