用于将应用服务器连接到集群的数据库的系统和方法与流程

文档序号:11407376阅读:341来源:国知局
用于将应用服务器连接到集群的数据库的系统和方法与流程
用于将应用服务器连接到集群的数据库的系统和方法版权声明此专利文献的说明书的一部分包含受版权保护的材料。版权所有者不反对任何人影印专利文献或专利说明书,因为它出现在专利商标局专利文件或记录中,但在别的方面却保留所有版权。技术领域本发明一般涉及诸如中间件之类的计算机系统和软件,特别是涉及用于管理到集群的数据库的连接的系统。

背景技术:
在诸如OracleWeblogic服务器之类的应用服务器的背景中,用户可以通过配置数据源来配置应用服务器中的数据库连接性。应用服务器上的应用可以使用诸如标准Java命名和目录接口(JNDI)之类的目录服务来查找特定数据源,然后,请求数据库连接。当完成连接时,应用可以通过应用服务器断开数据库连接。应用服务器管理员和软件开发人员/程序员都可以创建数据源。这些是本发明的各实施例旨在解决的一般领域。

技术实现要素:
根据一个实施例,提供了支持使用数据源将应用服务器连接到集群的数据库的系统和方法。集群的数据库包括多个数据库实例,并与通知服务组件相关联。通知服务组件可以被集群的数据库用来广播描述多个数据库实例中的状态变化的通知。数据源包括管理到集群的数据库中的多个数据库实例的一组连接的连接池。数据源操作为向通知服务组件进行注册,以接收涉及集群的数据库的变化的通知,其中,应用服务器操作为在运行时自适应地根据集群的数据库的任何状态变化,配置和管理到集群的数据库的连接。根据本发明的一个方面,提供了支持将应用服务器连接到数据库系统的数据库系统,所述数据库系统是集群的数据库,包括:多个数据库实例;以及,与多个数据库实例相关联的通知服务组件,其中,通知服务组件可以被集群的数据库用来广播描述集群的数据库中的状态变化的通知;其中,通知服务组件从与应用服务器相关联的数据源接收注册,应用服务器用于接收有关集群的数据库的变化的通知以及在运行时自适应地根据集群的数据库的状态变化,由数据源配置和管理到集群的数据库的连接。优选地,集群的数据库的状态变化包括下列各项之一:一个或多个数据库实例已经被非计划的运行中断停止或清除,以及,在运行中断之后添加或重新启动数据库实例。根据本发明的另一个方面,提供了支持将应用服务器连接到集群的数据库的应用服务器,包括:管理到所述集群的数据库中的所述多个数据库实例的一组连接的连接池;以及,与所述连接池相关联的单一数据源;其中,所述数据源操作为向所述集群的数据库的通知服务组件进行注册,以接收涉及所述集群的数据库的变化的通知,其中,所述应用服务器操作为在运行时自适应地根据所述集群的数据库的状态变化,配置和管理到所述集群的数据库的连接。优选地,所述数据源给数据库提供快速的连接故障转移能力,并对数据库服务事件作出响应,以确保到数据库实例的每一所述连接都是有效的。优选地,所述数据源操作为使用度量来监视由所述应用服务器采取的动作。优选地,所述数据源操作为轮询到所述集群的数据库中的所述多个数据库实例的所述一组连接,作为所述通知服务组件的替代方案。优选地,所述数据源操作为从所述通知服务组件接收包含负载平衡咨询事件的通知。优选地,所述数据源确保全局事务的背景内的所有数据库操作都涉及同一数据库实例。优选地,所述数据源支持所述集群的数据库中的目标数据库实例的平稳的关闭操作。优选地,所述数据源允许在关闭和重新创建一个或多个物理连接之前完成任何正在进行中的事务。优选地,所述数据源清理空闲连接,以便对连接的新请求不被发送到所述集群的数据库中的所述目标数据库实例。附图说明图1示出了根据一个实施例的用于将应用服务器连接到集群的数据库的多数据源系统的图示。图2示出了根据一个实施例的用于将应用服务器连接到集群的数据库的Gridlink数据源系统的图示。图3示出了根据一个实施例的用于将应用服务器连接到由集群的数据库所提供的不同的服务Gridlink数据源系统的图示。图4示出了根据一个实施例的使用用于将应用服务器连接到集群的数据库的Gridlink数据源的示例性流程图。图5示出了根据一个实施例的支持数据库负载平衡咨询事件的Gridlink数据源系统的图示。图6示出了根据一个实施例的支持集群的数据库中的数据库状态改变事件的Gridlink数据源系统的图示。图7示出了根据一个实施例的支持分布式事务(XA)的Gridlink数据源系统的图示。图8示出了根据一个实施例的支持数据库平稳的关闭的Gridlink数据源系统的图示。图9示出了根据一个实施例的使用数据库连接模块的Gridlink数据源系统的图示。图10示出了根据一个实施例的用于配置与Gridlink数据源相关联的多个监听器的向导页面的图示。图11示出了根据一个实施例的用于配置与Gridlink数据源相关联的通知服务客户端的向导页面的图示。具体实施方式本发明是作为示例示出的,而不仅限于各个附图的图形,在附图中,类似的附图标记表示类似的元件。应该注意,在本发明中对“一个”或“某些”实施例的引用不一定是指同一个实施例,而这样的引用表示至少一个。另外,此处所提供的对本发明的各实施例的描述使用Oracle真实应用集群(RAC)数据库系统作为集群的数据库环境的说明性示例。对所属领域的技术人员显而易见的是,可以使用其他类型的集群的数据库环境,而没有任何限制。集群的数据库或数据库集群可以包括多个互连的计算机或服务器,表现为对最终用户和应用而言好像它们是一个服务器。与在数据库和实例之间具有一对一关系的单实例数据库不同,集群的数据库在数据库和实例之间具有一对多关系。例如,OracleRAC数据库系统使用户能使用OracleClusterware基础架构将多个服务器绑定到一起,来聚集Oracle数据库,以便它们作为单一系统来操作。OracleRAC数据库系统可以具有许多实例,所有的这些实例都访问一个数据库。多个服务器的组合的处理能力可以提供比单一服务器所能提供的更大的吞吐量和可缩放性。图1示出了根据一个实施例的用于将应用服务器连接到集群的数据库的多数据源系统的图示。如图1所示,多数据源103是一个或多个单个数据源131、132、133上的数据源抽象。多数据源根据指定的策略,诸如负载平衡策略以及故障转移策略,从成员数据源中的每一个提供Java数据库连接(JDBC)连接121、122、123。此外,多数据源配置要求每一成员数据源获取到特定数据库实例的连接。Gridlink数据源根据一个实施例,提供了支持使用数据源(此处称为“Gridlink数据源”)将应用服务器连接到集群的数据库的系统和方法。集群的数据库包括多个数据库实例,并与通知服务组件相关联。通知服务组件可以被集群的数据库用来广播描述该多个数据库实例中的状态变化的通知。数据源包括管理到集群的数据库中的多个数据库实例的一组连接的连接池。数据源操作为向通知服务组件进行注册,以接收涉及集群的数据库的变化的通知,其中,应用服务器操作为在运行时自适应地根据集群的数据库的任何状态变化,配置和管理到集群的数据库的连接。根据一个实施例,gridlink数据源可以使用表示针对数据库集群的服务的单一数据源配置。gridlink数据源可以对通知事件作出响应,以提供快速的连接故障转移、运行时连接负载平衡和数据库实例平稳的关闭。另外,还可以在全局事务Id级别支持分布式事务(XA)亲和性。例如,OracleRAC数据库系统可以支持客户端通知,以传播有关数据库集群的状态的信息。JDBC数据源配置允许指定服务URL以提供RAC连接性。JDBC数据源配置还包括监视向RAC集群提供JDBC连接的统计和可管理性的支持。根据一个实施例,Gridlink数据源通过利用数据库集群通知的能力以提供更简单配置的形式的更好的总体连接性、对数据库节点故障的更快响应、对数据库集群资源的更好利用,以及改善的运行时监视以及管理,来克服多数据源解决方案的缺点。另外,可以支持Gridlink数据源以及多数据源的混合配置。图2示出了根据一个实施例的用于将应用服务器连接到集群的数据库的Gridlink数据源系统的图示。如图2所示,Gridlink数据源203是与应用服务器201相关联的单一数据源。Gridlink数据源通过单个数据源方式(该方式降低使用集群的数据库所需的配置和管理复杂度)来简化集群的数据库202与应用服务器的使用。Gridlink数据源包括连接池205,该连接池205又包含去往数据库集群中的不同的数据库实例211、212、213的一组异构连接221、222、223。也如图2所示,不同的数据库实例连接到共享存储器204。根据一个实施例,对连接池中的连接的管理基于在连接池上配置的静态设置214,诸如最小/最大容量、超时等等,以及有关从通知服务组件206接收到的事件消息210中的连接池的实时信息,该信息通知数据库集群内的任何状态变化的数据源。当应用207、208或209从数据源请求连接时,基于连接池接收到的负载平衡信息,以及来自池中的正在使用中的连接的当前分布,从连接池中选择合适的连接,并向应用提供。应用服务器可以向通知服务组件进行注册以接收诸如数据库事件消息之类的通知,并因此快速地了解集群数据库中的任何状态变化。通过使用这些状态变化通知事件,应用服务器可以智能地修改其连接池,使得系统可以提供连续、可靠并且有效的对集群数据库的访问。根据一个实施例,当没有配置通知服务或它不能正确地操作时,可以作为通知服务的替代方案来应用连接轮询。当使用连接轮询时,系统可以通过对各个连接执行SQL操作,来确定各个JDBC连接的生存能力,并检测集群的集群拓扑中的变化。通过与通知服务方式进行比较,连接轮询方式以额外的运行时开销以及潜在的对数据库实例节点故障的延迟检测为代价。此外,连接轮询方式潜在地遭受虚警,该虚警可能会导致对数据源池的不必要的禁用以及可能正在被应用使用的有效连接的结束。图3示出了根据一个实施例的用于将应用服务器连接到由集群的数据库所提供的不同的服务的Gridlink数据源系统的图示。如图3所示,集群的数据库302可以提供不同的服务311、312以及313,每一个服务都可以是跨不同的数据库实例可分配的数据库工作负荷抽象,以提供特定服务质量。也如图3所示,应用服务器环境301可包括多个应用服务器实例303和304。每一应用服务器实例可包括带有单一连接池307和308的单一数据源305和306。Gridlink数据源系统向集群的数据库提供连接321、322、323、324和325,并以无约束的方式支持对数据库服务的消费,以便提供与集群的数据库的更深的集成。例如,Oracle数据库服务可以是用于管理Oracle数据库中的工作负荷的逻辑抽象。数据库服务可以提供对于工作负荷、对工作负荷的优先级排序、对于实际事务的性能度量,以及当性能目标被违犯时的警告和动作的单一系统映像。数据库服务可以使数据库管理员能配置工作负荷、管理工作负荷、启用/禁用工作负荷,以及作为单一实体来测量工作负荷。数据库服务还可以将工作负荷分割为在逻辑上不相交的组。每一服务表示带有共同的属性、服务级别的阈值以及优先级的工作负荷。图4示出了根据一个实施例的使用用于将应用服务器连接到集群的数据库的Gridlink数据源的示例性流程图。如图4所示,在步骤401中,通知服务组件可以与集群的数据库中的多个数据库实例相关联。此外,在步骤402中,数据源可以与包含到集群的数据库中的多个数据库实例的一组连接的连接池相关联。在步骤403中,数据源可以向通知服务组件进行注册以接收有关集群的数据库的变化的通知。在步骤404中,数据源在运行时从通知服务接收描述集群的数据库中的状态变化的通知。然后,在步骤405中,数据源根据集群的数据库的状态变化自适应地配置和管理到集群的数据库的连接。根据一个实施例,Gridlink数据源的配置可以利用持续的JDBC描述符豆(bean)。JDBC描述符豆可以标识Gridlink数据源并指定数据库通知服务客户端配置信息。JDBC描述符豆可以使用XML文件来实现Gridlink数据源功能。下面是用于配置...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1