连接池的相关技术

基本原理:

在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。
如:外部使用者可通过getConnection方法获取连接,使用完毕后再通过releaseConnection方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

Ø资源重用
  由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。
Ø更快的系统响应速度
  数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用,此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间

Ø新的资源分配手段

  对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。

Ø统一的连接管理,避免数据库连接泄漏

  在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏 。

--连接池的管理

Ø当客户请求数据库连接时,首先查看连接池中是否有空闲连接(指当前没有分配出去的连接)
Ø如果存在空闲连接,则把连接分配给客户并作相应处理(即标记该连接为正在使用,引用计数加1)
Ø如果没有空闲连接,则查看当前所开的连接数是不是已经达到maxConn(最大连接数),如果没达到就重新创建一个连接给请求的客户
Ø如果达到就按设定的maxWaitTime(最大等待时间)进行等待
Ø如果等待maxWaitTime后仍没有空闲连接,就抛出无空闲连接的异常给用户
Ø当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就删除该连接
Ø判断当前连接池内总的连接数是否小于minConn(最小连接数),若小于就将连接池充满,如果没超过就将该连接标记为开放状态,可供再次复用
Ø注意:以上策略保证了数据库连接的有效复用,避免频繁地建立、释放连接所带来的系统资源开销 



 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值