数据库连接池可能很多人一直不明白真正的作,也无法真实的体会其明显的作用,
很多初级开发者可能大我都是用完就close了,要用时就打开,这是否对小的应用来说
用不用连接池效果不是很明显,还有一点就是初级开发者常常不记得关闭连接,使得
数据库服务器被连接占满,同时连接池因设定了最大连接数,而可能使得超过了连接时
数据库无法使用。有可能很多开发者因为以前用asp,php,vb等的原因,好像不关闭连接也没什么影响
但在J2EE中,数据库连接不关闭后果很严重。
我们来看看数据连接耗时操作。
1)分析URL连接参数,包括协议、IP地址、端口等的分析与验证。并分板URL成为参数,如把协议,DATABSE,userName,passWord等从中分出来放入Hashtable中
2)注删及加载驱动
3)在注册的驱动列表中查找能使用的驱动,一般驱动管理员会一个个驱动去试,驱动通过分析URL是否为自己URL。如果是返回true
4)驱动用传入的参数实例化继承自Connection的对象,产生Connection实例。
5)和URL指定的数据库服务器进行SOCKET连接,进行网络数据传输握手。
6)登录数据库服务器,创建statement及resultSet,并设置语言环境及数据格式.
7)完成初台化工作,返回Connection对象。
很显然一次连接要做上面主要的7个部分的操作,部分操作还比较耗时。当然测试中发现一段建立一个连接的耗时为几百毫秒,快时也有几十毫秒。
频率比较少的访问问题不大,但是访问量很大时,耗时就非常明显,大测试发现用连接池去执行sql语句几乎不耗时间的。
连接是不是必需的,只是在访问量比较大时确实能省很多的时间,提高效率,但在访问题很少的情况下,也能提高数据的操作效率,同时节省数据库
的连接开销。
那么连接池怎么实现的呢?连接池的最少应实现那些功能。
1)连接在使用后不应马上关闭,可能后面其它程式还要使用。
2)保留一个最小活动连接,使其程式不需要在建立连接时消耗时间,活动连接,可以在初始化时首先建立,也可以在连接中回收。
3)最大连接数,连接池中的连接最大不超过这个数,这样做也是避免把数据连接耗完,通常这样的问题是因为程式没有写好的原因。
4)处理超时连接,也就是连接超过多长时间被认为过期,然后从连接池中清除。
5)重写Connection的close方法,因为哪不重写,将会使用户使用close方法时真正关闭连接,而不是放入连接池。
其实连接池也比较简单,主要是实现上面几个需求。如tomcat的连接池实现类就是为:
org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
因此连接池的逻辑为:
1)取连接时,先到连接池中找,如果没有空闭的连接,而又没有超过最大连接数,建一个新的连接。
如果超过了抛出异常。
2)得到连接后,连接池减少1
3)使用完后如果连接池没有超过最大连接数放入连接池,超过直接关闭。
4)如果加入连接池的连接,连接池计数+1
5)时间监听连接是否超时,如果超时将关闭,从连接池中-1,直到最后只有最少的活动连接数。
这里我们有一个问题,连接池是怎么知道连接是否超过最大连接呢,有些连接在使用,他们在连接池中并没有计数,也就是说他们取出后计数器
就-1了。,事实上我们可以用另一个记录正在使用的连接,如果用完就从中-1,也可以不去管在使用的连接,我们只用去管空闭的连接就行。
应该我们设置连接池的最大连接数应是指空闭的最大连接数,而并非空闭连接数+正在使用的连接数。
还要注意的一点是,连接池的列表应常驻内存,不然用完了就退出内存了,那前池子又要重建立,因此存入连接的对象应是static类型的。
分享到:
相关推荐
总结来说,Tomcat数据库连接池的使用涉及添加依赖、配置数据源、上下文配置以及代码中的使用。理解并正确配置这些环节,能帮助Java开发者充分利用连接池的优势,提高应用的运行效率。同时,根据实际需求选择合适的...
Tomcat 数据库连接池设置 Tomcat 数据库连接池是一种高效的数据库连接管理机制,它能够帮助开发者快速建立和管理数据库连接,提高应用程序的性能和可靠性。在本文中,我们将详细介绍 Tomcat 数据库连接池的设置过程...
《TOMCAT数据库连接池配置详解》 TOMCAT数据库连接池配置是Java Web开发中不可或缺的一环,它能够有效地管理和优化数据库连接,提高系统性能。以下是对TOMCAT数据库连接池配置的详细说明。 首先,你需要下载TOMCAT...
tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上...
### Tomcat 数据库连接池配置详解 在Java Web开发中,Tomcat作为一款广泛使用的应用服务器,其数据库连接池配置是十分重要的一个环节。合理的配置能够显著提高应用程序的性能和稳定性。本文将以MySQL数据库为例,...
Tomcat数据库连接池的配置方法总结 Tomcat数据库连接池的配置方法总结是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这...
Tomcat数据库连接池,也称为JDBC连接池,是Tomcat服务器中的一个关键组件,用于管理和优化数据库连接的使用。它在应用程序需要频繁与数据库交互时扮演着重要角色,通过复用已建立的数据库连接,避免了每次请求数据库...
在Tomcat中实现数据库连接池,主要依赖于两个Apache Commons库:`commons-dbcp.jar`和`commons-pool.jar`。 `commons-dbcp.jar`是Apache Commons Database Connection Pooling(DBCP)的实现,它提供了一个数据库...
tomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXT
### Tomcat服务器配置及数据库连接池配置详解 #### 一、Tomcat服务器配置与环境搭建 ##### 1. JDK安装与配置 - **系统环境**:Windows 2003 Server SP3。 - **JDK路径设置**: - `JAVA_HOME` 设置为 `C:\JDK`。 ...
Tomcat数据库连接池 几种常见的配制方法
在 Web 应用程序中,数据库连接池是必不可少的组件,它可以大大提高数据访问的速度和安全性。Tomcat 连接池配置可以帮助开发者更好地管理和维护数据库连接,从而提高应用程序的性能和可靠性。 二、Tomcat 连接池...
其中,数据库连接池作为应用程序与数据库之间的桥梁,扮演着关键角色。然而,当数据库的用户名和密码直接硬编码在配置文件(如Tomcat的`server.xml`)中时,这些敏感信息容易被泄露,从而构成安全隐患。因此,实现...
支持tomcat服务器的数据库连接池,用于jdbc桥连接
### Tomcat数据库连接池的配置和实例 #### 一、引言 在现代Web应用开发中,数据库连接池是一项至关重要的技术。它能够显著提高应用程序的性能和响应速度,通过复用已经建立好的数据库连接来避免频繁创建和销毁连接...
Tomcat 6.0数据库连接池驱动的使用,涉及到的主要知识点包括:数据库连接池的概念与作用,Tomcat内置的数据源实现(DBCP和C3P0),数据源的配置方法,JNDI的使用,以及在Java代码中获取和释放数据库连接。...
### Tomcat5的数据库连接池配置详解 #### 引言 在Java Web开发中,数据库连接池是一项关键的技术,能够显著提升应用性能和资源利用效率。对于Tomcat5这一历史较为悠久但依然在某些场景中活跃的服务器软件,正确...
使用tomcat配置java数据库连接池