一种针对数据库连接意外中断的自动重连方法及其装置制造方法及图纸

技术编号:7843400 阅读:609 留言:0更新日期:2012-10-13 01:45
本发明专利技术提出了一种针对数据库连接意外中断的自动重连方法及其装置。该装置包括常规和备用两个数据库连接池,连接有效性检测器,数据库连接请求监视器,连接请求优先级分析器和异常捕获器;连接有效性检测器用于预连接,以判断当前欲分配的连接的有效性,在常规数据库连接池中出现失效连接时,备用数据库连接池按需初始化数据库连接。该方法通过数据库连接请求监视器记录两次数据库连接请求之间的时间间隔,连接请求优先级分析器通过预先设定的优先级策略对数据库连接请求进行判断,当有优先级较高的数据库连接请求时,启用备用数据库连接池。本发明专利技术保证需要被快速处理的数据库连接请求得以高效执行,有效控制预连接的次数,节约系统开销。

【技术实现步骤摘要】

本专利技术属于计算机数据处理技 术领域,涉及数据库连接技术,具体是ー种针对数据库连接意外中断的自动重连方法及其装置
技术介绍
数据库连接是ー种关键的有限的资源。对数据库连接的管理能显著影响到整个应用程序的伸縮性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,其最基本的思想就是预先建立一些连接放置于内存对象中备用。当应用程序需要建立数据库连接时,可以重复使用ー个现有的数据库连接,而不是重新建立ー个;使用完毕后释放,同时释放空闲时间超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接而引起的数据库连接泄漏。数据库连接池技术明显提高了数据库操作的性能。理想状况下数据库连接池中的连接都是有效的,但是实际环境中,由于网络连接的短暂中断、数据库服务器重启、数据库升级以及数据库參数修改等原因,均会导致数据库连接池中的连接失效。当应用程序从数据库连接池中取得ー个失效的连接并且用来进行数据库操作时,系统会抛出连接异常。而在异常抛出之前,应用程序是无法对所获取数据库连接的有效性进行判断的。通常来讲,针对数据库连接无效的情況,处理本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种针对数据库连接意外中断的自动重连装置,其特征在于,该装置包括如下模块数据库连接池、连接有效性检测器(3)、数据库连接请求监视器(4)、连接请求优先级分析器(5)、以及异常捕获器¢);数据库连接池运行在数据库服务器(7)上,包括数据库常规数据库连接池(I)和备用数据库连接池(2);数据库常规数据库连接池(I)中保存着固定数目的数据库连接,当数据连接池初始化时,将初始化常规数据库连接池(I)中的数据库连接; 数据库连接请求监视器(4)检测应用程序发起的数据库连接请求,并记录前后两次数据库连接请求之间的时间间隔;当数据库连接请求监视器(4)检测到数据库连接请求时,首先检测当前常规数据库连接池(I)中是否有空闲连接,若没有空闲连接,则进行等待,直到有空闲连接,若有空闲连接,给该数据库连接请求分配一个数据库连接,并根据前后两次数据库连接请求之间的时间间隔将所分配的数据库连接发送给连接有效性检测器(3)进行有效性检测;连接有效性检测器(3)对常规数据库连接池(I)所分配的数据库连接进行预连接,以检测当前所分配的数据库连接的有效性,若连接有效,则将所分配的数据库连接返回给应用程序所发起的数据库连接请求,若连接无效,则发送通知给连接请求优先级分析器(5);连接请求优先级分析器(5)在接收到连接有效性检测器(3)的通知后,通过预先设定的优先级策略对应用程序所发起的数据库连接请求进行判断,当该数据库连接请求属于优先级较高的数据库连接请求时,发送启用命令给备用数据库连接池(2);备用数据库连接池(2)在接收到启用命令后,进行初始化,初始化用户设定数目的数据库连接; 异常捕获器(6)为自定义的异常捕获机制,用于监控数据库常规数据库连接池(I)、备用数据库连接池(2)、连接有效性检测器(3)、数据库连接请求监视器(4)、连接请求优先级分析器(5)和数据库服务器(7),当捕获到数据库连接异常时,产生异常处理信息给用户。2.根据权利要求I所述的一种针对数据库连接意外中断的自动重连装置,其特征在于,所述的数据库连接请求监视器(4),设置有两个时间变量Hast和Tnow,在应用程序首次发起数据库连接请求时,记录当前数据库连接请求的时间,同时赋值给两个时间变量Tlast和Tnow,当应用程序不是首次发起数据库连接请求时,将时间变量Tnow的值赋值给时间变量Hast,记录当前数据库连接请求的时间,同时赋值给时间变量Tnow ;时间变量Tnow与Hast之间的差值就是相邻两次数据库连接请求的时间间隔;将得到的时间间隔与预设值A进行比较,当时间间隔大于预设值A时,通过连接有效性检测器(3)检测常规数据库连接池(I)分配给当前的数据库连接请求的数据库连接的有效性;否则,直接使用分配到的数据库连接执行数据库SQL操作。3.根据权利要求I所述的一种针对数据库连接意外中断的自动重连装置,其特征在于,所述的备用数据库连接池(2),当其内按需创建的数据库连接均被释放后,被清空。4.一种基于权利要求I所述的自动重连装置的针对数据库连接意外中断的自动重连方法,其特征在于,包括如下步骤 步骤I :判断应用程序当前发起的数据库连接请求是否为首次请求,若是,常规数据库连接池(I)初始化,循环创建指定数目的数据库连接,并将所创建的数据库连接保存到一个数据向量中,然后执行步骤2 ;若否,执行步骤3 ; 步骤2 :从常规数据库连接池(I)中获取数...

【专利技术属性】
技术研发人员:李睿吕江花马世龙
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1