dbcp连接池配置详解

dbcp连接池配置详解,第1张

首先,明确连接、活动连接(连接正被使用)、空闲连接的概念

一、创建连接

1、初始化 2、空闲连接低于最小空闲minIdle

二、销毁连接

1、空闲连接数目高于最大空闲 2、活动连接被遗弃

三、回收行为

1、空闲连接回收器(定时执行)2、连接回收器(maxwait后触发)

initialSize 初始化连接数,即连接池启动时池子中的连接数目

maxActive 最大活动连接数,即连接池中可同时连接的最大数目

minIdle 最小空闲连接,连接池中最少的空闲的连接数,

低于这个数量时,意味着连接不够用了,会被创建新的连接

默认为0,该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;

不宜太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接,类似于jvm参数中的Xmn设置。

maxIdle 最大空闲连接

超过此参数时空闲连接将被释放,如果设置为负数表示不限制

默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置。

maxIdle 最大空闲连接

超过此参数时空闲连接将被释放,如果设置为负数表示不限制

默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置

maxWait 请求连接时,最长的等待时间。

单位ms,当没有可用连接时,连接池会等待连接释放,超过该时间限制会抛出异常,如果设置-1表示无限等待(默认为无限)。

建议你用开源的数据库连接池,比如C3p0,Durib 这些。一个是成熟,该趟的坑大家都趟过,在网上可以快速找到解决方法。如国感兴趣,有能力可以看看人家的代码,进而实现自己的数据库连接池。

关于,自己写 大概需要两个东西,一是实例池(commons-pool 被DBCP采用,Dbcp-Hibernate 的连接池)和代理模式。有了这两个东西应该比较容易看懂数据库连接池了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9576979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存