主权项 |
一种针对数据库连接意外中断的自动重连装置,其特征在于,该装置包括如下模块:数据库连接池、连接有效性检测器(3)、数据库连接请求监视器(4)、连接请求优先级分析器(5)、以及异常捕获器(6);数据库连接池运行在数据库服务器(7)上,包括常规数据库连接池(1)和备用数据库连接池(2);常规数据库连接池(1)中保存着固定数目的数据库连接,当数据连接池初始化时,将初始化常规数据库连接池(1)中的数据库连接;数据库连接请求监视器(4)检测应用程序发起的数据库连接请求,并记录前后两次数据库连接请求之间的时间间隔;当数据库连接请求监视器(4)检测到数据库连接请求时,首先检测当前常规数据库连接池(1)中是否有空闲连接,若没有空闲连接,则进行等待,直到有空闲连接,若有空闲连接,给该数据库连接请求分配一个数据库连接,并根据前后两次数据库连接请求之间的时间间隔将所分配的数据库连接发送给连接有效性检测器(3)进行有效性检测;连接有效性检测器(3)对常规数据库连接池(1)所分配的数据库连接进行预连接,以检测当前所分配的数据库连接的有效性,若连接有效,则将所分配的数据库连接返回给应用程序所发起的数据库连接请求,若连接无效,则发送通知给连接请求优先级分析器(5);连接请求优先级分析器(5)在接收到连接有效性检测器(3)的通知后,通过预先设定的优先级策略对应用程序所发起的数据库连接请求进行判断,当该数据库连接请求属于优先级较高的数据库连接请求时,发送启用命令给备用数据库连接池(2);备用数据库连接池(2)在接收到启用命令后,进行初始化,初始化用户设定数目的数据库连接;异常捕获器(6)为自定义的异常捕获机制,用于监控常规数据库连接池(1)、备用数据库连接池(2)、连接有效性检测器(3)、数据库连接请求监视器(4)、连接请求优先级分析器(5)和数据库服务器(7),当捕获到数据库连接异常时,产生异常处理信息给用户。 |