事务中间件机器环境中处理数据库状态通知的系统和方法_2

文档序号:9380363阅读:来源:国知局
性以及基于标准的互用性的平台。
[0026] 另外,Oracle Tuxedo系统能够遵守国际开放标准组织(The Open Group)的X/ Open标准,包括对用于两阶段提交(2PC)处理的XA标准、X/0pen ATMI API以及用于语言 国际化的X/〇pen可移植性指南(X/0pen Portability Guide) (XPG)标准的支持。当事务 应用服务器使用XA标准时,它能够被称为XA服务器。例如,可以使用0PENINF0属性配置 属于Tuxedo群组的每个Tuxedo应用服务器。在Tuxedo群组中的所有XA服务器都能够使 用0PENINF0属性来建立到资源管理器(RM)的连接。
[0027] 数据库状态通知集成
[0028] 图1示出了根据本发明的一种实施例的支持在事务中间件机器环境100中的数据 库状态通知集成的示图。如图1所示,包含一个或多个事务服务器111-112的事务中间件 系统101能够自适应地响应数据库服务102的状态变化,该数据库服务102可以包括一个 或多个数据库实例121-122。
[0029] 而且,为了通知其他过程有关配置和服务级别的信息(包括各种类型的服务状态 变化信息),数据库服务102能够使用通知服务104来发布事件105。
[0030] 当事务中间件系统101与数据库服务102连接时,事务中间件系统101能够使用 通知服务客户端103来接收来自与数据库服务102关联的通知服务104的各种事件105。 然后,在事务中间件系统101中的应用能够立即响应数据库服务状态变化。
[0031] 例如,Oracle RAC能够使用Oracle通知服务(ONS)来发布快速应用通知(FAN) 事件。当可以包含多个Oracle RAC集群的Oracle Tuxedo系统与Oracle数据库服务连接 时,该Oracle Tuxedo系统能够接收来自ONS的FAN事件。这些FAN事件能够包括应用于 不同的数据库、实例、服务及节点的上线(UP)或下线(DOWN)事件。然后,Tuxedo应用能够 相应地响应FAN事件。
[0032] 根据本发明的一种实施例,事务中间件系统101能够支持各种特征,比如快速连 接故障切换(FCF)、运行时连接负载均衡以及用于数据库服务中断的平稳(graceful)处 理。
[0033] 此外,事务中间件系统101能够通过捕获并报告与使用传统的关系数据库管理系 统(RDBMS)的执行方法关联的各种问题来提高各种事务应用的性能。
[0034] 例如,通过利用在事务中间件系统101中的数据库状态通知集成,事务中间件系 统101能够在节点没有关闭套接字的情况下出故障(这样的故障在IP地址失效时会潜在 地影响每个后续连接)时避免等待传输控制协议/互联网协议(TCP/IP)超时。另外,该系 统能够在服务不可用时避免尝试连接至数据库服务。此外,该系统还能够在服务器宕机时 避免在客户端处处理最后的结果,并且能够避免尝试在缓慢的、挂起的及出故障的节点上 执行工作。而且,该系统能够在数据库服务于中断之后被恢复时连接至数据库服务。
[0035] 根据本发明的一种实施例,事务中间件系统101能够支持连接转向特征,该特征 能够基于各种数据库状态通知事件1〇5(比如高可用性(HA)事件)来引导事务服务器 111-112建立到具体的数据库实例121或122的连接。因而,该系统能够将请求连接的应用 用户仅引向可用的数据库实例。
[0036] 图2示出了根据本发明的一种实施例的在事务中间件环境200中处理各种数据库 状态通知事件的示图。如图2所示,包含一个或多个事务服务器211-212的事务中间件机器 201能够使用通知服务客户端(例如,FAN服务器210)来接收由数据库状态通知服务202 发布的各种事件。
[0037] 例如,在Tuxedo中,FAN服务器210 (例如,TMFAN服务器)能够是能够处理接收自 Oracle RAC的FAN事件的系统提供的服务器。此外,FAN服务器210还能够作为远程客户 端直接连接至通知服务服务器(例如,ONS服务器),即使在通知服务服务器没有处于与该 客户端相同的节点上的时候。作为选择,当通知服务服务器没有处于与该客户端相同的节 点上时,FAN服务器210能够经由客户端侧的守护进程(例如ONS守护进程)连接至通知 服务服务器。
[0038] 当Tuxedo系统启动时,FAN服务器210能够创建与数据库状态通知服务202的连 接以接收各种FAN事件221-222,比如高可用性(HA)事件221和运行时负载均衡(RLB)事 件222。另外,FAN服务器210还允许用户在用户日志文件(例如,Tuxedo用户日志(ULOG) 文件207)中核查FAN事件221-222相关的信息。
[0039] 而且,该系统允许单个FAN服务器210接收来自多个数据库的通知。此外,该系统 还能够防止FAN服务器210的不同实例接收和处理相同的通知。
[0040] 根据本发明的一种实施例,FAN服务器210能够使用主进程和一个或多个接收线 程来实现。
[0041] 以下的列表1示出了主进程的示例性实施方式。
[0042]
[0047] 列表 2
[0048] 如上所示,在服务初始化阶段,主进程能够读入各种参数并创建不同的接收线程。 而且,每个接收线程都能够创建订户。然后,当接收线程正在线时,该接收线程能够周期性 地接收并处理事件(例如,每5秒钟)。最后,为了给服务的关闭作准备,主进程能够设置下 线标记并且发布下线事件。
[0049] 根据本发明的一种实施例,事务中间件机器201能够将数据库服务状态信息存储 于共享存储器 203 (例如,Tuxedo 公告版(Tuxedo Bulletin BoarcO(BB))内。
[0050] 如图2所示,FAN服务器210能够在共享存储器203内创建并维持不同的状态表。 这些表能够包括数据库服务状态表204和数据库实例状态表205。而且,事务中间件机器 201能够基于这些表来支持实例知晓特征和其他相关的特征。
[0051] 例如,在Tuxedo中,该系统能够使用以下函数来创建RM状态表204、实例状态表 205和主机名表。
[0052] int_tmsmcinst(_TCADEF, struct tminstparms_t*instp, struct tmorainfo_ t*orainfo)
[0053] 另外,FAN服务器210能够在需要时于数据库服务状态表204、实例状态表205和 主机名表中创建新条目。此外,FAN服务器210能够在适当时更新并清理数据库服务状态 表204、实例状态表205和主机名表。
[0054] 在Tuxedo中,FAN服务器210能够被配置为本地ONS客户端或者远程ONS客户端。 如果FAN服务器210被配置为本地ONS客户端,则该系统能够例如经由配置文件来启用客 户端侧的ONS守护进程,同时数据库侧的ONS守护进程继续运行着。另一方面,如果FAN服 务器210被配置为远程客户端,则该系统不需要启用客户端侧的ONS守护进程。相反,该系 统能够基于不同的关键词来设立各种参数。
[0055] 根据本发明的一种实施例,HA事件221能够包括对节点、数据库实例和/或数据 库服务中的服务的上线/下线通知。例如,在Oracle RAC中,服务能够是连续可用的,负载 在一个或多个实例间共享。高可用性框架监测着数据库及其服务并且使用FAN事件来发送 事件通知。当数据库集群配置变化时,该系统能够立即发布指示在集群中发生状态变化的 FAN事件。Oracle RAC的高可用性框架能够维持服务的可用性。此外,Oracle RAC能够根 据商业规则和服务属性来恢复并均衡服务。
[0056] 通过利用在事务中间件环境中的数据库状态通知集成,该系统能够支持快速连接 故障切换(FCF)特征,该特征在旧服务变为不可用时允许与数据库直接连接的客户端、中 间层应用和/或各种程序快速地且无缝地进行到可用服务的故障切换
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1