前言

连接池本质作用是为客户端提供连接复用,提升连接效率,降低系统开销。Tomcat的连接池提供了maxActive,maxWait,maxIdle,minIdle,initialSize等参数,配置连接池的大小,用户根据自身业务需求配置这几个参数。同时,因为对端数据库服务器状态不受tomcat控制,所以tomcat需要有检查连接可用性的机制,通过testOnBorrow,testWhileIdle等选项用户可以告诉tomcat是否检查连接可用性以及如何检查。

1,连接池大小及性能选项

maxActive:最主要参数,配置连接池同时能维持的最大连接数,如果客户端理论上需要100个连接,则这个值设为100。
maxIdle:如果客户端一段时间内不需要使用连接,又一直把所有连接池中的所有连接都维持在活动状态是很浪费资源的,所以maxIdle这个选项告诉tomcat,如果客户端没有需求,那么最多维持maxIdle个空闲连接。
minIdle:和maxIdle类似,maxIdle告诉tomcat最多维持多少个空闲连接,minIdle告诉tomcat即使客户端没有需求,也要至少维持多少个空闲连接,以应对客户端的突发需求。
initialSize:连接池启动时要初始化多少个连接,即使客户端这是没有需求,也会初始化空闲连接。
maxWait:连接池出借连接的最长期限,单位是毫秒,比如设为10000ms,客户端从连接池获取(借出)一个连接后,10000毫秒没有归还(return),则连接池会抛出异常。
maxAge:连接池中一个连接的寿命,连接池初始化一个连接后,会记下初始化的时间,以后每次出借,或有客户端归还这个连接时,连接池会检查 当前时间 - 初始化时间 > maxAge,如果超过maxAge,连接池会删除这个连接。

2,连接检查选项

mysql5以后,如果连接长时间不活动 (34,247,052 ms≈ 9.5 小时),mysql数据库会断开连接,这会导致异常:MySQLNonTransientConnectionException: No operations allowed after connection closed,以下选项将会告诉连接池,主动检查连接可用性,避免这个异常发生。

validationQuery:检查连接可用性的语句,一般来说mysql设置成SELECT 1, oracle设置成select 1 from dual, sql server设置成SELECT 1 ,在检查连接可用性时,连接池会执行这些语句,如果返回结果不为空,则说明连接可用。
validationQueryTimeout:执行连接检查语句时的超时时间。

上面两个选项告诉连接池如何检查连接有效性,下面几个选项告诉连接池在何时检查连接有效性

testOnConnect: 在连接初始化时执行连接可用性检查
testOnBorrow:在借出连接时检查连接可用性
testOnReturn:在客户端归还连接时检查连接可用性
testWhileIdle:在检查闲置连接时同时检查连接可用性

3,一个典型的连接池设置

  <Resource name="jdbc/your-jndi-name" auth="Container" type="javax.sql.DataSource"factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" maxActive="30" maxIdle="10" minIdle="5" maxWait="100000" initialSize="5" testWhileIdle="true"testOnBorrow="true" testOnReturn="false" validationQuery="SELECT 1" validationInterval="30000" timeBetweenEvictionRunsMillis="30000" maxAge="14400000"username="your-username" password="your-password" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://host-address:3306/your-db-name?useUnicode=true&amp;characterEncoding=utf-8&amp;disableMariaDbDriver"/>

