`
ijavagos
  • 浏览: 1241362 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Tomcat DBCP 连接池参数说明

阅读更多

参数
说明

username
JDBC驱动建立连接时所需的用户名。

password
JDBC驱动建立连接时所需的用户密码。

url
JDBC驱动建立连接时的连接地址。

driverClassName
使用的JDBC驱动完整JAVA类名。

connectionProperties
JDBC驱动建立连接时附带的连接属性
属性的格式必须为这样:[属性名=property;] *
注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。

--------------------------------------------------------------------------------

参数
默认值
说明

defaultAutoCommit
true
指定由连接池所创建的连接的自动提交(auto-commit)状态。

defaultReadOnly
driver default
指定由连接池所创建的连接的只读(read-only)状态。如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)

defaultTransactionIsolation
driver default
指定由连接池所创建的连接的事务级别(TransactionIsolation)。可用值为下列之一:(详情可见javadoc。)

NONE
READ_COMMITTED
READ_UNCOMMITTED
REPEATABLE_READ
SERIALIZABLE
defaultCatalog
指定由连接池所创建的连接的默认日志。

--------------------------------------------------------------------------------

参数
默认值
说明

initialSize
0
初始化连接池时创建的连接数。
此版后开始提供:1.2

maxActive
8
连接池允许的最大并发连接数,值为非正数时表示不限制。

maxIdle
8
连接池中的最大空闲连接数,超过此数值时多余的空闲连接将会被释放,值为负数时表示不限制。

minIdle
0
连接池中的最小空闲连接数,低于此数值时将会创建所欠缺的连接,值为0时表示不创建。

maxWait
indefinitely
以毫秒表示的当连接池中没有可用连接时等待可用连接返回的时间,超时则抛出异常,值为-1时无限期等待。

--------------------------------------------------------------------------------

参数
默认值
说明

validationQuery
在连接返回给调用者前用于校验连接是否有效的SQL语句。如果指定了SQL语句,则必须为一个“SELECT”语句,且至少会返回一行结果。

testOnBorrow
true
指定连接被调用时是否经过校验。如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接。
注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。

testOnReturn
false
指定连接返回到池中时是否经过校验。
注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。

testWhileIdle
false
指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验(如果存在空闲对象驱逐进程)。如果校验未通过,则该连接被连接池断掉。
注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。

timeBetweenEvictionRunsMillis
-1
以毫秒表示的空闲对象驱逐进程由运行状态进入休眠状态的数值。值为非正数时表示不运行任何空闲对象驱逐进程。

numTestsPerEvictionRun
3
连接池检查每个空闲对象驱逐进程的对象数量(如果存在空闲对象驱逐进程)。

minEvictableIdleTimeMillis
1000 * 60 * 30
以毫秒表示的连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间(如果存在空闲对象驱逐进程)。

--------------------------------------------------------------------------------

参数
默认值
说明

poolPreparedStatements
false
启用“PreparedStatements”缓存池。

maxOpenPreparedStatements
unlimited
由“PreparedStatements”缓存池中取得“PreparedStatements”的最大并发数值,值为0时表示不限制。

此组件也有能力对“PreparedStatements”对象进行缓存。当启用了“PreparedStatements”缓存池时,每个连接通过下列方法建立的“PreparedStatements”对象都会被放入缓存池:

public PreparedStatement prepareStatement(String sql)
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
注意:请保证你的连接有剩余的资源为给其他语句。

--------------------------------------------------------------------------------

参数
默认值
说明

accessToUnderlyingConnectionAllowed
false
控制是否允许“PoolGuard”优先使用连接。

启用此项后,你可以按照下列方法优先使用连接:

Connection conn = ds.getConnection();
Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();
...
conn.close()默认为“false”,这是一个具有潜在威胁的选项,不当的程序可能会做出可怕的事情来(在关闭优先连接或当被守护的连接已经关闭后继续使用优先连接的时候)。小心并且尽量只在当你需要直接驱动指定的扩展时使用。

注意:不要关闭优先连接,它只有一个。

--------------------------------------------------------------------------------

参数
默认值
说明

removeAbandoned
false
是否清除已经超过“removeAbandonedTimout”设置的无效连接。
如果值为“true”则超过“removeAbandonedTimout”设置的无效连接将会被清除。设置此属性可以从那些没有合适关闭连接的程序中恢复数据库的连接。

removeAbandonedTimeout
300
以秒表示的清除无效连接的时限。

logAbandoned
false
当清除无效连接时是否在日志中记录清除信息的标志。
记录无效的语句和连接,并附加每个连接开启或新建一个语句的系统开销。

如果你启用了“removeAbandoned”,可能会导致被设为无效的连接被连接池回收。这个机制将会在满足下列两个条件时启动:(getNumIdle() getMaxActive() - 3)

例如:假设maxActive=20,而当前已经拥有18个活动连接,1个空闲连接,“removeAbandoned”机制将会启动。 但是只有在活动连接没有使用的时长超过“removeAbandonedTimeout”(默认为300秒)的连接被清除。在遍历结果集时,所使用的连接不会被标为活动连接。

转载自【http://www.jackytsu.com/upload/dbcp.html】

【以下是我自己总结】

在hibernate配置文件中设置c3p0-0.9.1.1.jar DBCP的连接池

<!--数据库连接池-->
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.timeout">15000</property>
<property name="hibernate.c3p0.max_statements">1000</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">5</property>
<property name="hibernate.c3p0.validate">false</property>
<property name="hibernate.connection.provider_class"><br>org.hibernate.connection.C3P0ConnectionProvider <br></property>

【tomcat5.5的DBCP配置】

先将 数据库驱动jar包放在 common\lib中,让后改写 conf中的server.xml,如下:

<?xml version="1.0" encoding="UTF-8"?>
<server><br><listener classname="org.apache.catalina.core.AprLifecycleListener"></listener><br><listener classname="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"></listener><br><listener classname="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"></listener><br><listener classname="org.apache.catalina.mbeans.ServerLifecycleListener"></listener><br><globalnamingresources><br><environment></environment> name="simpleValue" <br> type="java.lang.Integer" <br> value="30"/&gt; <br><resource></resource> name="jdbc/innovate" <br> type="javax.sql.DataSource" <br> maxActive="10" <br> removeAbandonedTimeout="1" <br> removeAbandoned="true" <br> logAbandoned="false" <br> maxIdle="3" <br> maxWait="10000" <br> driverClassName="oracle.jdbc.driver.OracleDriver" <br> username="kw_data" <br> password="newmanager" <br> url="jdbc:oracle:thin:@192.168.200.104:1521:cxgkf"/&gt; <br><resource></resource> auth="Container" <br> description="User database that can be updated and saved" <br> name="UserDatabase" <br> type="org.apache.catalina.UserDatabase" <br> pathname="conf/tomcat-users.xml" <br> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/&gt; <br></globalnamingresources><br><service></service> name="Catalina"&gt; <br><connector></connector> port="8080" <br> redirectPort="8443" <br> minSpareThreads="25" <br> connectionTimeout="20000" <br> maxSpareThreads="75" <br> maxThreads="150"&gt; <br><br><connector></connector> port="8009" <br> redirectPort="8443" <br> protocol="AJP/1.3"&gt; <br><br><engine></engine> defaultHost="localhost" name="Catalina"&gt; <br><realm classname="org.apache.catalina.realm.UserDatabaseRealm"></realm><br><host></host> appBase="webapps" name="localhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"&gt; <br><context docbase="Innovate" path="/Innovate" privileged="true" reloadable="false" crosscontext="true"><br><resourcelink name="jdbc/innovate" global="jdbc/innovate" type="javax.sql.DataSource"></resourcelink><br></context><br><br><br><br></server>

分享到:
评论

相关推荐

    DBCP连接池的jar包

    DBCP连接池在Java应用中被广泛使用,尤其是在Web应用服务器中,如Tomcat。 DBCP主要由两个核心组件组成: 1. `commons-dbcp.jar`:这是DBCP的主要库,包含了数据库连接池的实现。它提供了DataSource接口的实现,...

    dbcp连接池和配置文件

    **DBCP连接池的工作原理:** 1. **初始化**:在应用程序启动时,DBCP会预先创建一定数量的数据库连接并放入连接池。 2. **请求连接**:当程序需要与数据库交互时,它向连接池请求一个连接。连接池检查是否有空闲的...

    dbcp连接池常用包

    在标题"dbcp连接池常用包"中,"常用包"指的是DBCP连接池所需的必备库文件,这些文件包含了DBCP的不同版本,分别为1.3、1.4和1.5。每个版本可能对应着不同的功能特性和修复的bug,开发者可以根据项目的兼容性和需求...

    DBCP连接池原理分析

    Tomcat 7保留了DBCP连接池以确保向后兼容性,并引入了一个新的连接池——Tomcat JDBC pool作为DBCP的替代方案。尽管新推出的Tomcat JDBC pool被认为比DBCP 1.4更优秀,但由于不在本文讨论范围之内,故不作深入探讨。...

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

    在Tomcat环境下,连接池通常使用Apache Commons DBCP(Database Connection Pool)来管理数据库连接。默认情况下,DBCP会直接读取配置文件中的用户名和密码,这意味着这些信息是以明文形式存在的。一旦服务器被非法...

    commons中的DBCP连接池jar

    标题"commons中的DBCP连接池jar"指的是Apache Commons DBCP的Java归档文件(JAR),它是Java应用程序可执行的二进制格式。这些JAR文件包括: 1. `commons-dbcp-1.4-javadoc.jar`:这个文件包含了DBCP 1.4版本的API...

    dbcp连接池优化

    #### 四、Tomcat DBCP连接池参数详解 为了更好地理解如何优化DBCP连接池,下面详细介绍一些关键配置参数及其作用: - **基础配置参数**: - `username`: JDBC驱动建立连接时所需的用户名。 - `password`: JDBC...

    tomcat连接池配置

    二、Tomcat内置连接池C3P0和Apache DBCP Tomcat内置了两个常用的数据库连接池实现:C3P0和Apache DBCP。C3P0是一款功能强大的连接池,支持多数据源,具有自动测试连接、自动回收等功能。Apache DBCP是Apache的一个...

    java配置dbcp连接池(数据库连接池)示例分享

    Java配置DBCP连接池(数据库连接池)示例分享 Java配置DBCP连接池是Java应用程序中常用的数据库连接池实现之一。DBCP(Database Connection Pool)是Apache Commons提供的一种开源的数据库连接池实现,旨在提高Java...

    利用dbcp实现数据库连接池

    5. **连接池的初始化**:在应用启动时,我们需要初始化DataSource,这通常在Web应用的上下文中完成,例如在Servlet容器(如Tomcat)中,可以在web.xml文件中配置ContextListener来初始化DataSource。 6. **获取和...

    tomcat数据库连接池的使用

    Tomcat默认使用的是Apache的DBCP(DB Connection Pool)或更现代的C3P0连接池。这两种连接池组件都可以通过修改Tomcat的配置文件来启用和配置。配置主要涉及以下几个步骤: 1. **添加依赖**:首先,确保你的项目...

    dbcp数据库连接池

    DBCP虽然历史悠久,但在性能和稳定性上可能不如其他现代连接池,如HikariCP、C3P0或Tomcat JDBC Connection Pool。这些连接池提供了更好的性能优化和错误处理机制。 总结,DBCP作为一款经典的数据库连接池,虽然在...

    用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源.doc

    综上所述,这个文档主要讲述了如何在Tomcat服务器上,通过Hibernate和JNDI数据源配置,使用DBCP连接池连接MySQL数据库。尽管Hibernate官方并不推荐使用DBCP,但文档仍然提供了详细的配置步骤,包括环境准备、数据库...

    Tomcat连接池的配置

    本文将详细介绍如何配置Tomcat的连接池,即Catalina自带的`Apache Commons DBCP2`或`Apache Tomcat JDBC Pool`。 **一、Tomcat连接池的引入** Tomcat默认并未开启连接池,我们需要手动配置。首先,在Tomcat的`conf...

    DBCP连接池所需完整架包(全)

    是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立...

    tomcat数据连接池配置

    Tomcat内置了多种数据连接池实现,如Apache Commons DBCP、Apache Tomcat JDBC Pool和HikariCP等。其中,HikariCP因其高效、稳定和低延迟的特性,成为许多开发者的首选。 配置Tomcat的数据连接池通常涉及以下几个...

    关于DBCP数据库连接池配置整理宣贯.pdf

    DBCP(DataBase Connection Pool)是Apache组织提供的一款Java数据库连接池组件,它是Tomcat服务器默认使用的连接池组件。数据库连接池技术的主要目的是提高系统性能,减少数据库操作中的资源开销,通过预先创建并...

    tomcat配置连接池方式

    配置Tomcat连接池是一个涉及多个细节的过程,从正确放置JDBC驱动到精确设置`server.xml`和`context.xml`中的参数,每一步都至关重要。通过遵循上述指南,开发者可以有效地管理和优化数据库连接,提高应用的性能和...

Global site tag (gtag.js) - Google Analytics