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

时间:2023-01-31 15:51:52

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优势