`
ijavagos
  • 浏览: 1189572 次
  • 性别: 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连接池原理分析

    DBCP连接池介绍 ---------------------...Tomcat7 中保留DBCP连接池,以兼容已有应用。并提供了新的Tomcat JDBC pool作为DBCP的可选替代。新出的Tomcat JDBC pool,据说比DBCP 1.4要好,未接触,也不在本文讨论范围内。

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

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

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

    用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源. 我想此标题已经比较明确了。 在此说明一点,hibernate开发小组不推荐在hibernate下使用dbcp,如果一定要的话,请慎重考虑。

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

    详细讲解tomcat 连接池数据库解密加密方法以及过程。

    DBCP资源池使用jar包

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

    Tomcat连接池DBCP2密码加密

    Tomcat连接池DBCP2密码加密

    Tomcat 7-dbcp配置数据库连接池详解

    Tomcat 7-dbcp配置数据库连接池详解 原理  关于连接池,大家都晓得用来限定对数据库的连接。基本的原理是预先在缓冲池中放入一定的空闲连接,当程序需要和数据库来交互时,不是直接新建数据库连接而是在连接池中...

    DBCP数据库连接池1.2jar包

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

    DBCP连接池

    DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。

    TOMCAT连接池DBCP,在server.xml中配置全局数据源详细的介绍,很有好用啊!!

    TOMCAT连接池DBCP,在server.xml中配置全局数据源详细的介绍,很有好用啊!!

    JdBC的访问方式DBCP连接池和C3P0

    DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。C3P0访问数据库技术,方便快捷,牵扯到的jar包可去网上下载!

    数据库连接池dbcp

    数据库连接池是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。在整合开发框架时会用得到

    java中DBCP数据库连接池使用方法以及jjdbc所需的ar包(commons-pool.jar+commons-dbcp-1.2.2.jar)

    java中DBCP数据库连接池使用方法以及代码文件:(dbcpconfig.properties+JdbcPool_dbcp.java)以及jjdbc所需的ar包(commons-pool.jar+commons-dbcp-1.2.2.jar)

    DBCP( Database Connection Pool )数据库连接池

    DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP; 使用连接池的第一项工作就是导包,这里需要的两个jar包分别是: commons-dbcp-1.4....

    基于DBCP/c3p0/Tomcat的数据库连接池的demo

    基于DBCP,c3p和Tomcat提供的数据库连接池的支持,分别实现了一个demo

    常用四大连接池集合

    常用四大连接池集合c3p0,dbcp...dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。 druid 功能比较全面,且扩展性较好,比较方便对jdbc接口进行监控跟踪等。 HikariCP 光连接池,速度性能最好

    commons-dbcp2-2.9.0-bin.zip

    DBCP(DataBase Connection Pool)是 apache common上的一个 java 连接池项目,也是 tomcat 使用的连接池组件,依赖 于Jakarta commons-pool 对象池机制,DBCP可以直接的在应用程序中使用。 使用DBCP会用到commons-...

    java连接池的配置

    java连接池的配置 里面有C3P0连接池在tomcat中的详细配置 Java反射机制总结,tomcat下配置数据库连接池DBCP、C3P0、Proxool 总结spring下配置dbcp,c3p0,proxool数据源链接池

Global site tag (gtag.js) - Google Analytics