[发明专利]数据库连接池的控制方法在审
申请号: | 201310586676.9 | 申请日: | 2013-11-20 |
公开(公告)号: | CN103605571A | 公开(公告)日: | 2014-02-26 |
发明(设计)人: | 陈清水;李海;刘红超;张健 | 申请(专利权)人: | 国家电网公司;北京许继电气有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F17/30 |
代理公司: | 北京立成智业专利代理事务所(普通合伙) 11310 | 代理人: | 李想 |
地址: | 100017 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库连接 控制 方法 | ||
1.一种数据库连接池的控制方法,用于对外提供数据连接,包括:
根据预设的优先级范围,规范化传入的线程优先级参数,得到规范化参数优先级;
判断当前连接池是否为空,如果连接池不为空,取出第一个数据连接,设置当前状态为忙,返回该数据连接;
如果连接池为空,判断当前外部程序使用中未归还的数据连接个数是否已经达到了连接池内最大连接个数,如果未达到,增加数据连接,并加入当前数据库连接池,返回数据库连接池的第一个数据连接;
如果当前外部程序使用中未归还的数据连接个数达到连接池内最大连接个数,设置当前线程的优先级为规范化参数优先级,获取当前时间作为第一时间,循环判断当前连接池是否为空,数据库连接池进入等待状态;
循环判断当前连接池是否为空包括:获取当前时间作为第二时间,如果第二时间大于所述第一时间加上最大等待时间,则把数据连接超时信息写入日志,并返回空值;如果第二时间小于第一时间加上最大等待时间,数据库连接池继续等待;如果连接池不为空,即有新释放的数据连接时,取出第一个数据连接,设置数据连接状态为忙,并返回该数据连接。
2.根据权利要求1所述的数据库连接池的控制方法,其中,增加数据连接包括:
根据连接池扩展时每次增加数据连接个数和当前连接池可增加的数据连接个数进行对比,取其中的最小值作为要增加的数据连接数。
3.根据权利要求1所述的数据库连接池的控制方法,还包括:数据库连接池定期检查数据库连接是否有效,如果无效,会通知连接池清理数据连接。
4.根据权利要求1所述的数据库连接池的控制方法,还包括:数据库连接池定期检查数据库连接池大小,如果连接池为空,同时正在使用的数据连接个数小于连接池最小数据连接个数,则连接池加大数据连接到连接池最小连接个数。
5.根据权利要求1所述的数据库连接池的控制方法,还包括:数据库连接池定期检查数据库连接配置文件最后修改时间,如果最后修改时间在当前时间减去数据库检查时间范围内,则数据库配置文件已被修改,调用数据库连接池工厂刷新数据库连接池配置。
6.根据权利要求1所述的数据库连接池的控制方法,还包括:数据库连接池循环数据库连接池内的数据连接,如果数据连接空闲,且空闲时间大于最大空闲时间,则关闭该数据连接;
其中,关闭数据连接包括:将该数据库连接归还到数据库连接池,以便下回外部程序获取数据连接时能再次取出该连接。
7.一种数据库连接池的控制方法,用于对内进行任务调度,包括:
判断配置文件是否已经修改;
如果数据库配置文件有修改,调用数据库连接池工厂,刷新当前数据库连接池配置信息,并终止后续任务调度;
如果数据库配置文件没有修改,则判断当前数据库连接池内的数据连接个数是否大于0;如果大于0,则读取第一个数据连接,并测试该数据连接是否有效;如果测试数据连接无效,则清除当前连接池内的所有数据连接,重新初始化数据连接池并返回;如果测试数据连接有效,则遍历当前数据库连接池内的所有数据连接,判断每一个数据连接是否超过最大空闲时间,如果不超过则取出下一个数据连接,如果超过最大空闲时间则从数据库层释放该数据连接;
如果连接池内数据连接个数为0,则判断当前外部程序使用的数据连接个数是否已经到达连接池内最小数据连接数,如果未达到连接池内最小数据连接数,则增加数据连接个数到达连接池内最小数据连接数,并加入当前数据库连接池后返回。
8.根据权利要求7所述的数据库连接池的控制方法,测试数据连接是否有效方法包括:根据当前数据连接的数据库类型,采用合适的sql语句进行测试。
9.根据权利要求7所述的数据库连接池的控制方法,判断配置文件是否已经修改包括:
获取当前时间和数据库配置文件的最后修改时间,如果配置文件的最后修改时间大于当前时间减去数据库检查周期,表示已修改。
10.根据权利要求7所述的数据库连接池的控制方法,其中,数据库配置文件包括:
数据源名称、数据库驱动类名、数据库访问路径、连接池内最小数据连接个数、连接池内最大数据连接个数、数据库检查周期。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家电网公司;北京许继电气有限公司,未经国家电网公司;北京许继电气有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310586676.9/1.html,转载请声明来源钻瓜专利网。