CN102243655B - 一种数据库的连接管理方法及装置 - Google Patents
一种数据库的连接管理方法及装置 Download PDFInfo
- Publication number
- CN102243655B CN102243655B CN2011101613108A CN201110161310A CN102243655B CN 102243655 B CN102243655 B CN 102243655B CN 2011101613108 A CN2011101613108 A CN 2011101613108A CN 201110161310 A CN201110161310 A CN 201110161310A CN 102243655 B CN102243655 B CN 102243655B
- Authority
- CN
- China
- Prior art keywords
- database
- connection
- storehouse
- type
- manipulation request
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库的连接管理方法及装置。上述方法包括以下步骤。数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。对应的数据库执行进程从数据库调度进程接收数据库操作请求。数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求。于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。
Description
技术领域
本发明属于数据库访问技术,尤其涉及一种数据库的连接管理方法及装置。
背景技术
如今,大量应用需要访问数据库以获得所需要的数据。然而,一般的分布式数据库服务器存在以下缺点:(1)每个数据库提供的服务是一样的,没有根据数据库压力和业务逻辑需要提供多样***;(2)数据库调度模块仅仅根据数据库服务的压力状况分配服务,没有考虑到数据库操作的优先级。
发明内容
本发明提供一种数据库的连接管理方法及装置以解决上述问题。
本发明提供一种数据库的连接管理方法,包括以下步骤。数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。对应的数据库执行进程从数据库调度进程接收数据库操作请求。数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求。于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。
本发明还提供一种数据库的连接管理装置,包括调度模块、接收模块、判断模块以及连接管理模块。调度模块用于从业务逻辑进程接收数据库操作请求。接收模块与调度模块相连,调度模块根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的接收模块。判断模块与接收模块相连,并用于判断数据库操作请求的类型。连接管理模块与判断模块相连,并用于调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求。于连接执行数据库操作请求后,连接管理模块用于将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。
相较于先前技术,根据本发明提供的数据库的连接管理方法及装置,连接根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求,从而提高数据库执行效率。另外,数据库调度进程根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。如此,有利于负荷平衡,从而提高数据库整体执行效率。此外,通过数据库连接堆栈实现数据库连接的循环使用,同时防止建立过多数据库连接占用***内存。而且,于连接执行数据库操作请求后,处于打开状态的连接将被放回至数据库连接堆栈。如此,可循环使用已经打开的连接,从而提高连接的使用效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的数据库的连接管理方法的流程图;
图2所示为根据本发明的较佳实施例提供的数据库的连接管理方法的流程图;
图3所示为根据本发明的较佳实施例提供的数据库的连接管理装置的示意图;
图4所示为根据本发明的较佳实施例提供的控制模块的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的数据库的连接管理方法的流程图。如图1所示,本发明较佳实施例提供的数据库的连接管理方法包括步骤101~104。于步骤101中,数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。于步骤102中,对应的数据库执行进程从数据库调度进程接收数据库数据请求。于步骤103中,数据库执行进程判断数据库操作请求的类型,并调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求。于步骤104中,于连接执行数据库操作请求后,数据库执行进程将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。
如下对上述过程进行详细说明。请参考图2。图2所示为根据本发明的较佳实施例提供的数据库的连接管理方法的流程图。如图2所示,本实施例提供的数据库的连接管理方法包括步骤201~207。于步骤201中,数据库调度进程从业务逻辑进程接收数据库操作请求。
于步骤202中,数据库调度进程根据数据库操作请求的业务类型的优先级以及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。于此,数据库操作请求的业务类型包括用户信息管理、离线信息管理以及聊天信息管理。然而,本发明对此不作限定。于实际应用中,可根据需要设置其他的业务类型。
具体而言,当数据库调度进程接收数据库操作请求后,根据数据库操作请求的业务类型的优先级,采用任务队列管理数据库操作请求的执行顺序。于此,优先执行业务类型优先级较高的数据库操作请求。举例而言,用户信息管理的优先级高于离线信息管理及聊天信息管理,离线信息管理的优先级高于聊天信息管理,此时,对用户信息管理的操作(例如,查询或修改)优先处理,接着,对离线信息管理及聊天信息管理的操作依次执行。
此外,数据库调度进程根据业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。举例而言,若关于用户信息管理的业务类型对应于数据库执行进程1,关于离线信息管理的业务类型对应于数据库执行进程2,关于聊天信息管理的业务类型对应于数据库执行进程3,结合上述业务类型的优先级,则数据库调度进程优先将有关用户信息管理的数据库操作请求发送至数据库执行进程1,然后依次将有关离线信息管理的数据库操作请求发送至数据库执行进程2,将有关聊天信息管理的数据库操作请求发送至数据库执行进程3。
于步骤203中,数据库执行进程接收数据库操作请求后判断数据库操作请求的类型。于此,数据库操作请求的类型包括查询、增加、删除以及修改。然而,本发明并不限定于此。
具体而言,当数据库执行进程接收数据库操作请求后,首先将接收到的数据库操作请求放入任务队列中。然后,数据库执行进程按照任务队列调度的数据库操作请求,判断数据库操作请求的类型。然而,本发明并不限定于此。于其他实施例中,数据库执行进程接收数据库操作请求后可先判断数据库操作请求的类型,然后,按照数据库操作请求的类型将数据库操作请求放入不同的任务队列中,供后续执行。
接下来,以查询操作为例进行详细说明,其他操作的执行与查询操作的执行相同,故于此不再赘述。于本实施例中,根据数据库操作请求的类型,对不同的数据库操作请求调用其对应的数据库连接堆栈内的连接,以执行所述数据库操作请求,从而提高数据库执行效率。
于步骤204中,数据库执行进程判断与查询操作对应的数据库查询连接堆栈是否存在信号量。于此,信号量的值即为数据库查询连接堆栈内的连接的剩余数量。若数据库查询连接堆栈的信号量等于0,即数据库查询连接堆栈内无可用连接时,数据库操作请求(即查询任务)需等待直至有可用连接再进行执行。若数据库查询连接堆栈具有信号量,即数据库查询连接堆栈具有可用连接时,数据库执行进程调用数据库查询连接堆栈内的一条连接,同时信号量减一(如步骤205)。接着,于步骤206中,判断上述连接是否处于打开状态。若连接处于打开状态,则连接执行数据库操作请求,并于执行完成后将处于打开状态的此条连接放回至数据库查询连接堆栈内,同时信号量加一(如步骤207)。若连接处于关闭状态,则先打开连接后再执行步骤207。然而,本发明并不限定于此。于实际应用中,数据库执行进程可同时调用数据库查询连接堆栈内的多条连接,以同时执行多个数据库操作请求。
其中,于步骤207中,连接根据数据库查询请求的业务类型访问对应的数据库执行数据库查询请求。举例而言,数据库查询请求的业务类型包括用户信息查询、离线信息查询以及聊天信息查询。相应地,数据库包括用户信息数据库、离线信息数据库以及聊天信息数据库。当数据库查询请求的业务类型为用户信息查询时,数据库执行进程调用的连接访问对应的用户信息数据库,以查询用户信息;当数据库查询请求的业务类型为离线信息查询时,数据库执行进程调用的连接访问对应的离线信息数据库;当数据库查询请求的业务类型为聊天信息查询时,数据库执行进程调用的连接访问对应的聊天信息数据库。于此,数据库执行进程调用的连接可访问不同的数据库。然而,本发明并不限定于此。于其他实施例中,数据库进程调用的连接可根据数据库查询请求的业务类型设置为访问对应类型的数据库。
如此,数据库连接堆栈内的连接可循环使用,从而提高利用率。而且,连接一旦被打开后一直处于打开状态,从而极大程度地节省了连接打开所耗费的时间,提高了数据库的执行效率。于此,使用信号量对可用连接的数量实时监控,从而避免多个数据库操作请求同时调用一个连接时造成连接失败的问题。
图3所示为根据本发明较佳实施例提供的数据库的连接管理装置的示意图。如图3所示,本实施例提供的数据库的连接管理装置包括调度模块300、接收模块301、判断模块302、连接管理模块303以及控制模块304。其中,调度模块300与接收模块301相连,判断模块302与接收模块301相连,连接管理模块303与判断模块302相连,控制模块304与连接管理模块303相连。
于本实施例中,调度模块300用于从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的接收模块301。判断模块302用于判断接收到的数据库操作请求的类型。连接管理模块303用于调用与数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求。此外,于连接执行数据库操作请求后,连接管理模块303将处于打开状态的连接放回至数据库连接堆栈,供下一次调用。具体过程同前所述,故于此不再赘述。关于控制模块304如下详述。
图4所示为根据本发明较佳实施例提供的控制模块304的示意图。如图4所示,以数据库查询连接堆栈及数据库修改连接堆栈为例进行说明。当数据库查询操作请求的数目大于数据库查询连接堆栈内可用连接的最大值,且数据库修改操作请求的数目小于数据库修改连接堆栈内可用连接的最大值时,控制模块304锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的剩余连接,且于控制模块304解除数据库修改连接的锁定后,上述剩余连接执行相应数目的数据库查询操作请求。当数据库修改操作请求的数目大于数据库修改连接堆栈内可用连接的最大值,且数据库查询操作请求的数目小于数据库查询连接堆栈内可用连接的最大值时,控制模块304锁定数据库查询连接堆栈,并调用数据库查询连接堆栈内的剩余连接,且于控制模块304解除数据库查询连接的锁定后,上述剩余连接执行相应数目的数据库修改操作请求。同理,控制模块对数据库增加连接堆栈及数据库删除连接堆栈亦有相同处理。
举例而言,当数据库修改操作请求有5个,数据库修改连接堆栈内可用连接的最大值为10个,而数据库查询操作请求有22个,数据库查询连接堆栈内可用连接最大值为20个。此时,控制模块304先锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的2个剩余连接。之后,控制模块304解除对数据库修改连接堆栈的锁定。控制模块304调用的数据库修改连接堆栈内的2个剩余连接执行超过数据库查询连接堆栈的可用连接最大值的2个数据库查询操作请求。于上述数据库查询操作请求执行完成后,控制模块304锁定数据库修改连接堆栈,并将调用的数据库修改连接堆栈内的2个剩余连接放回至数据库修改连接堆栈。之后,控制模块304解除对数据库修改连接堆栈的锁定。然而,本发明并不限定于此。于其他实施例中,于上述数据库查询操作请求执行完成后,控制模块304调用的数据库修改连接堆栈内的2个剩余连接可直接存放在数据库查询连接堆栈内。
当数据库修改操作请求有5个,数据库修改连接堆栈内可用连接的最大值为10个,而数据库查询操作请求有27个,数据库查询连接堆栈内可用连接最大值为20个。此时,控制模块304先锁定数据库修改连接堆栈,并调用数据库修改连接堆栈内的5个剩余连接。之后,控制模块304解除对数据库修改连接堆栈的锁定。控制模块304调用的数据库修改连接堆栈内的5个剩余连接执行超过数据库查询连接堆栈的可用连接最大值的5个数据库查询操作请求。另外,剩下2个数据库查询操作请求放入任务队列中,等待后续的执行。于上述数据库查询操作请求执行完成后,控制模块304锁定数据库修改连接堆栈,并将调用的数据库修改连接堆栈内的5个剩余连接放回至数据库修改连接堆栈。之后,控制模块304解除对数据库修改连接堆栈的锁定。然而,本发明并不限定于此。于其他实施例中,于上述数据库查询操作请求执行完成后,控制模块304调用的数据库修改连接堆栈内的2个剩余连接可直接存放在数据库查询连接堆栈内。
如此,充分利用了数据库修改连接堆栈内的空闲连接,提高了连接的利用率,同时亦提高了数据库的整体执行效率。然而,本发明并不限定于此。于其他实施例中,当数据库查询连接堆栈内的连接不够用时,亦可创建新的连接执行相应的查询操作。
综上所述,根据本发明较佳实施例提供的数据库的连接管理方法及装置,连接根据数据库操作请求的业务类型访问对应的数据库执行数据库操作请求,从而提高数据库执行效率。另外,数据库调度进程根据数据库操作请求的业务类型的优先级及业务类型与数据库执行进程的映射关系将数据库操作请求发送至对应的数据库执行进程。如此,有利于负荷平衡,从而提高数据库整体执行效率。此外,通过数据库连接堆栈实现数据库连接的循环使用,同时防止建立过多数据库连接占用***内存。而且,于连接执行数据库操作请求后,处于打开状态的连接被放回至数据库连接堆栈。如此,可循环使用已经打开的连接,从而提高连接的使用效率。另外,根据数据库操作请求的类型调用与其相对应的数据库连接堆栈内的连接,如此,对数据库操作进行分离,提高数据库执行效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种数据库的连接管理方法,其特征在于,包括以下步骤:
数据库调度进程从业务逻辑进程接收数据库操作请求,并根据数据库操作请求的业务类型的优先级及所述业务类型与数据库执行进程的映射关系将所述数据库操作请求发送至对应的数据库执行进程;
所述对应的数据库执行进程从所述数据库调度进程接收所述数据库操作请求;
所述数据库执行进程判断所述数据库操作请求的类型,并调用与所述数据库操作请求的类型相对应的数据库连接堆栈内的连接,以根据数据库操作请求的业务类型访问对应的数据库执行所述数据库操作请求;
于所述连接执行所述数据库操作请求后,所述数据库执行进程将处于打开状态的连接放回至所述数据库连接堆栈,供下一次调用。
2.根据权利要求1所述的数据库的连接管理方法,其特征在于,所述业务类型包括用户信息管理、离线信息管理以及聊天信息管理。
3.根据权利要求1所述的数据库的连接管理方法,其特征在于,所述数据库连接堆栈包括数据库查询连接堆栈、数据库增加连接堆栈、数据库删除连接堆栈及数据库修改连接堆栈。
4.根据权利要求3所述的数据库的连接管理方法,其特征在于,所述数据库操作请求的类型包括查询、增加、删除及修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101613108A CN102243655B (zh) | 2011-06-16 | 2011-06-16 | 一种数据库的连接管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101613108A CN102243655B (zh) | 2011-06-16 | 2011-06-16 | 一种数据库的连接管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102243655A CN102243655A (zh) | 2011-11-16 |
CN102243655B true CN102243655B (zh) | 2012-07-18 |
Family
ID=44961710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101613108A Expired - Fee Related CN102243655B (zh) | 2011-06-16 | 2011-06-16 | 一种数据库的连接管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102243655B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365929B (zh) * | 2012-04-10 | 2016-09-28 | 阿里巴巴集团控股有限公司 | 一种数据库连接的管理方法及*** |
CN107153648A (zh) * | 2016-03-02 | 2017-09-12 | 阿里巴巴集团控股有限公司 | 一种防止***崩溃的方法及装置 |
CN106302390A (zh) * | 2016-07-27 | 2017-01-04 | 福建富士通信息软件有限公司 | 一种基于nginx访问频率限制的方法以及*** |
CN106650501B (zh) * | 2016-12-30 | 2019-12-06 | 迈普通信技术股份有限公司 | 数据库访问控制方法和装置 |
CN109669979A (zh) * | 2018-12-18 | 2019-04-23 | 网易(杭州)网络有限公司 | 数据的处理方法及装置、存储介质 |
CN116107999B (zh) * | 2023-04-06 | 2023-06-27 | 之江实验室 | 一种数据库服务和存储***及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815469A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种数据库连接资源的管理方法 |
CN101840348A (zh) * | 2009-12-24 | 2010-09-22 | 陕西移数通电讯有限公司 | 数据库中间件*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719242B2 (en) * | 2003-08-29 | 2014-05-06 | Sap Ag | System and method for a database access statement interceptor |
CN102243653B (zh) * | 2011-06-16 | 2012-08-22 | 苏州阔地网络科技有限公司 | 一种数据库连接的管理方法及装置 |
-
2011
- 2011-06-16 CN CN2011101613108A patent/CN102243655B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1815469A (zh) * | 2005-02-01 | 2006-08-09 | 华为技术有限公司 | 一种数据库连接资源的管理方法 |
CN101840348A (zh) * | 2009-12-24 | 2010-09-22 | 陕西移数通电讯有限公司 | 数据库中间件*** |
Also Published As
Publication number | Publication date |
---|---|
CN102243655A (zh) | 2011-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102243655B (zh) | 一种数据库的连接管理方法及装置 | |
CN102243653B (zh) | 一种数据库连接的管理方法及装置 | |
US8832173B2 (en) | System and method of multithreaded processing across multiple servers | |
CN102655532B (zh) | 分布式异构虚拟资源集成管理方法及*** | |
US8346856B2 (en) | Client environment creation system, client environment creation method, client environment creation program and storage medium | |
CN101201753B (zh) | 一种多状态机管理引擎的配置管理方法 | |
US20060206894A1 (en) | Method of scheduling jobs using database management system for real-time processing | |
CN102243597B (zh) | 一种数据库连接的控制管理方法及装置 | |
CN101257406B (zh) | 网元发现方法和*** | |
CN108874903A (zh) | 数据读取方法、装置、计算机设备及计算机可读存储介质 | |
CN101216782A (zh) | 一种金融数据实现etl加工的方法和*** | |
CN102243652B (zh) | 一种数据库连接管理方法及装置 | |
CN101354720B (zh) | 一种分布式内存数据库数据***及其共享方法 | |
CN111427608B (zh) | 用于银行核心***的灰度发布方法 | |
CN108108119A (zh) | 一种可扩展的存储集群事物的配置方法及装置 | |
CN110134533B (zh) | 一种可批量调度数据的***及方法 | |
CN102243654B (zh) | 一种数据库的连接控制管理方法及装置 | |
CN111198915A (zh) | 一种基于公共信息模型的数据分发***及方法 | |
CN101754156A (zh) | 局数据管理方法、装置及计费*** | |
CN112748997A (zh) | 一种工作流的调度方法及*** | |
KR19990043986A (ko) | 업무 인계 시스템 | |
CN102945264A (zh) | 智能启用分布式事务的方法 | |
CN102243651B (zh) | 一种数据库连接控制管理方法及装置 | |
US8914512B2 (en) | Method and system for defining additional resources in a user management system of a manufacturing execution system | |
CN100423492C (zh) | 一种管理信息库的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8 Patentee after: Kuo Di education and science company limited Address before: Suzhou City, Jiangsu province 215121 Fengting Avenue Suzhou Industrial Park No. 666 Weiting Intelligent Industrial Park Building 8 Patentee before: Suzhou Kuodi Network Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120718 Termination date: 20180616 |