设为首页 收藏本站
查看: 680|回复: 0

[经验分享] Tomcat DBCP 连接池参数说明

[复制链接]

尚未签到

发表于 2017-2-2 09:06:29 | 显示全部楼层 |阅读模式
  参数   
说明
  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>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-336372-1-1.html 上篇帖子: Tomcat服务器配置参考JNDI 下篇帖子: 从tomcat移动到resin的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表