一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种连接池的连接线程监控方法、装置、介质及设备与流程

2021-12-07 23:57:00 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种连接池的连接线程监控方法、装置、介质及设备。


背景技术:

2.随着信息化时代的迅速发展,数据库应用的广泛推进,绝大多数的线上业务都需要数据库的支撑。为了能够加快服务器与数据库的连接速度,在数据库构建完成之后,会需要开发人员通过连接池与数据库进行连接,进而进行程序的开发、优化和维护等业务。但是,由于连接池的资源是有限的,如果连接线程被长期占用,会导致的连接池资源耗尽,数据库就无法正常的写入信息,甚至还有可能存在数据库宕机的风险。


技术实现要素:

3.本技术实施例提供一种连接池的连接线程监控方法、装置、介质及设备,可以根据连接线程的使用情况,确定是否需要进行连接池的管理,并通过对连接池的实时监控来确保数据库的稳定运行。
4.第一方面,本技术实施例提供了一种连接池的连接线程监控方法,所述连接池由数据库提供,用于连接线程与应用服务器连接;所述方法由连接池线程管理端执行,所述连接池线程管理端分别与所述数据库和所述应用服务器连接;所述方法包括:
5.若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;
6.根据所述事件类型,确定连接池中的目标连接线程;
7.若所述事件类型为连接线程数量异常,则确定处理方式为对所述目标连接线程的所属连接池进行初始化处理;若所述事件类型为连接线程状态异常,则确定处理方式为对所述目标连接线程进行重置处理。
8.进一步的,所述连接线程数量异常包括连接池中的连接线程数量达到预设阈值;
9.相应的,根据所述事件类型,确定连接池中的目标连接线程,包括:
10.根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池中的所有连接线程。
11.进一步的,对所述目标连接线程的所属连接池进行初始化处理,包括:
12.向所述应用服务器发出重启指令,以控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接;
13.或者,
14.向所述数据库发出连接池初始化请求,以控制所述数据库对所述连接池中的所有连接线程进行初始化处理。
15.进一步的,控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接,包括:
16.控制所述应用服务器重启,并供所述应用服务器基于初始连接池配置信息,确定连接线程的开启数量,以按照所述开启数量重新通过连接池中的连接线程与所述数据库建立连接;
17.或者,
18.控制所述应用服务器重启,并向所述应用服务器发送更新连接池配置信息,供所述应用服务器确定连接线程的更新后的开启数量,以按照所述更新后的开启数量重新通过连接池中的连接线程与所述数据库建立连接。
19.进一步的,所述连接线程状态异常包括连接池中存在连接线程处于:与数据库断开连接状态,建立时长达到设定生命周期状态,或者,预设时长内无数据传输状态中的至少一种状态;
20.相应的,根据所述事件类型,确定连接池中的目标连接线程,包括:
21.根据所述连接线程状态异常的事件类型,确定连接池中的目标连接线程为存在连接线程状态异常的连接线程。
22.进一步的,在确定连接池中的目标连接线程为存在连接线程状态异常的连接线程之后,所述方法还包括:
23.确定所述目标连接线程的目标请求信息;
24.获取所述连接池中的所有连接线程的请求信息,确定与所述目标请求信息关联的关联请求信息;
25.根据所述关联请求信息确定所述目标连接线程的关联线程;
26.若检测到所述关联线程的运行状态满足第一约束条件,则将所述关联线程释放。
27.进一步的,在确定连接池中的目标连接线程为存在连接线程状态异常的连接线程之后,所述方法还包括:
28.确定所述目标连接线程的目标请求信息的请求发出者id;
29.获取所述连接池中的所有连接线程的请求信息的请求发出者id;确定与所述目标请求信息的请求发出者id相同的作为目标连接线程的并发线程;
30.若检测到所述并发线程的运行状态满足第二约束条件,则将所述并发线程释放。
31.第二方面,本技术实施例提供了一种连接池的连接线程监控装置,所述连接池由数据库提供,用于提供连接线程与应用服务器连接;所述装置配置于连接池线程管理端,所述连接池线程管理端分别与所述数据库和所述应用服务器连接;所述装置包括:
32.事件类型确定模块,用于若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;
33.目标连接线程确定模块,用于根据所述事件类型,确定连接池中的目标连接线程;
34.目标连接线程管理模块,用于若所述事件类型为连接线程数量异常,则确定处理方式为对所述目标连接线程的所属连接池进行初始化处理;若所述事件类型为连接线程状态异常,则确定处理方式为对所述目标连接线程进行重置处理。
35.进一步的,所述连接线程数量异常包括连接池中的连接线程数量达到预设阈值;
36.相应的,所述目标连接线程确定模块,具体用于:
37.根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池
中的所有连接线程。
38.进一步的,所述目标连接线程管理模块,具体用于:
39.向所述应用服务器发出重启指令,以控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接;
40.或者,
41.向所述数据库发出连接池初始化请求,以控制所述数据库对所述连接池中的所有连接线程进行初始化处理。
42.进一步的,控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接,包括:
43.控制所述应用服务器重启,并供所述应用服务器基于初始连接池配置信息,确定连接线程的开启数量,以按照所述开启数量重新通过连接池中的连接线程与所述数据库建立连接;
44.或者,
45.控制所述应用服务器重启,并向所述应用服务器发送更新连接池配置信息,供所述应用服务器确定连接线程的更新后的开启数量,以按照所述更新后的开启数量重新通过连接池中的连接线程与所述数据库建立连接。
46.进一步的,所述连接线程状态异常包括连接池中存在连接线程处于:与数据库断开连接状态,建立时长达到设定生命周期状态,或者,预设时长内无数据传输状态中的至少一种状态;
47.相应的,目标连接线程确定模块,具体用于:
48.根据所述连接线程状态异常的事件类型,确定连接池中的目标连接线程为存在连接线程状态异常的连接线程。
49.进一步的,所述装置还包括关联线程管理模块,用于:
50.确定所述目标连接线程的目标请求信息;
51.获取所述连接池中的所有连接线程的请求信息,确定与所述目标请求信息关联的关联请求信息;
52.根据所述关联请求信息确定所述目标连接线程的关联线程;
53.若检测到所述关联线程的运行状态满足第一约束条件,则将所述关联线程释放。
54.进一步的,所述装置还包括并发线程管理模块,用于:
55.确定所述目标连接线程的目标请求信息的请求发出者id;
56.获取所述连接池中的所有连接线程的请求信息的请求发出者id;确定与所述目标请求信息的请求发出者id相同的作为目标连接线程的并发线程;
57.若检测到所述并发线程的运行状态满足第二约束条件,则将所述并发线程释放。
58.第三方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术实施例所述的连接池的连接线程监控方法。
59.第四方面,本技术实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本技术实施例所述的连接池的连接线程监控方法。
60.本技术实施例所提供的技术方案,若检测到连接池中的连接线程发生连接池管理
事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;根据所述事件类型,确定连接池中的目标连接线程;若所述事件类型为连接线程数量异常,则确定处理方式为对所述目标连接线程的所属连接池进行初始化处理;若所述事件类型为连接线程状态异常,则确定处理方式为对所述目标连接线程进行重置处理。本方案通过对于连接池中连接线程的异常状态的监控,可以在异常事件发生后立即采用相应的管理机制进行管理,以避免因为连接池的连接线程出现异常,导致数据库无法连接,甚至数据库宕机等问题,从而可以提高数据库运行的稳定性,同时为真正需求连接数据库的请求提供保障。
附图说明
61.图1是本技术实施例一提供的连接池的连接线程监控方法的流程图;
62.图2为本发明实施例二提供的连接池的连接线程监控方法的流程图;
63.图3为本发明实施例三提供的连接池的连接线程监控方法的流程图;
64.图4为本发明实施例四提供的一种连接池的连接线程监控装置的结构框图;
65.图5是本技术实施例六提供的一种电子设备的结构示意图。
具体实施方式
66.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。
67.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
68.实施例一
69.图1是本技术实施例一提供的连接池的连接线程监控方法的流程图,本实施例可适用于通过连接池中的连接线程对数据库进行数据访问的场景,该方法可以由本技术实施例所提供的连接池的连接线程监控装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于用于管理连接池或者管理数据库的电子设备中。
70.如图1所示,所述连接池的连接线程监控方法包括:
71.s110,若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;所述事件类型包括连接线程数量异常或连接线程状态异常。
72.本方案中,连接池可以是用于提供数据库与应用服务器等进行连接的线程池。则每一个连接线程用于构建一个请求连接。例如应用服务器每向数据库发送一个请求,则可以创建一个连接线程,用于构建应用服务器与数据库之间对该请求进行传输的连接。该连接线程还可以用来供数据库对请求的反馈信息,也就是数据库可以使用该线程向应用服务器反馈请求的结果数据,例如当接收到一个请求为获取某一数据表时,数据库可以通过该连接线程接收到请求的线程来反馈数据表的获取结果。
73.本方案中,除此之外,还存在一个连接池线程管理端,该连接池线程管理端可以部署于一个单独的服务器当中,还可以与数据库进行集成部署。连接池线程管理端可以与数据库和应用服务器连接,并向两者发送管理命令,以对数据库和应用服务器进行相应的管理。
74.可以理解的,连接池中连接线程的数量是有一定要求的,例如,一个连接池可以支持的连接线程的数量为1024个,如果达到这一数量,则表示连接池已满,无法再为其他的请求来创建连接线程,也就造成了数据库无法正常的再接收数据请求的情况。因此,往往需要对连接池的数量进行限制,一旦达到数据库连接池总数量的90%以上,就需要对已有的连接线程进行处理。另一种情况下,如果检测到某一个或者多个连接线程被恶意的占用,则可以将该连接线程释放掉,或者初始化,来提供给真正需要的请求。
75.本方案中,当以上两种情况出现任意一种,则可以对连接池进行管理,即,发生连接池管理事件。
76.由于上述两种情况的处理方式可能存在不同,因此,首先需要对连接池管理事件的事件类型进行确定。
77.本方案中,所述事件类型包括连接线程数量异常或连接线程状态异常。其中接线程数量异常可以是连接线程数量达到能够提供最大数量的90%时形成的异常。连接线程状态异常可以是被恶意占用的或者长期不活跃的状态的异常。
78.s120,根据所述事件类型,确定连接池中的目标连接线程。
79.其中,由于事件类型的不同,会导致采用不同的处理机制进行处理。此处的确定目标连接线程即为确定需要进行处理的连接线程。
80.本方案中,可以针对连接线程数量异常的情况,确定达到数量阈值,即90%以后开启的线程,确定为目标连接线程。除此之外,还可以是将所有的连接线程都视作目标连接线程。而针对连接线程状态异常的情况,可以将状态异常的连接线程确定为目标连接线程。
81.s130,若所述事件类型为连接线程数量异常,则确定处理方式为对所述目标连接线程的所属连接池进行初始化处理;若所述事件类型为连接线程状态异常,则确定处理方式为对所述目标连接线程进行重置处理。
82.本方案中,在确定事件类型之后,还可以根据预先存储的与之关联的处理方式,对目标连接线程进行处理。例如进行连接线程的关断后重新开启,因为重新开启的连接线程会根据请求信息来建立应用服务器与数据库之间的连接,并且对请求信息进行响应,所以连接线程会重新恢复到正常的工作状态,以确保连接池中的每一个连接线程都是活跃的,不会因为应用服务器的非法占用造成连接线程数量过多,影响数据库对应用服务器的请求的响应。
83.本方案中,由于每一种事件类型所确定的目标连接线程是不同的,因此处理策略也是各不相同的。例如,针对连接线程数量异常的情况,可以确定连接池中所有的连接线程都是目标连接线程,则可以将应用服务器进行重启处理,以重新构建应用服务器与数据库之间的连接池,以对每一个连接线程都进行了初始化的处理。而针对连接线程状态异常的情况,因为其目标连接线程是其中的部分连接线程,因此可以针对目标连接线程进行强制关断和重新拉起,这样就可以对目标连接线程进行有效的监控处理,同时不会影响其他运行正常的连接线程,从而确保应用服务器和数据库之间正常的数据交互。
84.本技术实施例所提供的技术方案,若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;根据所述事件类型,确定连接池中的目标连接线程;按照与所述事件类型关联的处理方式,对所述目标连接线程进行监控处理。本方案通过对于连接池中连接线程的异常状态的监控,可以在异常事件发生后立即采用相应的管理机制进行管理,以避免因为连接池的连接线程出现异常,导致数据库无法连接,甚至数据库宕机等问题,从而可以提高数据库运行的稳定性,同时为真正需求连接数据库的请求提供保障。
85.实施例二
86.图2为本发明实施例二提供的连接池的连接线程监控方法的流程图,本实施例以上述实施例为基础进行优化。具体优化为:所述连接线程数量异常包括连接池中的连接线程数量达到预设阈值;相应的,根据所述事件类型,确定连接池中的目标连接线程,包括:根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池中的所有连接线程;相应的,按照与所述事件类型关联的处理方式,对所述目标连接线程进行监控处理,包括:按照与所述事件类型关联的处理方式,对所述连接池中的所有连接线程初始化处理。
87.如图2所示,本实施例的方法具体包括如下步骤:
88.s210,若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型。
89.其中,在发生连接池管理事件之后,可以根据连接池线程管理端识别到的信息确定连接池管理事件的事件类型。例如,识别到连接池中的连接线程数量为965,连接池中总共可以提供1024个连接线程,则当前数量比例为94%,超过了设定的阈值90%,则确定为发生连接池管理事件,且事件类型为连接线程数量异常。又如,识别到连接池中的连接线程数量为835,连接池中总共可以提供1024个连接线程,则当前数量比例为81%,没有超过设定的阈值90%,但是识别到其中的连接线程的id为0000 0000到0000 1000这些线程处于长期不活跃的状态,则确定为发生连接池管理事件,且事件类型为连接线程状态异常。
90.s220,若为连接池中的连接线程数量达到预设阈值,则根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池中的所有连接线程。
91.如果为第一种事件类型,则根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池中的所有连接线程。此处,确定目标连接线程为连接池中的所有连接线程,即可以确定需要对整个连接池进行处理。
92.s230,对所述目标连接线程的所属连接池进行初始化处理。
93.本方案中,具体的,对所述连接池中的所有连接线程初始化处理的处理方式,可以是将连接线程全部断开后重新连接,并且可以按照一定的顺序进行,例如按照连接线程的id,进行断开重连。除此之外,还可以是采用其他的批量处理方式。
94.本方案中,可选的,对所述连接池中的所有连接线程初始化处理,包括:
95.向所述应用服务器发出重启指令,以控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接;
96.或者,
97.向所述数据库发出连接池初始化请求,以控制所述数据库对所述连接池中的所有
连接线程进行初始化处理。
98.其中,由于连接池线程管理端分别与所述数据库和所述应用服务器连接,因此连接池线程管理端可以分别与数据库和所述应用服务器进行信令交互。一方面,当连接线程数量达到预设阈值时,可以向所述应用服务器发出重启指令,以控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接。由于数据库不仅仅用于对一个应用服务器进行数据支持,因此,当存在某一个应用服务器达到或者超过预设阈值时,对应用服务器重启,可以有效避免其他应用服务器的数据交互受到影响。而且充应用服务器,可以对于本应用服务器的正常的连接线程的请求进行超时反馈,以供应用服务器重新发送数据请求,避免对本应用服务器的业务造成影响。
99.另一方面,当连接线程数量达到预设阈值时,可以向所述数据库发出连接池初始化请求,以控制所述数据库对所述连接池中的所有连接线程进行初始化处理。具体的,可以根据连接线程数量达到预设阈值的连接池的id确定当前存在连接线程数量异常的连接池。并对该连接池中所有的连接线程进行初始化处理。从而对每个连接线程进行重置管理,并将没有数据请求的连接线程清除,以降低连接池中连接线程的数量。
100.本方案通过这样的设置,可以通过不同的方式实现对所有连接线程初始化处理,不仅确保了数据库的正常运行,同时还简单、高效的解决了连接池数量超过设定阈值的问题。
101.本方案中,具体的,控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接,包括:
102.控制所述应用服务器重启,并供所述应用服务器基于初始连接池配置信息,确定连接线程的开启数量,以按照所述开启数量重新通过连接池中的连接线程与所述数据库建立连接;
103.或者,
104.控制所述应用服务器重启,并向所述应用服务器发送更新连接池配置信息,供所述应用服务器确定连接线程的更新后的开启数量,以按照所述更新后的开启数量重新通过连接池中的连接线程与所述数据库建立连接。
105.其中,在控制所述应用服务器重启的过程中,可以通知应用服务器基于初始连接池配置信息,确定连接线程的开启数量,以按照所述开启数量重新通过连接池中的连接线程与所述数据库建立连接。这样设置,可以将已经建立连接,但是没有数据传输的连接线程过滤掉,得到的都是基础的连接线程,如果有单独的请求会单独构建连接线程,从而避免连接线程数量较多的情况。
106.另外,此处还可以是向应用服务器发送更新连接池配置信息,例如,在连接池线程管理端将该应用服务器的更新连接池配置信息配置好之后,向应用服务器发送更新连接池配置信息,以更新连接线程的开启数量等信息,从而可以实现对应用服务器与数据库之间的连接池的连接线程开启数量的灵活管控,提高对连接池的监控效果。
107.本实施例在上述实施例的基础上,提供了针对连接线程数量异常的具体的处理方案。通过执行本方案,可以确保连接池中连接线程的数量的管控,实现高效管控,且最大限度降低对数据库和应用服务器的影响的目的。
108.实施例三
109.图3为本发明实施例三提供的连接池的连接线程监控方法的流程图,本实施例以上述实施例为基础进行优化。具体优化为:所述连接线程状态异常包括连接池中存在连接线程处于:与数据库断开连接状态,建立时长达到设定生命周期状态,或者,预设时长内无数据传输状态中的至少一种状态;相应的,根据所述事件类型,确定连接池中的目标连接线程,包括:根据所述连接线程状态异常的事件类型,确定连接池中的目标连接线程为存在连接线程状态异常的连接线程;相应的,按照与所述事件类型关联的处理方式,对所述目标连接线程进行监控处理,包括:按照与所述事件类型关联的处理方式,对所述连接池中的目标连接线程进行释放处理。
110.如图3所示,本实施例的方法具体包括如下步骤:
111.s310,若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型。
112.其中,在发生连接池管理事件之后,可以根据连接池线程管理端识别到的信息确定连接池管理事件的事件类型。例如,识别到连接池中的连接线程数量为965,连接池中总共可以提供1024个连接线程,则当前数量比例为94%,超过了设定的阈值90%,则确定为发生连接池管理事件,且事件类型为连接线程数量异常。又如,识别到连接池中的连接线程数量为835,连接池中总共可以提供1024个连接线程,则当前数量比例为81%,没有超过设定的阈值90%,但是识别到其中的连接线程的id为0000 0000到0000 1000这些线程处于长期不活跃的状态,则确定为发生连接池管理事件,且事件类型为连接线程状态异常。
113.s320,若为连接池中存在连接线程处于:与数据库断开连接状态,建立时长达到设定生命周期状态,或者,预设时长内无数据传输状态中的至少一种状态,则根据所述连接线程状态异常的事件类型,确定连接池中的目标连接线程为存在连接线程状态异常的连接线程。
114.本方案中,当存在至少一个连接线程处于与数据库断开连接状态,建立时长达到设定生命周期状态或者预设时长内无数据传输状态等,则确定为发生连接池管理事件,且事件类型为连接线程状态异常。
115.具体的,与数据库断开连接状态,可以是该连接线程没有在连接断开后及时关闭,造成长期占用连接线程的情况。建立时长达到设定生命周期状态,可以为每个或者每种请求的连接线程设定生命周期,例如某一请求的连接线程的生命周期为1小时,则在超过1小时之后,如果该连接线程仍然没有断开,则确定存在异常。另外,可以是在预设时长内无数据传输的状态,例如在5分钟之内没有任何一条数据传输,应用服务器即没有发送新的数据请求给数据库,也没有接收到数据库回馈的任何数据信息。在这种情况下,可能是长期非法占用造成的,因此也需要确定为监控处理的对象,即确定为目标连接线程。
116.s330,对所述目标连接线程进行重置处理。
117.本方案中,具体的,与所述事件类型关联的处理方式可以是强制关闭。则在确定目标连接线程之后,可以将这些连接线程强制关闭,以释放连接线程资源。
118.本方案中,可选的,在确定连接池中的目标连接线程为存在连接线程状态异常的连接线程之后,所述方法还包括:
119.确定所述目标连接线程的目标请求信息;
120.获取所述连接池中的所有连接线程的请求信息,确定与所述目标请求信息关联的
关联请求信息;
121.根据所述关联请求信息确定所述目标连接线程的关联线程;
122.若检测到所述关联线程的运行状态满足第一约束条件,则将所述关联线程释放。
123.除了确定目标连接线程之外,还可以确定与该目标连接线程的请求信息关联的关联请求信息所占用的关联线程,并在关联线程满足第一约束条件,则将所述关联线程释放。具体的,第一约束条件可以是相对较宽松与目标连接线程的确定方式,例如可以是在3分钟内没有数据传输,或者达到生命周期的80%以上,可以对关联线程进行处理。
124.本方案这样设置可以更加有效的对于目标连接线程关联的连接线程进行处理,提高处理效率,从而对非法占用连接线程等情况进行更加有效的管控。
125.本方案中,可选的,在确定连接池中的目标连接线程为存在连接线程状态异常的连接线程之后,所述方法还包括:
126.确定所述目标连接线程的目标请求信息的请求发出者id;
127.获取所述连接池中的所有连接线程的请求信息的请求发出者id;确定与所述目标请求信息的请求发出者id相同的作为目标连接线程的并发线程;
128.若检测到所述并发线程的运行状态满足第二约束条件,则将所述并发线程释放。
129.其中,请求发出者id,可以是发出请求的应用服务器的某一个应用程序,也可以是操作应用服务器的某一个工作人员的登录信息。本方案中,在目标请求信息的请求发出者id确定之后,可以确定是否存在并发线程。如果存在,可以确定该并发线程是否满足第二约束条件,若是,则对并发线程进行释放处理。第二约束条件可以类似于第一约束条件,具体可以根据需求进行设置。
130.本方案通过这样的设置,可以对于连接线程状态异常的连接线程进行管控处理,以确保连接池中的连接线程均处于正常的工作状态,避免出现非法占用,或者其他原因造成的长期占用连接线程的情况。
131.实施例四
132.图4为本发明实施例四提供的一种连接池的连接线程监控装置的结构框图,该装置可执行本发明任意实施例所提供的连接池的连接线程监控方法,具备执行方法相应的功能模块和有益效果。如图4所示,所述连接池由数据库提供,用于提供连接线程与应用服务器连接;所述装置配置于连接池线程管理端,所述连接池线程管理端分别与所述数据库和所述应用服务器连接;该装置包括:
133.事件类型确定模块410,用于若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;
134.目标连接线程确定模块420,用于根据所述事件类型,确定连接池中的目标连接线程;
135.目标连接线程管理模块430,用于若所述事件类型为连接线程数量异常,则确定处理方式为对所述目标连接线程的所属连接池进行初始化处理;若所述事件类型为连接线程状态异常,则确定处理方式为对所述目标连接线程进行重置处理。
136.进一步的,所述连接线程数量异常包括连接池中的连接线程数量达到预设阈值;
137.相应的,所述目标连接线程确定模块,具体用于:
138.根据所述连接线程数量异常的事件类型,确定连接池中的目标连接线程为连接池中的所有连接线程。
139.进一步的,所述目标连接线程管理模块,具体用于:
140.向所述应用服务器发出重启指令,以控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接;
141.或者,
142.向所述数据库发出连接池初始化请求,以控制所述数据库对所述连接池中的所有连接线程进行初始化处理。
143.进一步的,控制所述应用服务器重启,并重新通过连接池中的连接线程与所述数据库建立连接,包括:
144.控制所述应用服务器重启,并供所述应用服务器基于初始连接池配置信息,确定连接线程的开启数量,以按照所述开启数量重新通过连接池中的连接线程与所述数据库建立连接;
145.或者,
146.控制所述应用服务器重启,并向所述应用服务器发送更新连接池配置信息,供所述应用服务器确定连接线程的更新后的开启数量,以按照所述更新后的开启数量重新通过连接池中的连接线程与所述数据库建立连接。
147.进一步的,所述连接线程状态异常包括连接池中存在连接线程处于:与数据库断开连接状态,建立时长达到设定生命周期状态,或者,预设时长内无数据传输状态中的至少一种状态;
148.相应的,目标连接线程确定模块,具体用于:
149.根据所述连接线程状态异常的事件类型,确定连接池中的目标连接线程为存在连接线程状态异常的连接线程。
150.进一步的,所述装置还包括关联线程管理模块,用于:
151.确定所述目标连接线程的目标请求信息;
152.获取所述连接池中的所有连接线程的请求信息,确定与所述目标请求信息关联的关联请求信息;
153.根据所述关联请求信息确定所述目标连接线程的关联线程;
154.若检测到所述关联线程的运行状态满足第一约束条件,则将所述关联线程释放。
155.进一步的,所述装置还包括并发线程管理模块,用于:
156.确定所述目标连接线程的目标请求信息的请求发出者id;
157.获取所述连接池中的所有连接线程的请求信息的请求发出者id;确定与所述目标请求信息的请求发出者id相同的作为目标连接线程的并发线程;
158.若检测到所述并发线程的运行状态满足第二约束条件,则将所述并发线程释放。
159.上述产品可执行本技术实施例所提供的连接池的连接线程监控方法,具备执行方法相应的功能模块和有益效果。
160.实施例五
161.本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术所有发明实施例提供的连接池的连接线程监控方法:
162.若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;
163.根据所述事件类型,确定连接池中的目标连接线程;
164.按照与所述事件类型关联的处理方式,对所述目标连接线程进行监控处理。
165.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
166.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
167.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
168.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
169.实施例六
170.本技术实施例六提供了一种电子设备。图5是本技术实施例六提供的一种电子设备的结构示意图。如图5所示,本实施例提供了一种电子设备500,其包括:一个或多个处理器520;存储装置510,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器520执行,使得所述一个或多个处理器520实现本技术实施例所提供的连接池的连接线程监控方法,该方法包括:
171.若检测到连接池中的连接线程发生连接池管理事件,则确定连接池管理事件的事件类型;其中,所述事件类型包括连接线程数量异常或连接线程状态异常;
172.根据所述事件类型,确定连接池中的目标连接线程;
173.按照与所述事件类型关联的处理方式,对所述目标连接线程进行监控处理。
174.当然,本领域技术人员可以理解,处理器520还实现本技术任意实施例所提供的连接池的连接线程监控方法的技术方案。
175.图5显示的电子设备500仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
176.如图5所示,该电子设备500包括处理器520、存储装置510、输入装置530和输出装置540;电子设备中处理器520的数量可以是一个或多个,图5中以一个处理器520为例;电子设备中的处理器520、存储装置510、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线550连接为例。
177.存储装置510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块单元,如本技术实施例中的连接池的连接线程监控方法对应的程序指令。
178.存储装置510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
179.输入装置530可用于接收输入的数字、字符信息或语音信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏、扬声器等电子设备。
180.本技术实施例提供的电子设备,可以根据连接线程的使用情况,确定是否需要进行连接池的管理,并通过对连接池的实时监控来确保数据库的稳定运行。
181.上述实施例中提供的连接池的连接线程监控装置、介质及电子设备可执行本技术任意实施例所提供的连接池的连接线程监控方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的连接池的连接线程监控方法。
182.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献