文档章节

tomcat 连接池

夜黑人模糊灬
 夜黑人模糊灬
发布于 2017/09/29 12:15
字数 1596
阅读 10
收藏 1
<bean class="org.apache.tomcat.jdbc.pool.PoolProperties">
    <property name="url" value="${jdbcUrl}"/>
    <!--数据库驱动-->
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <!--用户名-->
    <property name="username" value="mysql"/>
    <!--密码-->
    <property name="password" value="123456"/>
    <!--注册池JMX,默认:true-->
    <property name="jmxEnabled" value="false"/>
    <!--检查连接死活的时间间隔,单位:毫秒-->
    <property name="validationInterval" value="30000"/>
    <!--指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验,如果校验未通过,则该连接被连接池断掉
     值为true,则validationQuery参数必须为一个非空字串---->
    <property name="testWhileIdle" value="false"/>
    <!--指定连接返回到池中是时是否经过校验
     值为true,则validationQuery参数必须为一个非空字串---->
    <property name="testOnReturn" value="false"/>
    <!--指定连接被调用时是否经过校验,如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接
     值为true,则validationQuery参数必须为一个非空字串-->
    <property name="testOnBorrow" value="true"/>
    <!--在连接返回给调用者前用于校验连接是否有效的SQL语句,如果指定了SQL语句,则必须为一个SELECT语句,且至少有一行结果-->
    <property name="validationQuery" value="select 1"/>
    <!--连接池处于活动状态的数据库连接的最大数目,0表示不限制,表示最大并发-->
    <property name="maxActive" value="1000"/>
    <!--初始化连接数-->
    <property name="initialSize" value="10"/>
    <!--连接池中连接用完时,新的请求的等待时间(即等待别的连接空闲),超时返回异常,毫秒-->
    <property name="maxWait" value="100000"/>
    <!--以毫秒表示空闲对象驱逐进程由休眠状态进入运行状态的数值,值为非正整时表示不运行任何空闲对象驱逐进程
     运行判断连接超时任务的时间间隔-->
    <property name="timeBetweenEvictionRunsMillis" value="30000"/>
    <!--以毫秒表示连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间,连接的超时时间,默认为半小时-->
    <property name="minEvictableIdleTimeMillis" value="30000"/>
    <!--连接池检查每个空闲对象驱逐进程的对象数量
        <property name="numTestPerEvictionRun" value="3"/>
    -->
    <!--连接池处于空闲状态的数据库连接的最小数目,低于此数值将会创建所欠缺的连接,设0无限制-->
    <property name="minIdle" value="10"/>
    <!--连接池处于空闲状态的数据库连接的最大数目,取非正整数表示不受限制,超过此数值时多余的空闲连接将会被释放-->
    <property name="maxIdle" value="200"/>
    <!--当清除无效连接时是否在日志中记录清除信息的标志-->
    <property name="logAbandoned" value="false"/>
    <!--是否清除已经超过 removeAbandonedTimeout 设置的无效连接,自动回收超时连接
     启动机制:getNumActive() > getMaxActive() - 3 和 getNumIdle() < 2
     假设maxActive=20,而当前18个活动连接,1个空闲连接,机制将会启动
     但是只有在活动连接没有使用的时长超过“removeAbandonedTimeout”(默认300秒),的连接将被清除-->
    <property name="removeAbandoned" value="true"/>
    <!--以秒表示清除无效连接的时限,自我中断时间,单位秒-->
    <property name="removeAbandonedTimeout" value="60"/>
    <!--设置拦截器,默认为空
     ConnectionState:跟踪自动提交,只读目录和事务隔离级别
     StatementFinalizer:跟踪打开的语句,并关闭连接时的返回到池中
     -->
    <property name="jdbcInterceptors" value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"/>
</bean>

DBCP2

<bean id="datasource2" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="url" value="${jdbcUrl}"/>
    <!--数据库驱动-->
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <!--用户名-->
    <property name="username" value="mysql"/>
    <!--密码-->
    <property name="password" value="123456"/>
    <!-- 指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验,如果校验未通过,则该连接被连接池断掉
     值为true,则validationQuery参数必须为一个非空字串 -->
    <property name="testWhileIdle" value="false"/>
    <!-- 指定连接返回到池中是时是否经过校验
     值为true,则validationQuery参数必须为一个非空字串 -->
    <property name="testOnReturn" value="false"/>
    <!--指定连接被调用时是否经过校验,如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接
     值为true,则validationQuery参数必须为一个非空字串-->
    <property name="testOnBorrow" value="true"/>
    <!--在连接返回给调用者前用于校验连接是否有效的SQL语句,如果指定了SQL语句,则必须为一个SELECT语句,且至少有一行结果-->
    <property name="validationQuery" value="select 1"/>
    <!--连接池处于活动状态的数据库连接的最大数目,0表示不限制,表示最大并发-->
    <property name="maxTotal" value="1000"/>
    <!--初始化连接数-->
    <property name="initialSize" value="10"/>
    <!--连接池中连接用完时,新的请求的等待时间(即等待别的连接空闲),超时返回异常,毫秒-->
    <property name="maxWaitMillis" value="100000"/>
    <!--以毫秒表示空闲对象驱逐进程由休眠状态进入运行状态的数值,值为非正整时表示不运行任何空闲对象驱逐进程
     运行判断连接超时任务的时间间隔-->
    <property name="timeBetweenEvictionRunsMillis" value="30000"/>
    <!--以毫秒表示连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间,连接的超时时间,默认为半小时-->
    <property name="minEvictableIdleTimeMillis" value="30000"/>
    <!--连接池检查每个空闲对象驱逐进程的对象数量
        <property name="numTestPerEvictionRun" value="3"/>
    -->
    <!--连接池处于空闲状态的数据库连接的最小数目,低于此数值将会创建所欠缺的连接,设0无限制-->
    <property name="minIdle" value="10"/>
    <!--连接池处于空闲状态的数据库连接的最大数目,取非正整数表示不受限制,超过此数值时多余的空闲连接将会被释放-->
    <property name="maxIdle" value="200"/>
    <!--当清除无效连接时是否在日志中记录清除信息的标志-->
    <property name="logAbandoned" value="false"/>
    <!--是否清除已经超过 removeAbandonedTimeout 设置的无效连接,自动回收超时连接
     启动机制:getNumActive() > getMaxActive() - 3 和 getNumIdle() < 2
     假设maxActive=20,而当前18个活动连接,1个空闲连接,机制将会启动
     但是只有在活动连接没有使用的时长超过“removeAbandonedTimeout”(默认300秒),的连接将被清除
     只有在timeBetweenEvictionRunsMillis设置为正数的情况下才有效 -->
    <property name="removeAbandonedOnMaintenance" value="true"/>
    <property name="removeAbandonedOnBorrow" value="true"/>
    <!--设置数据库连接被释最多空闲时间多少秒之后设置为空闲,单位秒-->
    <property name="removeAbandonedTimeout" value="60"/>
</bean>

 

© 著作权归作者所有

共有 人打赏支持
夜黑人模糊灬
粉丝 8
博文 71
码字总数 45917
作品 0
程序员
Resin服务器简介、Resin服务器配置说明、Resin配置连接池

一.Resin服务器简介 稍后补: 1、稍后补; 2、稍后补; 二.Resin服务器配置说明(resin.conf配置详解) 三.Resin配置连接池 连接池的概念: 在动态web站点设计中,数据库已成为必不可少的一部...

谢思华
2013/11/13
0
0
数据库连接池

这两天公司的事情不忙,看了一下ssh的框架,在看spring框架的时候看到数据源这一块。就想知道数据源这一块是怎么实现的,以前也有学习过数据源,但感觉没那么系统。在网上看到一个详细介绍数...

zdatbit
2016/05/12
66
0
c3p0、dbcp、tomcat jdbc pool 连接池区别

查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下, 决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。 区别参考链接:http://www.open-open.com/lib/view/o...

张嘴吃药
2017/10/30
0
0
数据库连接池操作步骤及遇到的相应问题

tomcat是非常敏感的,在做改动后一定要重新加载tomcat 今天在用数据库连接池时总显示,数据库未绑定错误。因为之前用的是:dbcp.properties #---------------------------基本设置---------...

hiqj
2013/03/17
0
0
JDBC Item5: 数据库连接池

一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需...

_Roger_
2016/01/27
44
0

没有更多内容

加载失败,请刷新页面

加载更多

00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
40分钟前
0
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
2
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
89
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
3
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部