`
linyu19872008
  • 浏览: 281229 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat数据库连接池配置

 
阅读更多

 

1. 在tomcat服务器目录下面的conf中找到一个叫Context.xml的配置文件,在其中加入以下代码

 

<Resource name="jdbc/books" 
auth="Container"type="javax.sql.DataSource" maxActive="100" 
maxIdle="30" maxWait="10000" username="sa" password="120010" 
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>

 

 

 

 

maxActive="100"

 

表示并发情况下最大可从连接池中获取的连接数。如果数据库不是单独,供一个应用使用,通过设置maxActive参数可以避免某个应用无限制

 

的获取连接对其他应用造成影响,如果一个数据库只是用来支持一个应用那么maxActive理论上可以设置成该数据库可以支撑的最大连接数。

 

maxActive只是表示通过连接池可以并发的获取的最大连接数。连接的获取与释放是双向,当应用程序并发请求连接池时,连接池就需要从数

 

据库获取连接,那么但应用程序使用完连接并将连接归还给连接池时,连接池是否也同时将连接归还给数据库呢?很显然答案是否定的,如

 

果那样的话连接池就变得多此一举,不但不能提高性能,反而会降低性能,那么但应用成归还连接后,连接池如何处理呢?

 

maxIdle="30"

 

如果在并发时达到了maxActive=100,那么连接池就必须从数据库中获取100个连接来供应用程序使用,当应用程序关闭连接后,由于

 

maxIdle=30,因此并不是所有的连接都会归还给数据库,将会有30个连接保持在连接池种中,状态为空闲。

 

minIdle=”2”

 

最小默认情况下并不生效,它的含义是当连接池中的连接少有minIdle,系统监控线程将启动补充功能,一般情况下我们并不启动补充线程。

 

问题:如何设置maxActive和maxIdle?

 

理论上讲maxActive应该设置成应用的最大并发数,这样一来即便是在最大并发的情况下,应用依然能够从连接池中获取连接,但是困难时的

 

是我们很难准确估计到最大并发数,设置成最大并发数是一种最优的服务质量保证,事实上,如果某个用户登录提示系统繁忙,那么在他再

 

次登录时,可能系统资源已经充足,对于拜特资金管理系统我们建议将maxActive设置为系统注册人数的十分之一到二十分之一之间。例如系

 

统的注册人数为1000,那么设置成50-100靠近100的数字,例如85或90。

 

 maxIdle对应的连接,实际上是连接池保持的长连接,这也是连接池发挥优势的部分,理论上讲保持较多的长连接,在应用请求时可以更快

 

的响应,但是过多的连接保持,反而会消耗数据库大量的资源,因此maxIdle也并不是越大越好,同上例我们建议将 maxIdle设置成

 

50-100中靠近50的数字,例如55。这样就能在兼顾最大并发同时,保持较少的数据库连接,而且在绝大多情况,能够为应用程序提供最快的

 

相应速度。

 

 removeAbandoned="true"

 

removeAbandonedTimeout="60"

 

logAbandoned="true"

 

有时粗心的程序编写者在从连接池中获取连接使用后忘记了连接的关闭,这样连池的连接就会逐渐达到maxActive直至连接池无法提供服务。

 

现代连接池一般提供一种“智能”的检查,但设置了removeAbandoned="true"时,当连接池连接数到达(getNumIdle() < 2) and 

 

(getNumActive() > getMaxActive() - 3)时便会启动连接回收,那种活动时间超过removeAbandonedTimeout="60"的连接将会被回收,同时

 

如果logAbandoned="true"设置为true,程序在回收连接的同时会打印日志。removeAbandoned是连接池的高级功能,理论上这中配置不应该出

 

现在实际的生产环境,因为有时应用程序执行长事务,可能这种情况下,会被连接池误回收,该种配置一般在程序测试阶段,为了定位连接

 

泄漏的具体代码位置,被开启,生产环境中连接的关闭应该靠程序自己保证。

 

 

 

2.  第二步将 数据驱动.jar 放入tomcat目录下的lib或common\lib下面

3.  第三步,打开应用程序的 Web.xml文件,添加以下配置

 

<resource-ref>
<res-ref-name>jdbc/books</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

 节点数据来源于Context.xml里面设置的数据

 

 

4. 在java文件中先导入以下包

 

import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

 

将原来的数据库连接操作

Class.forName("oracle.jdbc.driver.OracleDriver");
if( conn == null || conn.isClosed() ) 
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL",
"system",
"accp");

 换成

 

 

Context c = new InitialContext();
DataSource ds = (DataSource)c.lookup("java:comp/env/jdbc/books");
conn = ds.getConnection();

 

 

记得要捕获 NamingException 与 SQLException 异常

 

使用连接池的好处是

 

数据库操作性能得到提升

通过连接池管理数据库的连接与释放、提高了系统资源的使用效率

 

 

 

 

分享到:
评论

相关推荐

    TOMCAT数据库连接池配置说明文档

    《TOMCAT数据库连接池配置详解》 TOMCAT数据库连接池配置是Java Web开发中不可或缺的一环,它能够有效地管理和优化数据库连接,提高系统性能。以下是对TOMCAT数据库连接池配置的详细说明。 首先,你需要下载TOMCAT...

    tomcat数据库连接池配置网上文章&csdn上的代码.rar

    tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上...

    tomcat数据库连接池配置.TXT

    tomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXT

    Tomcat数据库连接池配置

    Tomcat数据库连接池 几种常见的配制方法

    tomcat 数据库连接池配置的jar包

    配置Tomcat的数据库连接池通常涉及以下步骤: 1. 将`commons-dbcp.jar`和`commons-pool.jar`添加到Tomcat的`lib`目录下,这样Tomcat就可以在整个应用服务器范围内访问这两个库。 2. 创建一个XML配置文件(例如`...

    Tomcat连接池配置.doc

    Tomcat 连接池配置详解 Tomcat 连接池配置是 Web 应用程序中一个非常重要的组件,它负责管理和维护数据库连接,确保数据访问的高速和安全性。本文将详细介绍 Tomcat 连接池配置的步骤和原理,帮助读者快速掌握 ...

    Tomcat5的数据库连接池配置Tomcat5的数据库连接池配置

    ### Tomcat5的数据库连接池配置详解 #### 引言 在Java Web开发中,数据库连接池是一项关键的技术,能够显著提升应用性能和资源利用效率。对于Tomcat5这一历史较为悠久但依然在某些场景中活跃的服务器软件,正确...

    Tomcat服务器配置及数据库连接池配置(个人整理版)

    ### Tomcat服务器配置及数据库连接池配置详解 #### 一、Tomcat服务器配置与环境搭建 ##### 1. JDK安装与配置 - **系统环境**:Windows 2003 Server SP3。 - **JDK路径设置**: - `JAVA_HOME` 设置为 `C:\JDK`。 ...

    tomcat数据库连接池的使用

    总结来说,Tomcat数据库连接池的使用涉及添加依赖、配置数据源、上下文配置以及代码中的使用。理解并正确配置这些环节,能帮助Java开发者充分利用连接池的优势,提高应用的运行效率。同时,根据实际需求选择合适的...

    tomcat数据库连接池设置

    Tomcat 数据库连接池设置 Tomcat 数据库连接池是一种高效的数据库连接管理机制,它能够帮助开发者快速建立和管理数据库连接,提高应用程序的性能和可靠性。在本文中,我们将详细介绍 Tomcat 数据库连接池的设置过程...

    如何设置TOMCAT数据库连接池

    #### 二、TOMCAT数据库连接池配置详解 在TOMCAT服务器中配置数据库连接池主要涉及到以下几个步骤: 1. **安装必要的驱动**:确保在`%TOMCAT_HOME%\common\lib`目录下存在所需的数据库驱动。例如,对于Oracle数据库...

    Tomcat数据库连接池的配置方法总结.docx

    Tomcat数据库连接池的配置方法总结 Tomcat数据库连接池的配置方法总结是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这...

    数据库连接池配置终极指南

    通过对Tomcat的部署流程和数据库连接池配置的详细介绍,我们可以看到使用现代化的开发工具和技术可以极大地简化开发工作,提升开发效率。在实际操作过程中,遵循最佳实践,利用可用的工具和服务,可以使配置过程变得...

    Tomcat数据库连接池

    配置Tomcat数据库连接池的常见问题包括:连接泄露、连接池溢出、连接超时等。这些问题可以通过调整连接池参数、定期检查和优化SQL语句、监控系统资源使用情况等手段来解决。 在压缩包文件中,可能包含这些数据库...

    tomcat_连接池数据库密码加密解密方法

    其中,数据库连接池作为应用程序与数据库之间的桥梁,扮演着关键角色。然而,当数据库的用户名和密码直接硬编码在配置文件(如Tomcat的`server.xml`)中时,这些敏感信息容易被泄露,从而构成安全隐患。因此,实现...

    Tomcat数据库连接池的配置和实例

    ### Tomcat数据库连接池的配置和实例 #### 一、引言 在现代Web应用开发中,数据库连接池是一项至关重要的技术。它能够显著提高应用程序的性能和响应速度,通过复用已经建立好的数据库连接来避免频繁创建和销毁连接...

    Tomcat6连接池配置详解(自动重连)

    ### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...

Global site tag (gtag.js) - Google Analytics