CN106250500A - 数据库连接池的动态管理方法和系统 - Google Patents

数据库连接池的动态管理方法和系统 Download PDF

Info

Publication number
CN106250500A
CN106250500A CN201610624963.8A CN201610624963A CN106250500A CN 106250500 A CN106250500 A CN 106250500A CN 201610624963 A CN201610624963 A CN 201610624963A CN 106250500 A CN106250500 A CN 106250500A
Authority
CN
China
Prior art keywords
connection
connection pool
pool
data base
duration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610624963.8A
Other languages
English (en)
Inventor
何涛
宋威
张学诚
刘璟宇
王军伟
韩国忠
余倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Pinwei Software Co Ltd
Original Assignee
Guangzhou Vipshop Information And Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Vipshop Information And Technology Co Ltd filed Critical Guangzhou Vipshop Information And Technology Co Ltd
Priority to CN201610624963.8A priority Critical patent/CN106250500A/zh
Publication of CN106250500A publication Critical patent/CN106250500A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库连接池的动态管理方法,该方法流程包括:定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。本发明还提出一种数据库连接池的动态管理系统。本发明解决了无法对连接池进行动态调整的技术问题,提高了数据库连接池的性能。

Description

数据库连接池的动态管理方法和系统
技术领域
本发明涉及数据库管理技术领域,尤其涉及一种数据库连接池的动态管理方法和系统。
背景技术
在当今海量信息化的互联网时代,数据库从简单的存储各种数据表单到海量数据存储在各行各业得到了广泛的应用,因此数据库连接池的应用越来越广泛,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,能够提高对数据库操作的性能,因此,连接池的性能直接决定了访问数据库的性能,从而也决定了整个系统的性能。
现有的数据库连接池的管理方案一般是:预先设置好连接池的各项配置参数,连接池在工作时就按照设置好的配置参数运行,配置参数一般包括连接池的最大连接数、最小连接数等,其中,最小连接数是连接池会一直保持的数据连接,如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费掉;最大连接数是连接池能够申请的最大连接数,如果数据连接请求超过最大连接数,后面的数据连接请求将被加入到等待队列中,直到有数据库连接释放后,会按照等待队伍中的数据连接请求的顺序分配释放的数据库连接,但是当等待队伍中的数据连接请求等待时间较长时,会影响之后的数据库操作。
但是,对于现有的数据库连接池,其最大连接数和最小连接数都是预先设置好的,并不会根据连接池的实时运行信息对其进行调整,因此无法对连接池进行动态调整,造成数据库连接池的性能较低。
发明内容
本发明提供一种数据库连接池的动态管理方法和系统,其主要目的在于解决无法对连接池进行动态调整的技术问题,提高数据库连接池的性能。
为实现上述目的,本发明提供一种数据库连接池的动态管理方法,该数据库连接池的动态管理方法包括:
定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
可选地,所述根据获取到的所述运行信息,调整所述连接池的连接数的步骤包括:
当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
可选地,所述根据获取到的所述运行信息,调整所述连接池的连接数的步骤包括:
当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
可选地,所述当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数的步骤包括:
当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;
若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
可选地,所述根据获取到的所述运行信息,调整所述连接池中的数据库连接的连接状态的步骤包括:
当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
所述调整所述连接池中的数据库连接的连接状态的步骤之后,所述数据库连接池的动态管理方法还包括步骤:
输出所述连接池发生连接泄漏的通知信息。
此外,为实现上述目的,本发明还提供一种数据库连接池的动态管理系统,该数据库连接池的动态管理系统包括:
信息获取模块,用于定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
连接池调整模块,用于根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
可选地,所述连接池调整模块,还用于当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
可选地,所述连接池调整模块,还用于当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
可选地,所述连接池调整模块包括:
连接判断单元,用于当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;
连接池调整单元,用于若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
可选地,所述连接池调整模块,还用于当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
所述数据库连接池的动态管理系统还包括:
信息输出模块,用于输出所述连接池发生连接泄漏的通知信息。
本发明提出的数据库连接池的动态管理方法和系统,对数据库连接池中的数据库连接的运行信息进行定时或者实时地采集,运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数,也就说,在数据库连接池处于运行状态时,采集各个运行信息,对连接池的运行情况进行实时监控,进而根据获取到的运行信息对连接池的配置参数进行调整,例如连接池的最大连接数、最小连接数等,或者,根据获取到的运行信息对连接池的数据库的连接状态进行调整,通过这种方式,能够实时地根据连接池中数据库连接的使用情况对连接池的配置参数进行动态管理,能够避免因为最小连接数过大,而导致数据库连接长时间处于空闲状态造成资源浪费,或者避免因为最大连接数不能满足应用当前的需求而造成等待过久的问题,总之,本发明提出的方法和系统能够提高对连接池进行动态调整,提高其性能,进而提高访问数据库的性能。
附图说明
图1为本发明数据库连接池的动态管理方法第一实施例的流程图;
图2为本发明数据库连接池的动态管理方法第二实施例的流程图;
图3为本发明数据库连接池的动态管理系统第一实施例的功能模块示意图;
图4为本发明数据库连接池的动态管理系统第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据库连接池的动态管理方法。参照图1所示,为本发明数据库连接池的动态管理方法第一实施例的流程图。
在本实施例中,该数据库连接池的动态管理方法包括:
步骤S10,定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
可以理解的是,本发明提出的数据库连接池的动态管理方法适用于各种不同类型的连接池,例如:DBCP(Database connection pool,数据库连接池)、C3PO连接池(一种开放源代码的JDBC连接池)、proxool连接池等各种类型的数据库连接池。
数据库连接池主要负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
连接池在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,也并非将连接关闭,而是将连接放回连接池中,以供下一个连接请求访问使用。而连接的建立、断开都由连接池自身来管理,或者通过其自身的管理机制来管理。
这些数据库连接的数量由连接池的配置参数制约,配置参数包括但不限于:最小连接数、最大连接数、最大空闲时间、连接的最大使用次数等等,其中,最大空闲时间是指大于最小连接数的数据库连接处于空闲状态的最长时间,当超过该时间后,它会被释放;最小连接数是指无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。最小连接数与最大连接数相差较大时,最先的连接请求将会获利,之后超过最小连接数的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
在连接池的运行过程中,定时或者实时获取连接池中的数据库连接的运行信息,其中,运行信息包括但不限于:获取连接时长、连接占用时长、连接并发数以及空闲连接数等。其中,获取连接时长是指:连接池接收到应用发送的连接获取请求的时间点到分配一个连接池给该应用的时间点之间的时长;连接占用时长是指:将一个数据库连接分配给应用的时间点到应用使用完毕后将该连接归还至连接池的时间点之间的时长;连接并发数是指连接池中当前同时处于使用状态的数据库连接数量;空闲连接数是指连接池中当前处于空闲状态的数据库连接的数量。
步骤S20,根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
在获取到上述运行信息后,根据运行信息对连接池的配置参数进行动态调整,具体地,对连接池的最大连接数,最小连接数或者最大空闲时间等参数进行调整。关于调整连接池的配置参数,可以包括多种情况,例如,减小最小连接数,增大最大连接数,增大最小连接数或者较小最大连接数等。
作为一种实施方式,步骤S20可以包括以下步骤:
当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
如果连接池的并发连接数在一定时间内持续小于连接池的最小连接数,则说明当前有一些数据库连接是处于空闲状态的,造成资源浪费,此时可以将最小连接数减小,以便于将空闲的连接再归还给数据库,以使数据库能够分配至其他的应用使用,避免资源因为闲置而造成浪费。
作为另一种实施方式,步骤S20可以包括以下步骤:
当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
获取连接时长是连接池接收到应用发送的连接获取请求的时间点到分配一个连接池给该应用的时间点之间的时长。连接池在接收到所述应用的获取数据库连接请求时,判断当前的并发连接数是否小于最大连接数,若是,则与数据库建立新的连接,并将建立的新连接分配至所述应用,若否,则将所述数据库连接请求放入等待队列中。因此,当等待队伍中的数据库连接请求较多时,会造成应用的获取连接时长较长,说明,此时应用对于数据库连接的需求量大,连接池中的数据库连接数已经不满足应用的使用需求,则增大连接池的最大连接数,允许连接池向数据库申请更多的连接。其中,预设连接请求时间阈值可以根据应用的数据量进行设置。
需要说明的是,本发明提出的数据库连接池的动态管理方法,同样适用于对多应用的管理,例如,数据库同时为多个应用提供连接,每个应用有一个连接池,按照应用的使用情况,将数据库中的连接分配给多个不同的应用。
进一步地,根据数据库当前的连接情况判断能够增大最大连接数,如数据库当前有空闲连接时,增大连接池的最大连接数,具体地,当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数的步骤包括以下细化步骤:
当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;
若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
对于一个连接池来说,能否增大最大连接数需要考虑为其提供连接的数据库是否有空闲连接,因此,在获取连接时长大于预设连接请求时间阈值时,先判断数据库当前是否有空闲连接,若有空闲连接,则获取空闲连接数,并根据空闲连接数增大连接池的最大连接数,增大的连接数量可以小于或者等于数据库当前的空闲连接的数量。具体地,在判断数据库当前是否有空闲连接时,可以向数据库发送增大最大连接数的请求,数据库在接收到请求时,可以向数据库发送反馈信息,以说明是否有空闲连接以及空闲连接的数量。
本实施例提出的数据库连接池的动态管理方法,对数据库连接池中的数据库连接的运行信息进行定时或者实时地采集,运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数,也就说,在数据库连接池处于运行状态时,采集各个运行信息,对连接池的运行情况进行实时监控,进而根据获取到的运行信息对连接池的配置参数进行调整,例如连接池的最大连接数、最小连接数等,或者,根据获取到的运行信息对连接池的数据库的连接状态进行调整,通过这种方式,能够实时地根据连接池中数据库连接的使用情况对连接池的配置参数进行动态管理,能够避免因为最小连接数过大,而导致数据库连接长时间处于空闲状态造成资源浪费,或者避免因为最大连接数不能满足应用当前的需求而造成等待过久的问题,总之,本发明提出的方法能够提高对连接池进行动态调整,提高其性能,进而提高访问数据库的性能。
基于第一实施例提出本发明数据库连接池的动态管理方法的第二实施例。参照图2所示,在本实施例中,步骤S20包括以下细化步骤:
步骤S21,当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
在步骤S20之后,该数据库连接池的动态管理方法还包括:
步骤S30,输出所述连接池发生连接泄漏的通知信息。
在本实施例中,在检测到连接池中有数据库连接的占用时长过长,即大于预设连接占用时间阈值时,说明应用在获取到数据库连接后,长时间未将其归还至连接池,判定发生了连接泄漏的情况,此时,将该被占用的时长过长的数据库连接关闭,实现对连接池的动态管理,提高连接池的性能;同时,向用户输出通知信息,提示用户连接池发生了连接泄漏,以便于用户及时处理,关于输出通知信息的方式,可以向绑定的邮箱发送邮件、或者向绑定的手机等移动终端发送通知信息等。
或者,作为一种实施方式,运行信息还包括建立连接时长,则步骤S20包括:当所述建立连接时长大于预设建立连接时间阈值时,中断连接的建立,并输出提示信息以提示用户当前连接建立速度慢,可以在间隔一段时间后再重新建立。在网络状况不好的情况下,例如发生网络拥堵时,连接池建立新的数据库连接的时长会比较长,甚至会出现发送建立连接的请求后长时间内,仍然没有成功建立新的连接的情况。此时,则可以中断连接的建立,过一段时间后重新尝试,实现对连接池的动态管理,提高连接池的管理效率,进而提高连接池的性能。
本发明还提出一种数据库连接池的动态管理系统。
参照图3所示,为本发明数据库连接池的动态管理系统第一实施例的功能模块示意图。
在该实施例中,该数据库连接池的动态管理系统包括:
信息获取模块10,用于定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
可以理解的是,本发明提出的数据库连接池的动态管理系统适用于各种不同类型的连接池,例如:DBCP(Database connection pool,数据库连接池)、C3PO连接池(一种开放源代码的JDBC连接池)、proxool连接池等各种类型的数据库连接池。
数据库连接池主要负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。
连接池在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,也并非将连接关闭,而是将连接放回连接池中,以供下一个连接请求访问使用。而连接的建立、断开都由连接池自身来管理,或者通过其自身的管理机制来管理。
这些数据库连接的数量由连接池的配置参数制约,配置参数包括但不限于:最小连接数、最大连接数、最大空闲时间、连接的最大使用次数等等,其中,最大空闲时间是指大于最小连接数的数据库连接处于空闲状态的最长时间,当超过该时间后,它会被释放;最小连接数是指无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。最小连接数与最大连接数相差较大时,最先的连接请求将会获利,之后超过最小连接数的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。
在连接池的运行过程中,信息获取模块10定时或者实时获取连接池中的数据库连接的运行信息,其中,运行信息包括但不限于:获取连接时长、连接占用时长、连接并发数以及空闲连接数等。其中,获取连接时长是指:连接池接收到应用发送的连接获取请求的时间点到分配一个连接池给该应用的时间点之间的时长;连接占用时长是指:将一个数据库连接分配给应用的时间点到应用使用完毕后将该连接归还至连接池的时间点之间的时长;连接并发数是指连接池中当前同时处于使用状态的数据库连接数量;空闲连接数是指连接池中当前处于空闲状态的数据库连接的数量。
连接池调整模块20,用于根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
在获取到上述运行信息后,连接池调整模块20根据运行信息对连接池的配置参数进行动态调整,具体地,对连接池的最大连接数,最小连接数或者最大空闲时间等参数进行调整。关于调整连接池的配置参数,可以包括多种情况,例如,减小最小连接数,增大最大连接数,增大最小连接数或者较小最大连接数等。
作为一种实施方式,连接池调整模块20还用于:当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
如果连接池的并发连接数在一定时间内持续小于连接池的最小连接数,则说明当前有一些数据库连接是处于空闲状态的,造成资源浪费,此时连接池调整模块20可以将连接池的最小连接数减小,以便于将空闲的连接再归还给数据库,以使数据库能够分配至其他的应用使用,避免资源因为闲置而造成浪费。
作为另一种实施方式,连接池调整模块20还用于:当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
获取连接时长是连接池接收到应用发送的连接获取请求的时间点到分配一个连接池给该应用的时间点之间的时长。连接池在接收到所述应用的获取数据库连接请求时,判断当前的并发连接数是否小于最大连接数,若是,则与数据库建立新的连接,并将建立的新连接分配至所述应用,若否,则将所述数据库连接请求放入等待队列中。因此,当等待队伍中的数据库连接请求较多时,会造成应用的获取连接时长较长,说明,此时应用对于数据库连接的需求量大,连接池中的数据库连接数已经不满足应用的使用需求,则连接池调整模块20增大连接池的最大连接数,允许连接池向数据库申请更多的连接。其中,预设连接请求时间阈值可以根据应用的数据量进行设置。
需要说明的是,本发明提出的数据库连接池的动态管理系统,同样适用于对多应用的管理,例如,数据库同时为多个应用提供连接,每个应用有一个连接池,按照应用的使用情况,将数据库中的连接分配给多个不同的应用。
进一步地,根据数据库当前的连接情况判断能够增大最大连接数,如数据库当前有空闲连接时,增大连接池的最大连接数,具体地,连接池调整模块20包括连接判断单元,用于当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;连接池调整单元,用于若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
对于一个连接池来说,能否增大最大连接数需要考虑为其提供连接的数据库是否有空闲连接,因此,在获取连接时长大于预设连接请求时间阈值时,连接判断单元先判断数据库当前是否有空闲连接,若有空闲连接,则连接池调整单元获取空闲连接数,并根据空闲连接数增大连接池的最大连接数,增大的连接数量可以小于或者等于数据库当前的空闲连接的数量。具体地,在判断数据库当前是否有空闲连接时,可以向数据库发送增大最大连接数的请求,数据库在接收到请求时,可以向数据库发送反馈信息,以说明是否有空闲连接以及空闲连接的数量。
本实施例提出的数据库连接池的动态管理系统,对数据库连接池中的数据库连接的运行信息进行定时或者实时地采集,运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数,也就说,在数据库连接池处于运行状态时,采集各个运行信息,对连接池的运行情况进行实时监控,进而根据获取到的运行信息对连接池的配置参数进行调整,例如连接池的最大连接数、最小连接数等,或者,根据获取到的运行信息对连接池的数据库的连接状态进行调整,通过这种方式,能够实时地根据连接池中数据库连接的使用情况对连接池的配置参数进行动态管理,能够避免因为最小连接数过大,而导致数据库连接长时间处于空闲状态造成资源浪费,或者避免因为最大连接数不能满足应用当前的需求而造成等待过久的问题,总之,本发明提出的系统能够提高对连接池进行动态调整,提高其性能,进而提高访问数据库的性能。
基于第一实施例提出本发明数据库连接池的动态管理系统的第二实施例。参照图4所示,在本实施例中,连接池调整模块20还用于:当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
该数据库连接池的动态管理系统还包括:
信息输出模块30,用于输出所述连接池发生连接泄漏的通知信息。
在本实施例中,在检测到连接池中有数据库连接的占用时长过长,即大于预设连接占用时间阈值时,说明应用在获取到数据库连接后,长时间未将其归还至连接池,判定发生了连接泄漏的情况,此时,连接池调整模块20将该被占用的时长过长的数据库连接关闭,实现对连接池的动态管理,提高连接池的性能;同时,信息输出模块30向用户输出通知信息,提示用户连接池发生了连接泄漏,以便于用户及时处理,关于输出通知信息的方式,可以向绑定的邮箱发送邮件、或者向绑定的手机等移动终端发送通知信息等。
或者,作为一种实施方式,运行信息还包括建立连接时长,当所述建立连接时长大于预设建立连接时间阈值时,连接池调整模块20中断连接的建立,信息输出模块30输出提示信息以提示用户当前连接建立速度慢,可以在间隔一段时间后再重新建立。在网络状况不好的情况下,例如发生网络拥堵时,连接池建立新的数据库连接的时长会比较长,甚至会出现发送建立连接的请求后长时间内,仍然没有成功建立新的连接的情况。此时,则可以中断连接的建立,过一段时间后重新尝试,实现对连接池的动态管理,提高连接池的管理效率,进而提高连接池的性能。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据库连接池的动态管理方法,其特征在于,所述数据库连接池的动态管理方法包括:
定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
2.根据权利要求1所述的数据库连接池的动态管理方法,其特征在于,所述根据获取到的所述运行信息,调整所述连接池的连接数的步骤包括:
当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
3.根据权利要求1所述的数据库连接池的动态管理方法,其特征在于,所述根据获取到的所述运行信息,调整所述连接池的连接数的步骤包括:
当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
4.根据权利要求3所述的数据库连接池的动态管理方法,其特征在于,所述当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数的步骤包括:
当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;
若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
5.根据权利要求1至4中任一项所述的数据库连接池的动态管理方法,其特征在于,所述根据获取到的所述运行信息,调整所述连接池中的数据库连接的连接状态的步骤包括:
当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
所述调整所述连接池中的数据库连接的连接状态的步骤之后,所述数据库连接池的动态管理方法还包括步骤:
输出所述连接池发生连接泄漏的通知信息。
6.一种数据库连接池的动态管理系统,其特征在于,所述数据库连接池的动态管理系统包括:
信息获取模块,用于定时或者实时获取连接池中的数据库连接的运行信息,其中,所述运行信息包括获取连接时长、连接占用时长、连接并发数以及空闲连接数中的一个或者多个;
连接池调整模块,用于根据获取到的所述运行信息调整所述连接池的配置参数,其中,所述配置参数包括所述连接池的最大连接数和最小连接数,或者,根据获取到的所述运行信息调整所述连接池中的数据库连接的连接状态。
7.根据权利要求6所述的数据库连接池的动态管理系统,其特征在于,所述连接池调整模块,还用于当所述连接池的并发连接数在预设时长内持续小于所述连接池的最小连接数时,减小所述连接池的最小连接数。
8.根据权利要求6所述的数据库连接池的动态管理系统,其特征在于,所述连接池调整模块,还用于当所述获取连接时长大于预设连接请求时间阈值时,增大所述连接池的最大连接数。
9.根据权利要求8所述的数据库连接池的动态管理系统,其特征在于,所述连接池调整模块包括:
连接判断单元,用于当所述获取连接时长大于预设连接请求时间阈值时,判断数据库当前是否有空闲连接;
连接池调整单元,用于若所述数据库当前有空闲连接,则获取空闲连接数,并根据所述空闲连接数增大所述连接池的最大连接数。
10.根据权利要求6至9中任一项所述的数据库连接池的动态管理系统,其特征在于,所述连接池调整模块,还用于当所述连接池中有数据库连接的所述连接占用时长大于预设连接占用时间阈值时,关闭占用时长大于所述预设连接占用时间阈值的所述数据库连接;
所述数据库连接池的动态管理系统还包括:
信息输出模块,用于输出所述连接池发生连接泄漏的通知信息。
CN201610624963.8A 2016-07-29 2016-07-29 数据库连接池的动态管理方法和系统 Pending CN106250500A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610624963.8A CN106250500A (zh) 2016-07-29 2016-07-29 数据库连接池的动态管理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610624963.8A CN106250500A (zh) 2016-07-29 2016-07-29 数据库连接池的动态管理方法和系统