连接池中 maxActive,maxWait,maxAge,maxIdel参数相关推荐

  1. 【连接池】Tomcat 连接池中 maxActive,maxWait,maxAge,testOnBorrow,testWhileIdle等选项的作用

    前言 连接池本质作用是为客户端提供连接复用,提升连接效率,降低系统开销.Tomcat的连接池提供了maxActive,maxWait,maxIdle,minIdle,initialSize等参数,配置 ...

  2. 连接池中的maxIdle,MaxActive,maxWait参数

    连接池中的参数介绍: name:表示你的连接池的名称也就是你要访问连接池的地址 auth:是连接池管理权属性,Container表示容器管理 type:是对象的类型 driverClassName:是 ...

  3. 连接池中的maxIdle,MaxActive,maxWait等参数详解

    转: 连接池中的maxIdle,MaxActive,maxWait等参数详解 2017年06月03日 15:16:22 阿祥小王子 阅读数:6481 版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  4. evt参数是干啥用的_http连接池中非常关键的两个参数,到底是干啥用的?

    作者简介:大厂一线资深开发.从crud开发到资深开发,再到研究员兼技术经理.<资深开发讲技术> 从一线实战中总结有故事,有背景的案例,希望带给大家一系列技术盛宴. 求关注,欢迎技术交流.友 ...

  5. 第三十三期:连接池中非常关键的两个参数,到底是干啥用的?

    说来惭愧,从事互联网开发好些年了,有些概念一直没有彻底搞清楚.其中之一就是,ttp client配置连接池的时候,maxConnectionsPerHost,和maxTotalConnections, ...

  6. oracle conneciton properties,在WAS Liberty连接池中,我可以验证借用连接吗?

    我们当前正在将应用程序迁移到Liberty服务器(8.5.5.9)上运行.我们发现应用程序服务器和数据库之间的连接偶尔会被防火墙终止,因为它们会在很长一段时间内处于空闲状态.发生这种情况时,在下一个H ...

  7. 聊聊 SQLAlchemy 连接池中的连接失效问题

    最近项目中事情比较多,也遇到了一些问题,其中有一个是关于连接池的,比较有意思,这里分享下. 一天早上,进入业务系统,点击了一个功能按钮,页面上突然弹出个 MySQL gone away 的错误,我擦, ...

  8. 浅谈各种连接池中连接数量的设置

    连接池中连接数量的配置 我们日常开发中经常会用到各种连接池,比如httpclient和jediscluster以及druid等数据库连接池,当使用这些连接池的时候我们总是很疑惑到底要怎么配置连接池中连 ...

  9. 连接池中的最大连接数和最小连接数

    maximum-connection-count 最大连接数, minimun-connection-count 最小连接数 proxool 是一个连接池,池中放了多个连接对象,这两个值设置连接对象数 ...

最新文章

  1. Angular应用中配置全局路径映射
  2. 拿到input输入的时间_【Keras 笔记】Input/Dense层的数学本质
  3. python怎么样才算入门编程-新手如何入门Python编程
  4. 一分钟了解阿里云产品:容器服务概述
  5. 排序和顺序统计学(2)——快速排序
  6. 电气:需求响应:初始化一个调度周期的可转入转出负荷(python实现)
  7. host文件知识详解
  8. 算法我也不知道有没有下一个---一个题目的开端(索引堆与图)
  9. 用python可以解决什么问题_学 Python 能帮你解决什么问题 ?
  10. 让低版本IE兼容H5+CSS3新特性的方法
  11. 营销系统优惠券模板设计
  12. Adblock Plus官网最新下载 中文,绿色版Adblock Plus下载谷歌插件,edge,电脑版exe,火狐版,搜狗浏览器,ie浏览器
  13. 冶金矿山数字化价值链分析
  14. 百度 android 笔试题库,百度科目一考试题库
  15. android国外壁纸app,听说在国外很火?Action安卓启动器体验
  16. 湖南大学工训创新大作业——改进电子音乐
  17. Outlook2019关联163邮箱
  18. 单片机c语言电梯程序设计,基于51单片机的模拟电梯控制系统设计.doc
  19. js将数字转换成万、亿、万亿
  20. java 转换unix时间戳,Java与Unix时间戳的相互转换详解

热门文章

  1. Linux pinctrl子系统分析之三 数据结构分析
  2. 零基础数据挖掘入门系列(四) - 特征工程
  3. 《Android 移动应用基础教程(Android Studio)(第2版)》【课本客观题】+【学习通2023春】【参考答案】
  4. TableLayout中collapseColumns,stretchColumns的介绍
  5. 瓶盖扫码回收APP系统 废旧物品创造价值收益
  6. 英文SCI/EI期刊投稿Reply Letter常用格式总结(转载)
  7. C#2022/11/2
  8. 基于嵌入莱维飞行的灰狼优化(LGWO)算法的函数寻优算法
  9. 网络上的计算机病毒怎么办,电脑中病毒怎么办  电脑病毒的危害有哪些
  10. 基于车位号码的地下停车场蒙特卡洛定位系统