[发明专利]一种获取数据库连接池中连接的方法和数据库连接池有效
申请号: | 201310252758.X | 申请日: | 2013-06-24 |
公开(公告)号: | CN104239365B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 乔巍冉 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝;齐辉 |
地址: | 100089 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 连接池 数据库连接池 可用 空闲连接 控制器 获取请求 放入 调用 初始化过程 控制器判断 数据库 发送 | ||
1.一种获取数据库连接池中连接的方法,其特征在于,在所述数据库连接池中设置连接池控制器、空闲连接池和已使用连接池,所述方法包括:
在初始化过程中,所述连接池控制器启用数据库的预定数量的可用连接,并将该可用连接放入所述空闲连接池中;
当接收到调用端的连接获取请求时,所述连接池控制器判断所述空闲连接池中是否存在可用连接;
当所述空闲连接池中存在可用连接时,所述连接池控制器根据所述连接获取请求从所述空闲连接池中提取可用连接;
所述连接池控制器将所述提取到的可用连接放入所述已使用连接池中,并将该提取到的可用连接发送至调用端使用;
其中,放入所述空闲连接池中连接的状态设置为空闲,放入所述已使用连接池中连接的状态设置为已使用;
所述方法还包括:
当需要向所述空闲连接池中放入新连接时,所述连接池控制器判断该新连接放入后所述空闲连接池中连接的总数量是否大于第一数量阈值,若是,禁止该新连接放入所述空闲连接池中,若否,允许该新连接放入所述空闲连接池中;
当需要向所述已使用连接池中放入新连接时,所述连接池控制器判断该新连接放入后所述已使用连接池中连接的总数量是否大于第二数量阈值,若是,禁止该新连接放入所述已使用连接池中,若否,允许该新连接放入所述已使用连接池中;
所述连接池控制器根据所述连接获取请求从所述空闲连接池中提取可用连接包括:
所述连接池控制器将接收到的多个所述连接获取请求依次加入等待队列中;
所述连接池控制器对该等待队列中的每个连接获取请求,判断该连接获取请求的等待时间是否超过预设的等待时间阈值,若未超过等待时间阈值,则根据所述连接获取请求从所述空闲连接池中提取可用连接,若超过等待时间阈值,不再对该连接获取请求进行响应;
所述方法还包括:所述连接池控制器利用第一线程采用同步方式对所述已使用连接池中的连接进行监测;当监测到调用端使用连接的时间超过为该调用端设置的连接有效时间时,所述连接池控制器将该连接从调用端收回,放入所述空闲连接池中
所述连接池控制器利用第二线程采用同步方式对所述空闲连接池中的连接进行监测;当监测到连接不可用时,所述连接池控制器关闭该不可用的连接并启用新的可用连接,将该新启用的可用连接放入所述空闲连接池中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当发送至调用端的连接使用完毕后,所述连接池控制器将该连接回收放入所述空闲连接池中。
3.根据权利要求1所述的方法,其特征在于,所述连接池控制器根据所述连接获取请求从所述空闲连接池中提取该可用连接包括:
所述连接池控制器根据所述连接获取请求,利用所设置的JAR文件包中的连接获取方法从所述空闲连接池中获得连接类对象,由该连接类对象得到提取的可用连接。
4.根据权利要求1所述的方法,其特征在于,在所述连接池控制器根据所述连接获取请求从所述空闲连接池中提取可用连接之前,所述方法还包括:
当判断出所述空闲连接池中不存在可用连接时,所述连接池控制器启动新的可用连接,将该新的可用连接放入所述空闲连接池中。
5.一种数据库连接池的连接装置,其特征在于,所述数据库连接池包括连接池控制器、空闲连接池和已使用连接池,
所述空闲连接池,用于放置数据库的可用连接,并将放入所述空闲连接池中连接的状态设置为空闲;
所述已使用连接池,用于放置数据库的已使用连接,并将放入所述已使用连接池中连接的状态设置为已使用;
所述连接池控制器,用于在初始化过程中,启用数据库的预定数量的可用连接,并将该可用连接放入所述空闲连接池中;当接收到调用端的连接获取请求时,判断所述空闲连接池中是否存在可用连接;当所述空闲连接池中存在可用连接时,根据所述连接获取请求从所述空闲连接池中提取可用连接;将提取到的可用连接放入所述已使用连接池中,并将该提取到的可用连接发送至调用端使用;
所述连接池控制器,还用于当需要向所述空闲连接池中放入新连接时,判断新连接放入后所述空闲连接池中连接的总数量是否大于第一数量阈值,若是,禁止该新连接放入所述空闲连接池中,若否,允许该新连接放入所述空闲连接池中;当需要向所述已使用连接池中放入新连接时,判断新连接放入后所述已使用连接池中连接的总数量是否大于第二数量阈值,若是,禁止该新连接放入所述已使用连接池中,若否,允许该新连接放入所述已使用连接池中;
所述连接池控制器将接收到的多个所述连接获取请求依次加入等待队列中;所述连接池控制器对该等待队列中的每个连接获取请求,判断该连接获取请求的等待时间是否超过预设的等待时间阈值,若未超过等待时间阈值,则根据所述连接获取请求从所述空闲连接池中提取可用连接,若超过等待时间阈值,不再对该连接获取请求进行响应;
所述连接池控制器,还用于利用第一线程采用同步方式对所述已使用连接池中的连接进行监测;当监测到调用端使用连接的时间超过为该调用端设置的连接有效时间时,将该连接从调用端收回,放入所述空闲连接池中;
和/或,
所述连接池控制器,还用于利用第二线程采用同步方式对所述空闲连接池中的连接进行监测;当监测到连接不可用时,关闭该不可用的连接并启用新的可用连接,将该新启用的可用连接放入所述空闲连接池中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310252758.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:网页活动的处理方法及装置
- 下一篇:一种清开灵原料的水解方法