CN105100185A - 事务中间件机器环境中处理数据库状态通知的***和方法 - Google Patents
事务中间件机器环境中处理数据库状态通知的***和方法 Download PDFInfo
- Publication number
- CN105100185A CN105100185A CN201510195238.9A CN201510195238A CN105100185A CN 105100185 A CN105100185 A CN 105100185A CN 201510195238 A CN201510195238 A CN 201510195238A CN 105100185 A CN105100185 A CN 105100185A
- Authority
- CN
- China
- Prior art keywords
- database
- service
- event
- task server
- database service
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
公开了在事务中间件机器环境中处理数据库状态通知的一种***和方法。该***能够将一个或多个事务服务器连接至数据库服务,其中该数据库服务与通知服务关联。而且,与所述一个或多个事务服务器关联的通知服务客户端能够接收来自通知服务的一个或多个事件,其中所述一个或多个事件指示数据库服务的一个或多个状态变化。然后,一个或多个事务服务器操作以自适应地响应数据库服务的所述一个或多个状态变化。
Description
版权声明
本专利文献的一部分公开内容包含受到版权保护的材料。版权所有者不反对任何人按照专利文献或专利公开内容在(美国)专利和商标局的专利文件或记录中出现的形式对专利文献或专利公开内容进行复制,不过保留其它方面的所有版权。
优先权声明
本申请要求由发明人ToddLittle、QingshengZhang和XugangShen在2014年5月6日提交的、标题为“ADAPTIVELYINTEGRATINGADATABASESTATENOTIFICATIONSERVICEWITHADISTRIBUTEDTRANSACTIONALMIDDLEWAREMACHINE”的美国临时专利申请No.61/989,323的优先权,该专利申请No.61/989,323以引用的方式并入本文(代理人案号No.ORACL-05551US0)。
相关申请的交叉引用
本申请涉及下列专利申请,这些专利申请每个都以引用方式全文并入本文:
在2014年12月31日提交的、标题为“SYSTEMANDMETHODFORSUPPORTINGCOMMONTRANSACTIONIDENTIFIER(XID)OPTIMIZATIONBASEDONRESOURCEMANAGER(RM)INSTANCEAWARENESSINATRANSACTIONALENVIRONMENT”的美国专利申请No.14/587,468(代理人案号No.ORACL-05545US1);以及
在2014年12月31日提交的、标题为“SYSTEMANDMETHODFORSUPPORTINGRESOURCEMANAGER(RM)INSTANCEAWARENESSINATRANSACTIONALENVIRONMENT”的美国专利申请No.14/587,474(代理人案号No.ORACL-05545US2);以及
在2014年12月31日提交的、标题为“SYSTEMANDMETHODFORSUPPORTINGTRANSACTIONAFFINITYBASEDONRESOURCEMANAGER(RM)INSTANCEAWARENESSINATRANSACTIONALENVIRONMENT”的美国专利申请No.14/587,476(代理人案号No.ORACL-05550US0)。
技术领域
本发明一般地涉及计算机***和软件,并且具体地涉及事务中间件机器环境。
背景技术
事务中间件***或面向事务的中间件包括能够处理组织内的各种事务的企业应用服务器。随着新技术(比如高性能网络和多处理器计算机)的发展,有必要进一步提高事务中间件的性能。这些是本发明的实施例打算要处理的一般领域。
发明内容
本文所描述的是能够在事务中间件机器环境中处理各种数据库状态通知的***和方法。该***能够将一个或多个事务服务器连接至数据库服务,其中该数据库服务与通知服务关联。而且,与所述一个或多个事务服务器关联的通知服务客户端能够接收来自通知服务的一个或多个事件,其中所述一个或多个事件指示数据库服务的一个或多个状态变化。然后,所述一个或多个事务服务器进行操作以自适应地响应数据库服务的该一个或多个状态变化。
附图说明
图1示出了根据本发明的一种实施例的支持在事务中间件环境中的数据库状态通知集成的示图。
图2示出了根据本发明的一种实施例的在事务中间件环境中处理各种数据库状态通知事件的示图。
图3示出了根据本发明的一种实施例的在事务中间件环境中处理数据库高可用性(HA)事件的示图。
图4示出了根据本发明的一种实施例的在事务中间件环境中支持服务路由的示图。
图5示出了根据本发明的一种实施例的用于支持在事务中间件机器环境中的数据库状态通知集成的示例性流程图。
具体实施方式
本发明以示例的方式(但不意在限定)示于附图中,在附图中相同的附图标记指示相似的元件。应当注意,在本公开内容中对“一个(an)”、“一种”或“一些”实施例的引用并不一定是对同一实施例的引用,并且这样的引用意指至少一种实施例。
以下关于本发明的描述将Tuxedo环境用作事务中间件机器环境的示例。对本领域技术人员而言将很清楚的是,其他类型的事务中间件机器环境也能够被无限制地使用。
本文所描述的是能够在事务环境(例如,事务中间件机器环境)中处理各种数据库状态通知的***和方法。
事务中间件机器环境
根据本发明的实施例,该***包括高性能硬件(例如,64位处理器技术、高性能大容量存储器以及冗余的InfiniBand和以太网联网)与应用服务器或中间件环境(比如WebLogic套件)的结合,以提供包含大规模并行的内存中网格的完备的JavaEE应用服务器复合体,该JavaEE应用服务器复合体能够被快速提供,并且能够按需伸缩。根据一种实施例,该***能够被部署成提供应用服务器网格、存储区域网络和InfiniBand(IB)网络的全机架、半机架或四分之一机架或者其他配置。中间件机器软件能够提供应用服务器、中间件及其他功能,比如WebLogic服务器、JRockit或HotspotJVM、OracleLinux或Solaris以及OracleVM。根据一种实施例,该***能够包含经由IB网络相互通信的多个计算节点、IB交换机网关和存储节点或单元。当被实现为机架配置时,该机架的未使用部分能够留空或者由充填物占据。
根据本发明的一种实施例,该***提供用于托管中间件或应用服务器软件(比如Oracle中间件SW套件或Weblogic)的易于部署的解决方案。如同本文所述,根据一种实施例,该***是包含一个或多个服务器、存储单元、用于存储联网的IB架构,以及为托管中间件应用所需的所有其他组件的“盒装网格(gridinabox)”。通过利用使用例如真正应用集群(RealApplicationClusters)和Exalogic开放存储(ExalogicOpenstorage)的大规模并行的网格架构,可以为所有类型的中间件应用实现显著的性能。该***以线性I/O可伸缩性来实现改进的性能,使用及管理简单,并且实现任务关键的可用性和可靠性。
根据本发明的一种实施例,事务中间件***(例如,OracleTuxedo***)能够利用具有多个处理器的高速机器(例如,OracleExalogic中间件机器)以及高性能网络连接(例如,IB网络)。另外,OracleTuxedo***能够利用集群数据库,例如Oracle真正应用集群(RAC)企业数据库,该企业数据库是具有共享的高速缓存架构的集群数据库,并且能够作为云架构的组件。OracleRAC能够克服传统的无共享的和共享盘的解决方案的局限,从而为商业应用提供高度可伸缩的及可用的数据库解决方案。
根据本发明的一种实施例,OracleTuxedo***提供一组软件模块,这组软件模块允许高性能的分布式商业应用的构建、执行及管理,并且已经被多个多层应用开发工具用作事务中间件。Tuxedo是能够在分布式计算环境中用来管理分布式的事务处理的中间件平台。它是已经得到证明的用于解锁企业的遗留应用并且将它们扩展到面向服务的架构同时实现不受限制的可伸缩性以及基于标准的互用性的平台。
另外,OracleTuxedo***能够遵守国际开放标准组织(TheOpenGroup)的X/Open标准,包括对用于两阶段提交(2PC)处理的XA标准、X/OpenATMIAPI以及用于语言国际化的X/Open可移植性指南(X/OpenPortabilityGuide)(XPG)标准的支持。当事务应用服务器使用XA标准时,它能够被称为XA服务器。例如,可以使用OPENINFO属性配置属于Tuxedo群组的每个Tuxedo应用服务器。在Tuxedo群组中的所有XA服务器都能够使用OPENINFO属性来建立到资源管理器(RM)的连接。
数据库状态通知集成
图1示出了根据本发明的一种实施例的支持在事务中间件机器环境100中的数据库状态通知集成的示图。如图1所示,包含一个或多个事务服务器111-112的事务中间件***101能够自适应地响应数据库服务102的状态变化,该数据库服务102可以包括一个或多个数据库实例121-122。
而且,为了通知其他过程有关配置和服务级别的信息(包括各种类型的服务状态变化信息),数据库服务102能够使用通知服务104来发布事件105。
当事务中间件***101与数据库服务102连接时,事务中间件***101能够使用通知服务客户端103来接收来自与数据库服务102关联的通知服务104的各种事件105。然后,在事务中间件***101中的应用能够立即响应数据库服务状态变化。
例如,OracleRAC能够使用Oracle通知服务(ONS)来发布快速应用通知(FAN)事件。当可以包含多个OracleRAC集群的OracleTuxedo***与Oracle数据库服务连接时,该OracleTuxedo***能够接收来自ONS的FAN事件。这些FAN事件能够包括应用于不同的数据库、实例、服务及节点的上线(UP)或下线(DOWN)事件。然后,Tuxedo应用能够相应地响应FAN事件。
根据本发明的一种实施例,事务中间件***101能够支持各种特征,比如快速连接故障切换(FCF)、运行时连接负载均衡以及用于数据库服务中断的平稳(graceful)处理。
此外,事务中间件***101能够通过捕获并报告与使用传统的关系数据库管理***(RDBMS)的执行方法关联的各种问题来提高各种事务应用的性能。
例如,通过利用在事务中间件***101中的数据库状态通知集成,事务中间件***101能够在节点没有关闭套接字的情况下出故障(这样的故障在IP地址失效时会潜在地影响每个后续连接)时避免等待传输控制协议/互联网协议(TCP/IP)超时。另外,该***能够在服务不可用时避免尝试连接至数据库服务。此外,该***还能够在服务器宕机时避免在客户端处处理最后的结果,并且能够避免尝试在缓慢的、挂起的及出故障的节点上执行工作。而且,该***能够在数据库服务于中断之后被恢复时连接至数据库服务。
根据本发明的一种实施例,事务中间件***101能够支持连接转向特征,该特征能够基于各种数据库状态通知事件105(比如高可用性(HA)事件)来引导事务服务器111-112建立到具体的数据库实例121或122的连接。因而,该***能够将请求连接的应用用户仅引向可用的数据库实例。
图2示出了根据本发明的一种实施例的在事务中间件环境200中处理各种数据库状态通知事件的示图。如图2所示,包含一个或多个事务服务器211-212的事务中间件机器201能够使用通知服务客户端(例如,FAN服务器210)来接收由数据库状态通知服务202发布的各种事件。
例如,在Tuxedo中,FAN服务器210(例如,TMFAN服务器)能够是能够处理接收自OracleRAC的FAN事件的***提供的服务器。此外,FAN服务器210还能够作为远程客户端直接连接至通知服务服务器(例如,ONS服务器),即使在通知服务服务器没有处于与该客户端相同的节点上的时候。作为选择,当通知服务服务器没有处于与该客户端相同的节点上时,FAN服务器210能够经由客户端侧的守护进程(例如ONS守护进程)连接至通知服务服务器。
当Tuxedo***启动时,FAN服务器210能够创建与数据库状态通知服务202的连接以接收各种FAN事件221-222,比如高可用性(HA)事件221和运行时负载均衡(RLB)事件222。另外,FAN服务器210还允许用户在用户日志文件(例如,Tuxedo用户日志(ULOG)文件207)中核查FAN事件221-222相关的信息。
而且,该***允许单个FAN服务器210接收来自多个数据库的通知。此外,该***还能够防止FAN服务器210的不同实例接收和处理相同的通知。
根据本发明的一种实施例,FAN服务器210能够使用主进程和一个或多个接收线程来实现。
以下的列表1示出了主进程的示例性实施方式。
列表1
以下的列表2示出了接收线程的示例性实施方式。
列表2
如上所示,在服务初始化阶段,主进程能够读入各种参数并创建不同的接收线程。而且,每个接收线程都能够创建订户。然后,当接收线程正在线时,该接收线程能够周期性地接收并处理事件(例如,每5秒钟)。最后,为了给服务的关闭作准备,主进程能够设置下线标记并且发布下线事件。
根据本发明的一种实施例,事务中间件机器201能够将数据库服务状态信息存储于共享存储器203(例如,Tuxedo公告版(TuxedoBulletinBoard)(BB))内。
如图2所示,FAN服务器210能够在共享存储器203内创建并维持不同的状态表。这些表能够包括数据库服务状态表204和数据库实例状态表205。而且,事务中间件机器201能够基于这些表来支持实例知晓特征和其他相关的特征。
例如,在Tuxedo中,该***能够使用以下函数来创建RM状态表204、实例状态表205和主机名表。
int_tmsmcinst(_TCADEF,structtminstparms_t*instp,structtmorainfo_t*orainfo)
另外,FAN服务器210能够在需要时于数据库服务状态表204、实例状态表205和主机名表中创建新条目。此外,FAN服务器210能够在适当时更新并清理数据库服务状态表204、实例状态表205和主机名表。
在Tuxedo中,FAN服务器210能够被配置为本地ONS客户端或者远程ONS客户端。如果FAN服务器210被配置为本地ONS客户端,则该***能够例如经由配置文件来启用客户端侧的ONS守护进程,同时数据库侧的ONS守护进程继续运行着。另一方面,如果FAN服务器210被配置为远程客户端,则该***不需要启用客户端侧的ONS守护进程。相反,该***能够基于不同的关键词来设立各种参数。
根据本发明的一种实施例,HA事件221能够包括对节点、数据库实例和/或数据库服务中的服务的上线/下线通知。例如,在OracleRAC中,服务能够是连续可用的,负载在一个或多个实例间共享。高可用性框架监测着数据库及其服务并且使用FAN事件来发送事件通知。当数据库集群配置变化时,该***能够立即发布指示在集群中发生状态变化的FAN事件。OracleRAC的高可用性框架能够维持服务的可用性。此外,OracleRAC能够根据商业规则和服务属性来恢复并均衡服务。
通过利用在事务中间件环境中的数据库状态通知集成,该***能够支持快速连接故障切换(FCF)特征,该特征在旧服务变为不可用时允许与数据库直接连接的客户端、中间层应用和/或各种程序快速地且无缝地进行到可用服务的故障切换。
使用FCF特征,事务中间件机器201能够控制事务处理器的行为。例如,在事务服务器211-212上的应用能够轮询数据库并检测问题,而不是等待事件的到来。然后,该***能够在事务应用接收到FAN事件221-222之后立即作出反应。此外,该***还能够在实例出故障时立即终止运行中的事务并且通知客户端。
而且,事务中间件机器201能够提供快速故障检测。该***能够在不需要测试数据库连接的情况下确保数据库连接是有效的。此外,事务中间件机器201还能够从事务服务器中移除无效的数据库连接并创建有效的数据库连接。如果事务服务器无法创建有效的数据库连接,则该***能够从路由列表中移除Tuxedo服务器。
另外,事务中间件机器201能够适应数据库拓扑结构的变化,比如添加或移除节点,并且能够将运行时工作请求分发给所有活动的数据库实例,包括重新加入集群的实例。
而且,事务中间件机器201能够平稳地处理计划的和非计划的数据库服务中断。对于计划的关闭,事务服务器允许进行中的事务在关闭连接之前完成。对于非计划的关闭,事务服务器能够回滚进行中的事务并关闭连接。因而,能够为计划的关闭和非计划的关闭在活动的数据库实例间对新请求进行负载均衡。
根据本发明的一种实施例,RLB事件222能够指示在数据库服务内的每个数据库实例的运行时负载和亲和性(affinity)。事务中间件机器201能够基于由数据库状态通知服务202发布的RLB事件222来支持运行时连接负载均衡特征。运行时连接负载均衡特征能够支持将工作请求路由到提供最佳性能的且使重定位工作的需求最小化的实例。
例如,在OracleRAC中,连接可以属于提供相关服务的任何实例。从高速缓存中随机检索连接的方法可能并不适合,例如当一个实例表现得比其他实例更好时,在这种情况下随机选择连接是效率低的。在Tuxedo中,应用能够利用负载均衡咨询FAN事件来将工作请求引向在集群中当前正提供最佳的服务质量的实例。因而,Tuxedo能够将请求路由至负载轻的数据库实例。
另外,数据库状态通知服务202能够周期性地发送事件。如果负载信息(新的和旧的)的值超过阈值,该***能够更新不同实例的负载信息。因而,该***能够避免对不同实例的负载信息的不断更新,因为可能会存在大量的RLB事件。
图3示出了根据本发明的一种实施例的在事务中间件环境300中处理数据库高可用性(HA)事件的示图。如图3所示,在事务中间件环境300中提供各种事务服务320的事务服务器302能够接收并处理与数据库服务301的状态变化310相关的HA事件。
根据本发明的一种实施例,事务服务器302能够处理各种类型的HA事件,比如与数据库服务301关联的上线事件和下线事件。而且,这些HA事件能够应用于不同的范围,比如数据库311、服务312、节点313和实例314的范围。
对于上线事件,当服务和实例被启动时,该***能够创建新的数据库连接,使得应用能够立即利用额外的资源。另一方面,对于下线事件,该***能够通过终止与出故障的实例或节点相关的会话而使对应用的妨碍最小化。此外,该***能够终止未完成的事务并随后立即通知应用用户。
例如,当Tuxedo服务器接收到指示数据库状态由上线变为下线的HA事件时,Tuxedo服务器能够将NOENTRY或RMERR消息返回给客户端303。
当Tuxedo服务器接收到指示服务状态由上线变为用户下线并且实例状态为上线的HA事件时,Tuxedo服务器能够被访问,但是tpopen()函数调用可以直接返回RMERR。
当Tuxedo服务器接收到指示服务状态由上线变为故障下线的HA事件时,Tuxedo服务器能够将NOENTRY或RMERR消息返回给客户端303。
当Tuxedo服务器接收到指示服务状态由用户下线变为上线的HA事件时,Tuxedo服务器能够被访问,并且tpopen()函数调用能够被执行。
当Tuxedo服务器接收到指示服务状态由故障下线变为上线的HA事件时,Tuxedo服务器能够重新连接至数据库。
当Tuxedo服务器接收到指示服务状态由上线变为下线并且实例状态为上线的HA事件时,Tuxedo服务器能够重新连接至数据库。
当Tuxedo服务器接收到指示新的实例被添加到数据库服务中的HA事件时,一些Tuxedo服务器能够重新连接至新的实例。
当Tuxedo服务器接收到指示主机状态由上线变为下线并且实例状态为上线的HA事件时,实例状态由上线变为下线,Tuxedo服务器能够重新连接至数据库。
当Tuxedo服务器接收到指示服务状态由上线变为下线并且实例状态由上线变为下线的HA事件时,Tuxedo服务器能够将NOENTRY或RMERR消息返回给客户端303。
当Tuxedo服务器接收到指示服务状态由上线变为下线、主机状态由上线变为下线或者实例状态由上线变为下线的HA事件时,Tuxedo服务器能够将NOENTRY或RMERR消息返回给客户端303。
图4示出了根据本发明的一种实施例的在事务中间件环境400中支持服务路由的示图。如图4所示,事务中间件环境400能够以路由策略410来配置,该路由策略410能够利用各种数据库HA和RLB事件。
在步骤401,该***能够执行基于事务的路由,例如,TuxedoGWTDOMAIN事务路由。
在步骤402,该***能够核查与事务服务器关联的数据库实例是否有效。例如,该***能够核查与事务服务器关联的数据库服务和实例的状态。如果数据库服务状态和实例状态两者都关闭(或出故障),则该***能够从路由列表中移除该事务服务器。
在步骤403,该***能够(对不同的数据库实例)执行基于事务亲和性的路由。在步骤404,该***能够执行基于服务版本管理的路由。在步骤405,该***能够执行基于客户端/服务器亲和性的路由。在步骤406,该***能够执行基于XA亲和性的路由。
在步骤407,该***能够根据在不同数据库实例上的负载来执行负载均衡。例如,如果一个数据库实例为无效的,则该***能够选择与有效的数据库实例关联的事务服务器。而且,该***能够从与同一数据库服务关联的多个事务服务器中选出具有较轻的数据库负载的事务服务器。
最后,在步骤408,该***能够根据服务负载来执行负载均衡。
图5示出了根据本发明的一种实施例的用于支持在事务中间件机器环境中的数据库状态通知集成的示例性流程图。如图5所示,在步骤501,该***将一个或多个事务服务器连接至数据库服务,其中该数据库服务与通知服务关联。然后,在步骤502,与所述一个或多个事务服务器关联的通知服务客户端能够接收来自通知服务的一个或多个事件,其中所述一个或多个事件指示在数据库服务上的一个或多个状态变化。而且,在步骤503,所述一个或多个事务服务器能够自适应地响应在数据库服务上的一个或多个状态变化。
本发明的许多特征能够在硬件、软件、固件或者它们的组合中、使用它们或者在它们的辅助下执行。因此,本发明的特征可以使用处理***(例如,包含一个或多个处理器)来实现。
本发明的特征能够在计算机程序产品中、使用计算机程序产品或者在其辅助下实现,该计算机程序产品是具有存储于其上/内的能够用来对处理***进行编程以执行本文所给出的任何特征的指令的存储介质或计算机可读介质。存储介质能够包括但不限于:任何类型的盘(包括软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存器件、磁卡或光卡、纳米***(包括分子存储器IC)或者适用于存储指令和/或数据的任何类型的介质或器件。
存储在任何一种机器可读介质上的本发明的特征都能够并入软件和/或固件内,用于控制处理***的硬件,并且用于使处理***能够与利用了本发明的结果的其他机构交互。这样的软件或固件可以包括(但不限于)应用代码、器件驱动器、操作***以及执行环境/容器。
本发明的特征同样可以实现于使用例如硬件组件(比如专用集成电路(ASIC))的硬件中。实现硬件状态机以便执行本文所描述的功能对相关领域技术人员而言将是明显的。
另外,本发明可以方便地使用包含根据本发明的教导来编程的一个或多个处理器、存储器和/或计算机可读存储介质的一个或多个常规的通用或专用数字计算机、计算器件、机器或微处理器来实现。适当的软件编码能够容易地由熟练的编程人员基于本公开内容的教导来提供,这对软件领域技术人员而言将是明显的。
虽然以上已经描述了本发明的不同实施例,但是应当理解,这些实施例作为示例而非作为限制来给出。对相关领域技术人员而言将是显而易见的是,在不脱离本发明的精神和范围的情况下能够对这些实施例进行形式及细节上的各种改变。
以上已经在示出指定功能的性能及其关系的功能构建块的帮助下描述了本发明。这些功能构建块的边界为了便于描述在本文中通常被任意限定。只要所指定的功能及其关系被适当地执行,能够界定可替换的边界。因而,任何这样的可替换的边界都处于本发明的范围和精神之内。
本发明的上述描述已经为了图示和描述的目的而给出。该描述并非意指为穷尽性的或者是将本发明限定于所公开的精确形式当中。本发明的广度和范围不应由任何上述示例性实施例所限定。许多修改和变化对本领域技术人员是显而易见的。这些修改和变化包括所公开特征的任何相关组合。为了最好地解释本发明的原理及其实际应用,选择并描述实施例,由此使本领域技术人员能够理解用于各种实施例的且具有适合于想得到的特定用途的各种修改的本发明。本发明的范围旨在由下面的权利要求书及其等效形式所限定。
Claims (20)
1.一种用于在事务中间件机器环境中处理各种数据库状态通知的方法,包括:
将一个或多个事务服务器连接至数据库服务,其中所述数据库服务与通知服务关联;
经由与所述一个或多个事务服务器关联的通知服务客户端接收来自所述通知服务的一个或多个事件,其中所述一个或多个事件指示所述数据库服务的一个或多个状态变化;以及
经由所述一个或多个事务服务器自适应地响应所述数据库服务的所述一个或多个状态变化。
2.根据权利要求1所述的方法,还包括:
允许所述数据库服务基于包含一个或多个数据库、实例、主机节点和服务的集群数据库。
3.根据权利要求1所述的方法,还包括:
基于一个或多个路由策略来处理所述一个或多个事件。
4.根据权利要求1所述的方法,还包括:
经由所述通知服务客户端将有关所述数据库服务的所述一个或多个状态变化的信息存储于共享存储器内,以及
允许另一个事务服务器获得有关所述数据库服务的所述一个或多个状态变化的所述信息。
5.根据权利要求1所述的方法,还包括:
允许所述一个或多个事件为高可用性HA事件,每个高可用性HA事件指示与所述数据库服务关联的服务、实例或主机节点中的至少一个的上线/下线。
6.根据权利要求5所述的方法,还包括:
基于所述HA事件来支持快速连接故障切换,其中所述一个或多个事务服务器操作以进行下列操作中的至少一项:
提供快速故障检测,
移除一个或多个无效的数据库连接并且创建一个或多个有效的数据库连接,
为计划的和/或非计划的数据库节点中断执行关闭,以及
适应与所述数据库服务关联的拓扑变化。
7.根据权利要求1所述的方法,还包括:
允许所述一个或多个事件为运行时负载均衡RLB事件,每个运行时负载均衡RLB事件指示与所述数据库服务关联的每个数据库实例的运行时负载和亲和性。
8.根据权利要求7所述的方法,还包括:
基于所述RLB事件将运行时工作请求分发给活动的数据库实例。
9.根据权利要求1所述的方法,还包括:
允许所述通知服务客户端为事务服务器。
10.根据权利要求1所述的方法,还包括:
经由所述事务服务器的主进程来创建一个或多个接收线程,每个接收线程操作以接收并处理一个或多个事件。
11.一种用于在事务中间件机器环境中处理各种数据库状态通知的***,包含:
一个或多个微处理器;
在所述一个或多个微处理器上运行的一个或多个事务服务器,其中所述一个或多个事务服务器连接至数据库服务,其中所述数据库服务与通知服务关联;以及
与所述一个或多个事务服务器关联的通知服务客户端,其中所述通知服务客户端操作以接收来自所述通知服务的一个或多个事件,其中所述一个或多个事件指示所述数据库服务的一个或多个状态变化,以及
其中所述一个或多个事务服务器操作以自适应地响应所述数据库服务的所述一个或多个状态变化。
12.根据权利要求11所述的***,其中:
所述数据库服务基于包含一个或多个数据库、实例、主机节点和服务的集群数据库。
13.根据权利要求11所述的***,其中:
所述通知服务客户端操作以基于一个或多个路由策略来处理所述一个或多个事件。
14.根据权利要求11所述的***,其中:
所述通知服务客户端操作以进行以下操作:
将有关所述数据库服务的所述一个或多个状态变化的信息存储于共享存储器内,以及
允许另一个事务服务器获得有关所述数据库服务的所述一个或多个状态变化的所述信息。
15.根据权利要求11所述的***,其中:
所述一个或多个事件为高可用性HA事件,每个高可用性HA事件指示与所述数据库服务关联的数据库服务、数据库实例或主机节点中的至少一个的上线/下线。
16.根据权利要求15所述的***,其中:
所述一个或多个事务服务器操作以进行下列操作中的至少一项:
提供快速故障检测,
移除一个或多个无效的数据库连接并且创建一个或多个有效的数据库连接,
为计划的和/或非计划的数据库节点中断执行关闭,以及
适应与所述数据库服务关联的拓扑变化。
17.根据权利要求11所述的***,其中:
所述一个或多个事件为运行时负载均衡RLB事件,每个运行时负载均衡RLB事件指示与所述数据库服务关联的每个数据库实例的运行时负载和亲和性。
18.根据权利要求17所述的***,其中:
所述一个或多个事务服务器操作以基于所述RLB事件将运行时工作请求分发给活动的数据库实例。
19.根据权利要求11所述的***,其中:
所述通知服务客户端为事务服务器,其中所述事务服务器的主进程操作以创建一个或多个接收线程,每个接收线程操作以接收并处理一个或多个事件。
20.一种具有存储于其上的指令的非瞬时的机器可读存储介质,所述指令在执行时促使***执行以下步骤,包括:
将一个或多个事务服务器连接至数据库服务,其中所述数据库服务与通知服务关联;
经由与所述一个或多个事务服务器关联的通知服务客户端接收来自所述通知服务的一个或多个事件,其中所述一个或多个事件指示所述数据库服务的一个或多个状态变化;以及
经由所述一个或多个事务服务器自适应地响应所述数据库服务的所述一个或多个状态变化。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461989323P | 2014-05-06 | 2014-05-06 | |
US61/989,323 | 2014-05-06 | ||
US14/603,108 | 2015-01-22 | ||
US14/603,108 US9569224B2 (en) | 2014-05-06 | 2015-01-22 | System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105100185A true CN105100185A (zh) | 2015-11-25 |
CN105100185B CN105100185B (zh) | 2021-02-05 |
Family
ID=54367924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510195238.9A Active CN105100185B (zh) | 2014-05-06 | 2015-04-23 | 事务中间件机器环境中处理数据库状态通知的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9569224B2 (zh) |
CN (1) | CN105100185B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110300958A (zh) * | 2017-01-13 | 2019-10-01 | 甲骨文国际公司 | 用于分布式事务中间件环境中的条件调用路径监视的***和方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10218730B2 (en) * | 2016-07-29 | 2019-02-26 | ShieldX Networks, Inc. | Systems and methods of stateless processing in a fault-tolerant microservice environment |
WO2018176356A1 (en) * | 2017-03-31 | 2018-10-04 | Oracle International Corporation | System and method for determining the success of a cross-platform application migration |
US10375202B2 (en) * | 2017-04-27 | 2019-08-06 | Microsoft Technology Licensing, Llc | Database selection in distributed computing systems |
CN110083438B (zh) * | 2019-05-05 | 2021-06-22 | 上海达梦数据库有限公司 | 事务分发方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523462A (zh) * | 2003-01-06 | 2004-08-25 | ���µ�����ҵ��ʽ���� | 设备操作*** |
US20070198684A1 (en) * | 2006-02-22 | 2007-08-23 | Kazunori Mizushima | Method and system for data processing with connection pool for the same |
CN102014007A (zh) * | 2010-12-29 | 2011-04-13 | 武汉日电光通信工业有限公司 | 一种分布式***服务管理***及方法 |
US20130054600A1 (en) * | 2011-06-27 | 2013-02-28 | Oracle International Corporation | System and method for improving application connectivity in a clustered database environment |
CN103124967A (zh) * | 2010-09-15 | 2013-05-29 | 甲骨文国际公司 | 用于将应用服务器连接到集群的数据库的***和方法 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5283897A (en) | 1990-04-30 | 1994-02-01 | International Business Machines Corporation | Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof |
US6424992B2 (en) | 1996-12-23 | 2002-07-23 | International Business Machines Corporation | Affinity-based router and routing method |
US7076784B1 (en) | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6209018B1 (en) | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6298356B1 (en) | 1998-01-16 | 2001-10-02 | Aspect Communications Corp. | Methods and apparatus for enabling dynamic resource collaboration |
US6182086B1 (en) | 1998-03-02 | 2001-01-30 | Microsoft Corporation | Client-server computer system with application recovery of server applications and client applications |
US6209038B1 (en) | 1999-01-13 | 2001-03-27 | International Business Machines Corporation | Technique for aggregate transaction scope across multiple independent web requests |
US20030177182A1 (en) | 1999-06-14 | 2003-09-18 | International Business Machines Corporation | Ensuring a given transactional unit of work arrives at an appropriate server instance |
US6560609B1 (en) | 1999-06-14 | 2003-05-06 | International Business Machines Corporation | Delegating instance management functions to underlying resource managers |
US6745387B1 (en) | 1999-06-14 | 2004-06-01 | Sun Microsystems, Inc. | Method for using a transaction service synchronization interface to perform internal state clean up |
US7140025B1 (en) | 1999-11-16 | 2006-11-21 | Mci, Llc | Method and apparatus for providing a real-time message routing communications manager |
US6922724B1 (en) * | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
US9800608B2 (en) * | 2000-09-25 | 2017-10-24 | Symantec Corporation | Processing data flows with a data flow processor |
US6671686B2 (en) | 2000-11-02 | 2003-12-30 | Guy Pardon | Decentralized, distributed internet data management |
US6823514B1 (en) | 2000-11-14 | 2004-11-23 | International Business Machines Corporation | Method and system for caching across multiple contexts |
US7444335B1 (en) | 2001-02-28 | 2008-10-28 | Oracle International Corporation | System and method for providing cooperative resource groups for high availability applications |
US7069317B1 (en) | 2001-02-28 | 2006-06-27 | Oracle International Corporation | System and method for providing out-of-band notification of service changes |
US7058629B1 (en) | 2001-02-28 | 2006-06-06 | Oracle International Corporation | System and method for detecting termination of an application instance using locks |
US7213049B2 (en) | 2001-07-17 | 2007-05-01 | Bea Systems, Inc. | System and method for transaction processing with transaction property feature |
US7337441B2 (en) | 2001-07-17 | 2008-02-26 | Bea Systems, Inc. | System and method for prepreparing a transaction process involving a chain of servers in a circular flow |
US6799172B2 (en) | 2001-08-28 | 2004-09-28 | International Business Machines Corporation | Method and system for removal of resource manager affinity during restart in a transaction processing system |
US7376953B2 (en) | 2001-10-29 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Apparatus and method for routing a transaction to a server |
US7584474B2 (en) | 2003-02-25 | 2009-09-01 | Bea Systems, Inc. | Systems and methods for transaction chaining |
US7640545B2 (en) | 2003-07-14 | 2009-12-29 | Sun Microsytems, Inc. | Transaction manager freezing |
US7284018B1 (en) | 2003-10-15 | 2007-10-16 | Sun Microsystems, Inc. | Logless transaction coordination |
US7676810B2 (en) | 2004-06-03 | 2010-03-09 | Sap Ag | Identification of execution context |
US8270410B2 (en) | 2005-08-04 | 2012-09-18 | Microsoft Corporation | Sampling techniques |
US7814065B2 (en) | 2005-08-16 | 2010-10-12 | Oracle International Corporation | Affinity-based recovery/failover in a cluster environment |
US7996837B2 (en) | 2006-05-03 | 2011-08-09 | Oracle International Corporation | Recovery mechanism for transactions |
US8103773B2 (en) | 2007-01-19 | 2012-01-24 | Cisco Technology, Inc. | Transactional application processing in a distributed environment |
US20080243865A1 (en) | 2007-03-28 | 2008-10-02 | Oracle International Corporation | Maintaining global state of distributed transaction managed by an external transaction manager for clustered database systems |
US7937611B2 (en) * | 2007-04-30 | 2011-05-03 | Sap Ag | Method, system and machine accessible medium of a reconnect mechanism in a distributed system (cluster-wide reconnect mechanism) |
US8463894B2 (en) | 2007-06-08 | 2013-06-11 | Oracle International Corporation | Performance monitoring web console for distributed transaction service |
US8336053B2 (en) | 2007-10-15 | 2012-12-18 | International Business Machines Corporation | Transaction management |
US20090157766A1 (en) * | 2007-12-18 | 2009-06-18 | Jinmei Shen | Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event |
US8447859B2 (en) * | 2007-12-28 | 2013-05-21 | International Business Machines Corporation | Adaptive business resiliency computer system for information technology environments |
US8818934B2 (en) | 2008-03-13 | 2014-08-26 | Oracle International Corporation | Transparent support for distributed transactions in a clustered disk-sharing database environment |
US8131872B2 (en) | 2008-05-30 | 2012-03-06 | International Business Machines Corporation | Affinity-based transaction processing |
WO2011083056A2 (en) | 2010-01-11 | 2011-07-14 | International Business Machines Corporation | Transactional updating in dynamic distributed workloads |
US8499298B2 (en) | 2010-01-28 | 2013-07-30 | International Business Machines Corporation | Multiprocessing transaction recovery manager |
US8484341B2 (en) | 2010-06-30 | 2013-07-09 | International Business Machines Corporation | Organizing individual java client request flows into a single server transaction |
US8738961B2 (en) * | 2010-08-17 | 2014-05-27 | International Business Machines Corporation | High-availability computer cluster with failover support based on a resource map |
EP2500856A1 (en) | 2011-03-15 | 2012-09-19 | Amadeus S.A.S. | Method and system for providing a session involving a plurality of software applications |
US9715412B2 (en) | 2011-03-25 | 2017-07-25 | Oracle International Corporation | System and method for supporting session management in a distributed transactional service system |
US8539490B2 (en) | 2011-07-21 | 2013-09-17 | Oracle International Corporation | System and method for providing dynamic transaction optimizations |
US8898271B2 (en) * | 2011-09-29 | 2014-11-25 | Oracle International Corporation | System and method for supporting accurate load balancing in a transactional middleware machine environment |
US9760584B2 (en) | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US9658879B2 (en) | 2012-03-16 | 2017-05-23 | Oracle International Corporation | System and method for supporting buffer allocation in a shared memory queue |
US9027026B2 (en) | 2012-11-09 | 2015-05-05 | Sap Se | Managing transactions within an application server |
EP3008879A4 (en) * | 2013-06-13 | 2017-01-04 | TSX Inc. | Failover system and method |
US9798598B2 (en) * | 2013-11-26 | 2017-10-24 | International Business Machines Corporation | Managing faults in a high availability system |
-
2015
- 2015-01-22 US US14/603,108 patent/US9569224B2/en active Active
- 2015-04-23 CN CN201510195238.9A patent/CN105100185B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1523462A (zh) * | 2003-01-06 | 2004-08-25 | ���µ�����ҵ��ʽ���� | 设备操作*** |
US20070198684A1 (en) * | 2006-02-22 | 2007-08-23 | Kazunori Mizushima | Method and system for data processing with connection pool for the same |
CN103124967A (zh) * | 2010-09-15 | 2013-05-29 | 甲骨文国际公司 | 用于将应用服务器连接到集群的数据库的***和方法 |
CN102014007A (zh) * | 2010-12-29 | 2011-04-13 | 武汉日电光通信工业有限公司 | 一种分布式***服务管理***及方法 |
US20130054600A1 (en) * | 2011-06-27 | 2013-02-28 | Oracle International Corporation | System and method for improving application connectivity in a clustered database environment |
Non-Patent Citations (1)
Title |
---|
ORACLE: "Effective Resource Management Using Oracle Database Resource Manager", 《AN ORACLE WHITE PAPER》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110300958A (zh) * | 2017-01-13 | 2019-10-01 | 甲骨文国际公司 | 用于分布式事务中间件环境中的条件调用路径监视的***和方法 |
CN110300958B (zh) * | 2017-01-13 | 2023-04-18 | 甲骨文国际公司 | 用于分布式事务中间件环境中的条件调用路径监视的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
US9569224B2 (en) | 2017-02-14 |
US20150324222A1 (en) | 2015-11-12 |
CN105100185B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2281240B1 (en) | Maintaining data integrity in data servers across data centers | |
US8412790B2 (en) | Method, system and computer readable recording medium for determining major group under split-brain syndrome | |
EP2435916B1 (en) | Cache data processing using cache cluster with configurable modes | |
KR102013004B1 (ko) | 확장 가능한 환경에서의 동적 로드 밸런싱 기법 | |
US8930316B2 (en) | System and method for providing partition persistent state consistency in a distributed data grid | |
US9262229B2 (en) | System and method for supporting service level quorum in a data grid cluster | |
CN105100185A (zh) | 事务中间件机器环境中处理数据库状态通知的***和方法 | |
US9367261B2 (en) | Computer system, data management method and data management program | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
US20110225121A1 (en) | System for maintaining a distributed database using constraints | |
US10423643B2 (en) | System and method for supporting resettable acknowledgements for synchronizing data in a distributed data grid | |
CN105337780B (zh) | 一种服务器节点配置方法及物理节点 | |
US9258363B2 (en) | Data cube high availability | |
US20120278817A1 (en) | Event distribution pattern for use with a distributed data grid | |
CN112217847A (zh) | 微服务平台及其实现方法、电子设备及存储介质 | |
US20110225120A1 (en) | System for maintaining a distributed database using leases | |
US9853933B2 (en) | Message queue replication with message ownership migration | |
CN112231399A (zh) | 一种应用于图数据库的方法和装置 | |
CN103326880A (zh) | Genesys呼叫***高可用性云计算监控***及方法 | |
CN108369548B (zh) | 云资源的灾难恢复 | |
Lin et al. | An optimized multi-Paxos protocol with centralized failover mechanism for cloud storage applications | |
JP5106648B2 (ja) | 複数のインターネットサービスを多重化するサービス中継装置及びサービス中継方法 | |
Chaurasiya et al. | Linux highly available (HA) fault-tolerant servers | |
JP4462504B1 (ja) | 一貫性保持の起点となるトランザクション・プロセスが所有する更新アクセス・カウンタによるマルチ・トランザクション制御システム | |
Souri et al. | CONSISTENCY OF DATA REPLICATION PROTOCOLS IN DATABASE SYSTEMS: A |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |