jdbc实现oracle自动重连机制,tomcat jdbc pool

jdbc实现oracle自动重连机制,tomcat jdbc pool_第1张图片

这是数据库端的配置,wait_timeout:表示客户端和数据库建立连接,执行sql语句后,保持连接300s才释放连接,若300s内又有新的sql执行,则重新计时。

最近有个问题,基于前任项目管理者遇到在使用tomcat连接池连接oracle/mysql时,经常出现建立的链接用不上了。是因为数据库服务器设置了wait_timeout参数,导致客户端持有的链接用不上。就将数据库连接wait_timeout设置到很大,这将导致一旦建立链接就不会释放,而数据库链接不可能无限大,有新的应用也在使用数据库,将无法建立链接,互相影响。所以wait_timeout:保持默认值。将tomcat pool的配置调优。http://blog.csdn.net/jationxiaozi/article/details/7513358该文对连接池进行了对比其中指出默认配置条件下,TomcatJDBC和apache common DBCP并没有自动重连机制,查看官方文档,这缺陷可以通过修改配置解决。

因此默认配置下,会出现链接不可用,又不会重新建立链接的情况。需要添加重连机制。可阅读官网了解,暂放.

tomcat pool官网地址http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

以下对tomcat-jdbc-pool参数加以说明 ,摘自:

http://liuxing.info/2016/01/05/Tomcat-Jdbc-Pool%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E/?utm_source=tuicool&utm_medium=referral

Tomcat-Jdbc-Pool参数说明

介绍

Tomcat 在 7.0 以前的版本都是使用commons-dbcp做为连接池的实现,但是DBCP存在一些问题:DBCP 是单线程的,为了保证线程安全会锁整个连接池

DBCP 性能不佳

DBCP 太复杂,超过60个类,发展滞后。

因此,通常J2EE中还会使用其它的高性能连接池,如C3P0,还有阿里系的druid等。为此,Tomcat 从 7.0 开始引入一个新的模块: Tomcat Jdbc Pool

Tomcat Jdbc Pool 近乎兼容 DBCP,性能更高异步方式获取连接

Tomcat Jdbc Pool是Tomcat的一个模块,基于Tomcat-Juli,使用Tomcat的日志框架

使用 javax.sql.PooledConnection 接口获取连接

支持高并发应用环境

超简单,核心文件只有8个,比 c3p0 还少

更好的空闲连接处理机制

支持 JMX

支持 XA Connection。

Tomcat Jdbc Pool 可在 Tomcat 中直接使用,也可以在独立的应用中使用。

属性

通用属性

属性名描述(DBCP/Tomcat jdbc-pool 差别 )DBCP默认值jdbc-pool默认值usernam

你可能感兴趣的:(jdbc实现oracle自动重连机制,tomcat jdbc pool)