Tomcat DBCP 连接池参数说明

<p>参数 <br>说明 </p> <p>username <br>JDBC驱动建立连接时所需的用户名。 </p> <p>password <br>JDBC驱动建立连接时所需的用户密码。 </p> <p>url <br>JDBC驱动建立连接时的连接地址。 </p> <p>driverClassName <br>使用的JDBC驱动完整JAVA类名。 </p> <p>connectionProperties <br>JDBC驱动建立连接时附带的连接属性 <br>属性的格式必须为这样:[属性名=property;] * <br>注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>defaultAutoCommit <br>true <br>指定由连接池所创建的连接的自动提交(auto-commit)状态。 </p> <p>defaultReadOnly <br>driver default <br>指定由连接池所创建的连接的只读(read-only)状态。如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix) </p> <p>defaultTransactionIsolation <br>driver default <br>指定由连接池所创建的连接的事务级别(TransactionIsolation)。可用值为下列之一:(详情可见javadoc。) </p> <p>NONE <br>READ_COMMITTED <br>READ_UNCOMMITTED <br>REPEATABLE_READ <br>SERIALIZABLE <br>defaultCatalog <br>指定由连接池所创建的连接的默认日志。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>initialSize <br>0 <br>初始化连接池时创建的连接数。 <br>此版后开始提供:1.2 </p> <p>maxActive <br>8 <br>连接池允许的最大并发连接数,值为非正数时表示不限制。 </p> <p>maxIdle <br>8 <br>连接池中的最大空闲连接数,超过此数值时多余的空闲连接将会被释放,值为负数时表示不限制。 </p> <p>minIdle <br>0 <br>连接池中的最小空闲连接数,低于此数值时将会创建所欠缺的连接,值为0时表示不创建。 </p> <p>maxWait <br>indefinitely <br>以毫秒表示的当连接池中没有可用连接时等待可用连接返回的时间,超时则抛出异常,值为-1时无限期等待。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>validationQuery <br>在连接返回给调用者前用于校验连接是否有效的SQL语句。如果指定了SQL语句,则必须为一个“SELECT”语句,且至少会返回一行结果。 </p> <p>testOnBorrow <br>true <br>指定连接被调用时是否经过校验。如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接。 <br>注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。 </p> <p>testOnReturn <br>false <br>指定连接返回到池中时是否经过校验。 <br>注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。 </p> <p>testWhileIdle <br>false <br>指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验(如果存在空闲对象驱逐进程)。如果校验未通过,则该连接被连接池断掉。 <br>注意:要想值为true时该设置生效,则validationQuery参数必须为一个非空字串。 </p> <p>timeBetweenEvictionRunsMillis <br>-1 <br>以毫秒表示的空闲对象驱逐进程由运行状态进入休眠状态的数值。值为非正数时表示不运行任何空闲对象驱逐进程。 </p> <p>numTestsPerEvictionRun <br>3 <br>连接池检查每个空闲对象驱逐进程的对象数量(如果存在空闲对象驱逐进程)。 </p> <p>minEvictableIdleTimeMillis <br>1000 * 60 * 30 <br>以毫秒表示的连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间(如果存在空闲对象驱逐进程)。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>poolPreparedStatements <br>false <br>启用“PreparedStatements”缓存池。 </p> <p>maxOpenPreparedStatements <br>unlimited <br>由“PreparedStatements”缓存池中取得“PreparedStatements”的最大并发数值,值为0时表示不限制。 </p> <p>此组件也有能力对“PreparedStatements”对象进行缓存。当启用了“PreparedStatements”缓存池时,每个连接通过下列方法建立的“PreparedStatements”对象都会被放入缓存池: </p> <p>public PreparedStatement prepareStatement(String sql) <br>public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) <br>注意:请保证你的连接有剩余的资源为给其他语句。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>accessToUnderlyingConnectionAllowed <br>false <br>控制是否允许“PoolGuard”优先使用连接。 </p> <p>启用此项后,你可以按照下列方法优先使用连接: </p> <p>Connection conn = ds.getConnection(); <br> Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate(); <br> ... <br> conn.close()默认为“false”,这是一个具有潜在威胁的选项,不当的程序可能会做出可怕的事情来(在关闭优先连接或当被守护的连接已经关闭后继续使用优先连接的时候)。小心并且尽量只在当你需要直接驱动指定的扩展时使用。 </p> <p>注意:不要关闭优先连接,它只有一个。 </p> <p>-------------------------------------------------------------------------------- </p> <p>参数 <br>默认值 <br>说明 </p> <p>removeAbandoned <br>false <br>是否清除已经超过“removeAbandonedTimout”设置的无效连接。 <br>如果值为“true”则超过“removeAbandonedTimout”设置的无效连接将会被清除。设置此属性可以从那些没有合适关闭连接的程序中恢复数据库的连接。 </p> <p>removeAbandonedTimeout <br>300 <br>以秒表示的清除无效连接的时限。 </p> <p>logAbandoned <br>false <br>当清除无效连接时是否在日志中记录清除信息的标志。 <br>记录无效的语句和连接,并附加每个连接开启或新建一个语句的系统开销。 </p> <p>如果你启用了“removeAbandoned”,可能会导致被设为无效的连接被连接池回收。这个机制将会在满足下列两个条件时启动:(getNumIdle() getMaxActive() - 3) </p> <p>例如:假设maxActive=20,而当前已经拥有18个活动连接,1个空闲连接,“removeAbandoned”机制将会启动。 但是只有在活动连接没有使用的时长超过“removeAbandonedTimeout”(默认为300秒)的连接被清除。在遍历结果集时,所使用的连接不会被标为活动连接。 </p> <p>转载自【<a href="http://www.jackytsu.com/upload/dbcp.html%E3%80%91">http://www.jackytsu.com/upload/dbcp.html】</a></p> <p>【以下是我自己总结】 </p> <p>在hibernate配置文件中设置c3p0-0.9.1.1.jar DBCP的连接池 </p> <p><!--数据库连接池--> <br><property name="hibernate.c3p0.max_size">5</property><br><property name="hibernate.c3p0.min_size">2</property><br><property name="hibernate.c3p0.timeout">15000</property><br><property name="hibernate.c3p0.max_statements">1000</property><br><property name="hibernate.c3p0.idle_test_period">3000</property><br><property name="hibernate.c3p0.acquire_increment">5</property><br><property name="hibernate.c3p0.validate">false</property><br><property name="hibernate.connection.provider_class"><br>org.hibernate.connection.C3P0ConnectionProvider <br></property></p> <p>【tomcat5.5的DBCP配置】 </p> <p>先将 数据库驱动jar包放在 common/lib中,让后改写 conf中的server.xml,如下: </p> <p><?xml version="1.0" encoding="UTF-8"?><br><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></p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值