多池(210)可留意无效连接池(202A)并可避免选择无效连接池(202A)。该多池(210)可在后台(214)检查连接池(202、204、…)是否已经再生效。
【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
诸如在California的San Jose的BEA系统中可用的WebLogicTM服务器之类的应用服务器允许用户进行很多功能。所述应用服务器典型支持的功能之一是提供数据库存取。在一个实施例中,由应用服务器提供诸如Java数据库连通性(JDBC)连接池(connection pool)之类的连接池。该连接池提供许多已设立的与数据库的连接。根据需要,将这些连接提供给应用服务器的应用。这样的连接池允许应用服务器中的相对多数量的应用来进行数据库存取,同时减少了应用的数据库连接时间。
技术实现思路
附图说明图1是图示了一个实施例的利用多池(multipool)管理器的多池的使用的图;图2A-2B是图示了使用具有有效连接池列表的多池管理器的图;图3A-3B是图示了一个实施例的有效连接池列表的使用的流程图;图4是图示了本专利技术一个实施例的多池管理器的操作的图;图5A-5B是图示了本专利技术一个实施例的利用多池管理器的回调(callback)的使用的流程图;图6是图示了本专利技术一个实施例的利用多池管理器的回调的使用的流程图。具体实施例方式使用自动维护的有效连接池列表的多池图1是图示了多池管理器102的操作的图。在一些系统中,期望具有多个数据库实例,诸如数据库实例104和106。例如,该数据库实例104和106中的每一个可包括在独立机器上运行的当前版本数据库。当存在多个数据库实例时,可期望使用多个连接池,诸如连接池108和连接池110。可以使用多池系统,而不是使诸如应用112、114、和116的每个应用专用(dedicating)于单个连接池并从而专用于单个数据库实例。在多池系统中,多池管理器102可确定使用哪一个连接池来获得应用到数据库系统的连接。可能有不同的方法来选择连接池。一个选择方法具有主连接池和备份连接池。首先在主连接池上尝试连接,并然后当发生故障事件时,然后通过备份连接池发送所述连接。另一个方法是负载平衡方法,其中在多个连接池之间分配所述连接,以平衡不同连接池上的负载。循环复用(round robin)方法是负载平衡方法的示例。本专利技术的一个实施例包括与数据库实例连接的、包括多个连接池202和204的多池系统。该连接池202和204适于提供到数据库实例206和208的连接。多池管理器210适于通过连接池选择和设立到数据库实例的连接。多池管理器210适于留意(keep track of)连接请求之间的无效(dead)连接池。多池管理器210可以以避免任何无效连接池的方式来选择连接池。以图2A为例,如果连接池A无效,则多池管理器可避免选择该连接池A。在一个实施例中,根据应用所批准的,而仅进行未无效连接池的选择。在一个实施例中,应用通过回调或通过配置信息来指明是否切换连接池。多池管理器210可适于维护有效连接池的列表212,并使用列表212来确定通过什么连接池来连接。术语“列表”不打算意指任何特定的数据结构。列表上的有效连接池可包括这样的连接池,即不是被多池管理器确定为无效的那些连接池。可以在后台中测试无效连接池,以查看它们是否应该返回到有效连接池列表。该有效连接池列表可以是应用所提供的候选列表的子集。作为选择,可以维护分开的候选列表和有效列表,并且多池管理器可选择在该两种列表上的连接池。多池管理器210可以为与候选列表相关联的每个连接池存储指示(indication),以指明连接池是有效还是无效。在图2A的示例中,连接池A无效,因此没有在有效连接池列表212上。诸如应用220的应用可通过多池管理器210而请求连接到数据库实例206或208之一。在图2A中,多池管理器210选择通过连接池B的连接。多池管理器210可在后台中异步地测试连接池是否已经再生效(revive)。在一个实施例中,可以使用异步后台测试模块214。图2B图示了这个后台测试的示例。在这个示例中,SQL测试查询(query)被发送到无效连接池A。如果从数据库实例206获得正确回答,则多池管理器210可以用连接池A的指示来更新有效连接池列表212。以这个方式,当下次应用请求到数据库的连接时,通过连接池A的连接是可能的。图3B图示了用于图示无效连接池的异步测试的流程图。在一个实施例中,在步骤300中,过去了预置等候时间。该等候时间可以由应用设置,并与多池管理器的配置信息一起存储,或者可以使用默认值。在步骤302中,测试无效连接池。如果如测试所指明的、无效连接池已经再生效,则更新有效连接池列表306,否则,所述循环重复步骤300中的等候预置时间。图3A图示了在一个实施例中请求连接到数据库的操作。在步骤308中,在多池管理器处收到连接到数据库的请求。在步骤310中,多池管理器可选择连接池。在一个实施例中,多池管理器210选择有效连接池列表上的连接池。然后,可尝试所述连接。在步骤312中,检查连接池是否无效。如果连接池无效,则在步骤314中,更新有效连接池列表并从有效池列表中选择新的连接池。如果连接池没有无效,则在步骤315中进行检查以查看连接池是否充满(full)。如果没有可用的连接,则多池管理器可在步骤310中从有效连接池列表中选择另一个连接池。如果任一所选择的连接池都没有无效或者充满,则在步骤316中,通过所选择的连接池进行连接。图4是图示了可以在本专利技术一个实施例中发生的不同条件的流程图。在步骤402中,多池管理器收到连接到数据库的请求。在步骤404中,多池管理器从有效池列表中选择连接池。如在步骤408中确定的,所选择的连接池有可能是重新再生效的连接池。如果是,则如在步骤410中所指明的,这是所谓的故障恢复(failback)。在步骤412中,检查连接池是否无效。如果连接池无效,则在步骤414中更新有效连接池列表,并在步骤416中从有效连接池列表中选择另一个连接池,这是所谓的故障转移(failover)条件。在步骤418中,如果连接池没有无效,则进行检查以查看连接池是否充满。如果连接池充满,则在步骤420中,进行检查以查看是否允许溢出(spillover)。如果允许溢出,则在步骤422中从有效连接池列表中选择另一个连接池。步骤424示出了进行连接。如下面所描述的,应用可利用回调或利用配置信息来批准故障恢复、故障转移、或溢出条件。本专利技术的一个实施例是这样的多池管理器,其适于通过连接池而选择和设立到数据库实例的连接。该多池管理器适于留意无效连接池。该多池管理器实现了这样的选择方法,其中,多池管理器避免选择无效连接池,以便为应用提供连接。本专利技术的一个实施例是包括多个连接池的、用于与数据库实例连接的多池系统。该连接池适于提供到数据库实例的连接。多池管理器适于通过连接池而选择和设立到数据库实例的连接。该多池管理器适于留意无效连接池,并异步测试连接池是否再生效。多池的回调接口在一些实例中,期望在切换连接池之前与应用进行核对。切换连接池可以是复杂的处理。有时,存在优选的数据库实例,并且不期望用户切换到另一个更不可取的数据库实例,除非最初的数据库实例真的不可用。在本专利技术的一个实施例中,多池管理器实现对应用的回调,以便从应用得到批准来切换连接池。在本专利技术的一个实施例中,多池系统用于利用多个连接池而连接到数据库实例。连接池502和504适于提供到数据库实本文档来自技高网...
【技术保护点】
一种用于连接到数据库实例的多池系统,包括:多个连接池,所述连接池适于提供到数据库实例的连接;以及多池管理器,适于通过连接池而选择并设立到数据库实例的连接,所述多池管理器适于留意在连接请求之间的无效连接池。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:拉胡尔斯里瓦斯塔瓦,
申请(专利权)人:BEA系统公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。