- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tomcat数据库连接池DHCP分享解读
DHCP分享
Tomcat研究之
数据连接池的相关内容
数据连接池的意义
建立一个数据连接是很消耗资源的
时间意义:
客户端响应时间
越小的处理响应就代表着更大的系统承载能力
……
空间意义
宝贵的数据库进程资源
频繁的分配和销毁进程资源是稳定生产的大忌
带宽应该更多的用于传输有生产意义的内容
……
数据连接池的使用
容器级
应用级
代码级
JNDI的使用 Java Naming and Directory Interface
Server.xml
GlobalNamingResources
Context.xml
Environment
Resource
ResourceLink
Transaction
Web.xml
env-entry
resource-ref
resource-env-ref
数据库连接在池中的状态
应该有目的配置dhcp
DHCP相关配置
资源的上限
相关属性:maxActive
所有访问某数据库的应用的maxActive之和不应该超过数据库连接上限
并发相关配置
maxActive
initialSize
系统应对突发的并发冲击的可能性
minIdle
和initialSize的关系
maxIdle
没有放逐线程的情况
有放逐线程的情况
maxWait
极高并发下,永远等待应该是一个很糟糕的配置
连接可靠性配置
validationQuery
测试连接的SQL语句,必须返回数据
testOnBorrow
testOnReturn
testWhileIdle
timeBetweenEvictionRunsMillis
numTestsPerEvictionRun
资源释放配置
maxIdle
在连接归还的时候检查
timeBetweenEvictionRunsMillis
numTestsPerEvictionRun
minEvictableIdleTimeMillis
空闲连接的生命线
abandoned数据库连接配置
removeAbandoned
是否移除废弃的对象
removeAbandonedTimeout
移除废弃对象前,这些对象idle的时间(秒)
logAbandoned
是否打印废弃对象时的栈信息
其他配置
事务相关
Statement的缓存
数据库连接的直接引用
不同的场景应该有不同的配置
配置的优化
DHCP使用层级的选择
容器级
应用间共享连接
应用级
应用内共享
代码级
……
DHCP配置的选择
并发高/低
是否需要应对访问冲击
访问冲击的形态,波次/持续
连接可靠性
运行持久性
Dhcp配置在开发、测试、压力、联调和生产上的应用
和我们相关
实例
原来的数据库配置
initialSize=5
maxActive=30
maxIdle=-1
minIdle=5
validationQuery=select dpm from dual
testOnBorrow=true
testOnReturn=true
testWhileIdle=true
timeBetweenEvictionRunsMillis=“60000
numTestsPerEvictionRun=10
minEvictableIdleTimeMillis=“60000
maxWait=10000
实例
修改了部分应用,数据库连接的观察情况
14:25:39
17:41:51
实例
现在的数据库配置
initialSize=5
maxActive=30
maxIdle=-1
minIdle=5
validationQuery=select dpm from dual
testOnBorrow=true
testOnReturn=true
testWhileIdle=true
timeBetweenEvictionRunsMillis=“60000
numTestsPerEvictionRun=10
minEvictableIdleTimeMillis= maxWait=10000
实例
修改了全部部分应用,数据库连接的观察情况
15:28:59
17:55:24
我们现在的生产状况
一个应用一个容器
数据库连接的浪费
大规模数据冲击是否存在资源不足(活动)
平时低访问量带来的问题
文档评论(0)