`
hongwei3344661
  • 浏览: 31867 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

tomcat数据库连接池

 
阅读更多

java 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"/>
复制代码

参数含义: JNDI (java naming and directory interface): Java 命名和目录接口

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

    tomcat数据库连接池设置

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

    Tomcat数据库连接池

    Tomcat数据库连接池,也称为JDBC连接池,是Tomcat服务器中的一个关键组件,用于管理和优化数据库连接的使用。它在应用程序需要频繁与数据库交互时扮演着重要角色,通过复用已建立的数据库连接,避免了每次请求数据库...

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

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

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

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

    tomcat数据库连接池配置

    ### Tomcat 数据库连接池配置详解 在Java Web开发中,Tomcat作为一款广泛使用的应用服务器,其数据库连接池配置是十分重要的一个环节。合理的配置能够显著提高应用程序的性能和稳定性。本文将以MySQL数据库为例,...

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

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

    tomcat数据库连接池配置.TXT

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

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

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

    Tomcat数据库连接池配置

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

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

    在Tomcat中实现数据库连接池,主要依赖于两个Apache Commons库:`commons-dbcp.jar`和`commons-pool.jar`。 `commons-dbcp.jar`是Apache Commons Database Connection Pooling(DBCP)的实现,它提供了一个数据库...

    一个简单dwr的使用例子,tomcat数据库连接池

    这个例子展示了如何在Web应用程序中使用DWR与Tomcat数据库连接池来实现Ajax交互,从而实现实时的客户端-服务器通信。 首先,我们需要了解DWR的基本工作原理。DWR允许JavaScript在用户的浏览器中直接调用服务器端的...

    使用dbutils获取tomcat数据库连接池.pdf

    【使用dbutils获取tomcat数据库连接池】 Apache Commons DBUtils是一个轻量级的Java库,它简化了对JDBC API的使用,通过提供一个抽象层来处理常见的数据库操作,如查询、更新等,从而减少代码量和出错的可能性。本...

    oracleXE-Tomcat 数据库连接池实例

    在Java Web开发中,数据库连接池是一种重要的技术,它能有效地管理和复用数据库连接,提高系统的性能和效率。本实例将介绍如何在Oracle XE数据库与Tomcat之间配置连接池。 首先,我们需要了解连接池的基本概念。...

    tomcat配置数据库连接池

    总结,配置Tomcat数据库连接池是Java Web开发中的重要环节,合理的配置和使用能显著提升系统的稳定性和性能。理解连接池的工作原理和配置方法,有助于我们在实际项目中更好地管理和优化数据库资源。

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

    本文档将详细介绍如何在自安装的Tomcat服务器以及JBuilder自带的Tomcat中配置数据库连接池,确保开发与调试过程中的高效性。 #### 二、准备工作 1. **安装Tomcat** - 确保安装的Tomcat版本支持数据库连接池功能...

Global site tag (gtag.js) - Google Analytics