[发明专利]一种数据库连接的管理方法及系统有效
申请号: | 201210103841.6 | 申请日: | 2012-04-10 |
公开(公告)号: | CN103365929A | 公开(公告)日: | 2013-10-23 |
发明(设计)人: | 谢宇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库连接 管理 方法 系统 | ||
1.一种数据库连接的管理方法,其特征在于,包括:
接收客户端发来的数据库访问请求,并从该请求的内容中获取操作类型和目标连接的关键字;
在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;其中,所述内存的连接池管理表中记录了对应每个数据库建立的连接池对象,连接池对象中的每个连接资源都用于连接到该连接池对象对应的数据库;
依据所述连接资源连接相应数据库,并将本次连接记录到数据库连接管理表中;其中,所述数据库连接管理表中保存了连接到每个数据库的连接记录;
依据所述操作类型执行相应的数据库操作,并将操作结果返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
2.根据权利要求1所述的方法,其特征在于,如果没有查询到与所述目标连接的关键字相匹配的连接池对象,则从查询到的连接池对象中分配连接资源之前,还包括:
从磁盘上查询与所述目标连接的关键字相匹配的连接池配置信息,依据所述配置信息在内存建立新的连接池对象,并将所述新的连接池对象添加到所述连接池管理表中。
3.根据权利要求1或2所述的方法,其特征在于,如果一个数据库根据操作类型建立了多个连接池对象,则还包括:
根据操作类型和目标连接的关键字查询内存的连接池管理表中是否有相匹配的连接池对象。
4.根据权利要求1所述的方法,其特征在于,所述连接池管理表采用“关键字-值”结构的哈希表管理所有已建立的连接池对象;
则所述在内存的连接池管理表中查询与所述目标连接的关键字相匹配的连接池对象,包括:
查询所述哈希表中与所述目标连接的关键字相匹配的哈希表关键字;
该哈希表关键字对应的值指向内存中的一个连接池对象。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据请求的内容判断请求类型,所述请求类型包括单库操作请求和分布式操作请求;
如果是分布式操作请求,则:
将所述请求内容进行拆分,并获取对应每个单库的操作类型和目标连接的关键字;
在内存的连接池管理表中查询与每个目标连接的关键字相匹配的连接池对象,并从查询到的连接池对象中获得连接资源;
依据每个连接资源分别连接相应的数据库,并将本次连接记录到数据库连接管理表中;
依据每个操作类型分别执行相应的单库操作,并将单库的操作结果进行合并后返回;
检测所述连接资源管理表,并依据该检测对连接进行回收。
6.根据权利要求1所述的方法,其特征在于,所述检测所述连接资源管理表,并依据该检测对连接进行回收,包括:
统计当前连接的最后一次访问时间和访问次数;
检测所述连接资源管理表中对应当前连接池对象的连接数量是否超过配置的上限,如果超过,则启动异步线程进行连接的回收。
7.根据权利要求6所述的方法,其特征在于,所述异步线程进行的连接的回收包括:
检测所述当前连接池对象中超时的连接,并将所述超时的连接放入第一回收列表中。
8.根据权利要求7所述的方法,其特征在于,如果所述当前连接池对象中未超时的连接数量仍超过配置的上限,则所述异步线程进行的连接的回收还包括:
计算预备回收数量;
检测所述当前连接池对象中各连接的权重,并将符合所述预备回收数量的权重小的连接放入第二回收列表中;
将所述第一回收列表和第二回收列表进行合并,并将合并后的回收列表中的连接进行销毁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210103841.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型双钢板混凝土连梁与混凝土剪力墙的组合节点
- 下一篇:一种道路检测车