Publications (1)

Publication Number Publication Date
CN106250500A true CN106250500A (zh) 2016-12-21

Family

ID=57606614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610624963.8A Pending CN106250500A (zh) 2016-07-29 2016-07-29 数据库连接池的动态管理方法和系统

Country Status (1)

Country Link
CN (1) CN106250500A (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549592A (zh) * 2018-03-19 2018-09-18 联动优势电子商务有限公司 一种数据库连接池的监控方法及监控设备、应用服务器
CN108551465A (zh) * 2018-03-09 2018-09-18 平安科技(深圳)有限公司 服务器并发数控制方法、装置、计算机设备及存储介质
CN108600349A (zh) * 2018-04-11 2018-09-28 北京小米移动软件有限公司 连接池中的连接管理方法及装置
CN108920722A (zh) * 2018-08-01 2018-11-30 郑州云海信息技术有限公司 一种参数配置的方法、装置及计算机存储介质
CN109271373A (zh) * 2018-09-14 2019-01-25 上海新炬网络信息技术股份有限公司 一种自动化mysql性能采集分析方法
CN109284311A (zh) * 2018-08-14 2019-01-29 四川虹美智能科技有限公司 一种获取数据库连接的方法和装置
CN109309735A (zh) * 2018-11-27 2019-02-05 深圳市网心科技有限公司 连接处理方法、服务器、系统及存储介质
CN109634938A (zh) * 2018-12-25 2019-04-16 浪潮电子信息产业股份有限公司 云平台的Mysql数据库性能优化方法、装置、设备及介质
CN109977096A (zh) * 2019-03-05 2019-07-05 中国银联股份有限公司 一种数据库连接管理方法及装置
CN110289993A (zh) * 2019-06-06 2019-09-27 阿里巴巴集团控股有限公司 一种连接池管理方法、装置、设备及转接系统
CN110471773A (zh) * 2019-08-21 2019-11-19 广州趣丸网络科技有限公司 一种连接池调度方法及装置
CN111324644A (zh) * 2018-11-28 2020-06-23 中国移动通信集团浙江有限公司 大型微服务架构下的数据库连接风暴的监控方法及装置
CN111586140A (zh) * 2020-04-30 2020-08-25 深圳市优必选科技股份有限公司 一种数据交互的方法及服务器
CN111767187A (zh) * 2020-05-19 2020-10-13 中国建设银行股份有限公司 监控jdbc连接池状态的方法及相关设备
WO2020211314A1 (en) * 2019-04-19 2020-10-22 Shanghai Bilibili Technology Co.,Ltd. Connection control method and device
CN112000720A (zh) * 2019-05-27 2020-11-27 北京京东尚科信息技术有限公司 数据库连接的管理方法、管理系统以及数据库连接池
CN112069237A (zh) * 2020-07-22 2020-12-11 北京思特奇信息技术股份有限公司 一种集群数据库连接池的管理系统
CN112732441A (zh) * 2021-01-07 2021-04-30 山东众阳健康科技集团有限公司 一种多元动态连接池的连接方法、装置及系统
CN113590357A (zh) * 2021-07-30 2021-11-02 未鲲(上海)科技服务有限公司 连接池的调整方法、装置、计算机设备及存储介质
US20220121672A1 (en) * 2019-12-13 2022-04-21 Paypal, Inc. Self-Adjusting Connection Pool in a Distributed System
CN115134400A (zh) * 2022-06-29 2022-09-30 中国工商银行股份有限公司 动态调整长连接数的方法和装置
CN117221331A (zh) * 2023-11-08 2023-12-12 成都新希望金融信息有限公司 一种多通道分组并发配置方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594728A (zh) * 2012-02-09 2012-07-18 苏州阔地网络科技有限公司 一种分布式即时通讯方法及系统
CN102609467A (zh) * 2012-01-16 2012-07-25 北京星网锐捷网络技术有限公司 数据库连接管理方法和装置
US8621031B2 (en) * 2003-04-29 2013-12-31 Oracle International Corporation Method and apparatus using connection pools in communication networks
CN104750546A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种调整连接池的方法及系统
CN104980524A (zh) * 2015-07-10 2015-10-14 上海新炬网络信息技术有限公司 一种weblogic连接池失效监测方法
CN105302692A (zh) * 2015-10-28 2016-02-03 联动优势科技有限公司 基于内外参数的数据库连接池监控和管理的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621031B2 (en) * 2003-04-29 2013-12-31 Oracle International Corporation Method and apparatus using connection pools in communication networks
CN102609467A (zh) * 2012-01-16 2012-07-25 北京星网锐捷网络技术有限公司 数据库连接管理方法和装置
CN102594728A (zh) * 2012-02-09 2012-07-18 苏州阔地网络科技有限公司 一种分布式即时通讯方法及系统
CN104750546A (zh) * 2013-12-30 2015-07-01 中国移动通信集团公司 一种调整连接池的方法及系统
CN104980524A (zh) * 2015-07-10 2015-10-14 上海新炬网络信息技术有限公司 一种weblogic连接池失效监测方法
CN105302692A (zh) * 2015-10-28 2016-02-03 联动优势科技有限公司 基于内外参数的数据库连接池监控和管理的方法和装置

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108551465A (zh) * 2018-03-09 2018-09-18 平安科技(深圳)有限公司 服务器并发数控制方法、装置、计算机设备及存储介质
CN108551465B (zh) * 2018-03-09 2020-06-09 平安科技(深圳)有限公司 服务器并发数控制方法、装置、计算机设备及存储介质
CN108549592A (zh) * 2018-03-19 2018-09-18 联动优势电子商务有限公司 一种数据库连接池的监控方法及监控设备、应用服务器
CN108600349A (zh) * 2018-04-11 2018-09-28 北京小米移动软件有限公司 连接池中的连接管理方法及装置
CN108600349B (zh) * 2018-04-11 2021-01-05 北京小米移动软件有限公司 连接池中的连接管理方法及装置
CN108920722A (zh) * 2018-08-01 2018-11-30 郑州云海信息技术有限公司 一种参数配置的方法、装置及计算机存储介质
CN109284311A (zh) * 2018-08-14 2019-01-29 四川虹美智能科技有限公司 一种获取数据库连接的方法和装置
CN109284311B (zh) * 2018-08-14 2020-10-23 四川虹美智能科技有限公司 一种获取数据库连接的方法和装置
CN109271373B (zh) * 2018-09-14 2022-03-01 上海新炬网络信息技术股份有限公司 一种自动化mysql性能采集分析方法
CN109271373A (zh) * 2018-09-14 2019-01-25 上海新炬网络信息技术股份有限公司 一种自动化mysql性能采集分析方法
CN109309735A (zh) * 2018-11-27 2019-02-05 深圳市网心科技有限公司 连接处理方法、服务器、系统及存储介质
CN111324644B (zh) * 2018-11-28 2023-10-27 中国移动通信集团浙江有限公司 大型微服务架构下的数据库连接风暴的监控方法及装置
CN111324644A (zh) * 2018-11-28 2020-06-23 中国移动通信集团浙江有限公司 大型微服务架构下的数据库连接风暴的监控方法及装置
CN109634938A (zh) * 2018-12-25 2019-04-16 浪潮电子信息产业股份有限公司 云平台的Mysql数据库性能优化方法、装置、设备及介质
CN109977096A (zh) * 2019-03-05 2019-07-05 中国银联股份有限公司 一种数据库连接管理方法及装置
WO2020177495A1 (zh) * 2019-03-05 2020-09-10 中国银联股份有限公司 一种数据库连接管理方法及装置、设备
WO2020211314A1 (en) * 2019-04-19 2020-10-22 Shanghai Bilibili Technology Co.,Ltd. Connection control method and device
US11165870B2 (en) 2019-04-19 2021-11-02 Shanghai Bilibili Technology Co., Ltd. Connection control method and device
CN112000720A (zh) * 2019-05-27 2020-11-27 北京京东尚科信息技术有限公司 数据库连接的管理方法、管理系统以及数据库连接池
CN110289993A (zh) * 2019-06-06 2019-09-27 阿里巴巴集团控股有限公司 一种连接池管理方法、装置、设备及转接系统
CN110471773A (zh) * 2019-08-21 2019-11-19 广州趣丸网络科技有限公司 一种连接池调度方法及装置
US11580130B2 (en) * 2019-12-13 2023-02-14 Paypal, Inc. Self-adjusting connection pool in a distributed system
US20220121672A1 (en) * 2019-12-13 2022-04-21 Paypal, Inc. Self-Adjusting Connection Pool in a Distributed System
CN111586140A (zh) * 2020-04-30 2020-08-25 深圳市优必选科技股份有限公司 一种数据交互的方法及服务器
CN111767187A (zh) * 2020-05-19 2020-10-13 中国建设银行股份有限公司 监控jdbc连接池状态的方法及相关设备
CN111767187B (zh) * 2020-05-19 2023-11-14 中国建设银行股份有限公司 监控jdbc连接池状态的方法及相关设备
CN112069237A (zh) * 2020-07-22 2020-12-11 北京思特奇信息技术股份有限公司 一种集群数据库连接池的管理系统
CN112069237B (zh) * 2020-07-22 2023-12-05 北京思特奇信息技术股份有限公司 一种集群数据库连接池的管理系统
CN112732441A (zh) * 2021-01-07 2021-04-30 山东众阳健康科技集团有限公司 一种多元动态连接池的连接方法、装置及系统
CN113590357A (zh) * 2021-07-30 2021-11-02 未鲲(上海)科技服务有限公司 连接池的调整方法、装置、计算机设备及存储介质
CN115134400A (zh) * 2022-06-29 2022-09-30 中国工商银行股份有限公司 动态调整长连接数的方法和装置
CN117221331A (zh) * 2023-11-08 2023-12-12 成都新希望金融信息有限公司 一种多通道分组并发配置方法
CN117221331B (zh) * 2023-11-08 2024-01-19 成都新希望金融信息有限公司 一种多通道分组并发配置方法

Similar Documents

Publication Publication Date Title
CN106250500A (zh) 数据库连接池的动态管理方法和系统
EP2286630B1 (en) System and method for heartbeat signal generation
CN108973752A (zh) 一种充电站有序充电管理系统及方法
US9369249B2 (en) Terminal inter-application network resource allocation method and device thereof
CN106488500B (zh) 一种公网与专网自适应的方法及装置
CN102387507B (zh) 一种多模共传输时传输资源的管理方法和装置
CN105554102A (zh) 基于容器集群的弹性伸缩方法及其应用系统
CN101330313A (zh) 一种lte系统中上行调度请求的方法
CN110297698A (zh) 一种多优先级动态限流方法、装置、服务器及存储介质
CN105049220A (zh) 一种基于电视视频会议的mcu资源调度方法
CN103475458A (zh) 一种多载波系统的无线资源分配方法及设备
CN107566668A (zh) 一种用户呼叫接入方法及装置
EP3481112B1 (en) Method and device for distributing network channel
CN100417290C (zh) 一种第三代移动通讯系统中的拥塞控制方法
CN103580887B (zh) 客户端、升级方法及系统
CN109413502A (zh) 多线程弹幕消息分发方法、装置、设备及存储介质
CN109327882A (zh) 接入控制方法、通信设备和具有存储功能的设备
CN106067886B (zh) 安全策略更新方法及系统
CN108933675B (zh) 会议资源的分配方法、装置及存储介质
CN108023831B (zh) 一种基于令牌池的服务访问自动化闭环动态拥塞控制的方法
CN109194759B (zh) 一种在前端降级的网络访问方法及系统
CN103237307B (zh) 一种基于资源池的portal账号资源分配方法及系统
CN112020025A (zh) 在线计费消息接入层授权与话单实例化方法及装置
CN100474970C (zh) 传输层传输资源分配方法
CN108388475A (zh) 一种基于终端类型配置api资源的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171204

Address after: 510000 Guangzhou City, Guangzhou, Guangdong, Fangcun Avenue, one of the 314 self compiled

Applicant after: Guangzhou Pinwei Software Co., Ltd.

Address before: Liwan District Fangcun Huahai street Guangzhou city Guangdong province 510000 No. 20 self 1-5 building (only for office use)

Applicant before: Guangzhou VIPSHOP Information and Technology Co., Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20161221

RJ01 Rejection of invention patent application after publication