CN109426552A - 事务处理方法、装置和系统以及电子设备 - Google Patents
事务处理方法、装置和系统以及电子设备 Download PDFInfo
- Publication number
- CN109426552A CN109426552A CN201710792273.8A CN201710792273A CN109426552A CN 109426552 A CN109426552 A CN 109426552A CN 201710792273 A CN201710792273 A CN 201710792273A CN 109426552 A CN109426552 A CN 109426552A
- Authority
- CN
- China
- Prior art keywords
- message
- affairs
- global transaction
- request
- coordinator
- 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.)
- Pending
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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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/461—Saving or restoring of program or task context
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Abstract
本发明实施例提供了一种事务处理方法、装置和系统以及电子设备。该事务处理方法包括:接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;为所述消息链路级事务分配事务唯一标识;向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。本发明实施例通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种事务处理方法、装置和系统以及电子设备。
背景技术
在计算机领域,事务是指访问并可能更新数据库中各种数据项的一个程序执行过程。消息链路级事务是指在一条消息链路上(包括消息发送端与消息接收端)的多个数据库的本地事务。
为了保证消息链路上的多个数据库本地事务的数据一致性,一般采用事务消息的方式,即,在消息发送端与消息接收端之间设置消息中间件,该消息中间件用于存储消息发送端发出的消息,且只有在消息发送端本地事务成功提交于数据库后,存储于消息中间件的消息才对消息接收端可见,此时,消息接收端才能够接收该消息并执行本地事务。
该事务消息方式可以保证发送端本地事务与消息发送同时成功,或者同时失败。只有在消息发送端本地事务成功提交后,消息接收端才能够接收到发送端发出的消息,然后根据该消息执行本地事务。
发明人在实现本发明的过程中,发现现有技术至少存在如下问题:当消息发送端本地事务成功提交数据库且成功发送消息后,无法确保消息接收端本地事务是否能够成功。为了保证消息发送端与消息接收端的数据一致性,消息接收端本地事务如果失败,则会不断重试直到成功为止,称之为最终一致性。但是,如果消息接收端本地事务一直执行不成功,那么数据一致性将被破坏,则需要进行人工干预,这将给开发与运维都带来极大不便。
发明内容
本发明实施例提供一种事务处理方法、装置和系统以及电子设备,以解决现有技术最终一致性的缺陷,在实现消息链路级事务中数据一致性的同时,降低开发及运维成本。
为达到上述目的,本发明实施例提供了一种事务处理系统,用于处理消息链路级事务,包括:消息链路的消息发送端和消息接收端,以及用于协调所述消息链路级事务的事务协调器,所述消息发送端用于,向所述事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述消息接收端发送消息,所述消息中携带所述全局事务标识;所述消息接收端用于,从所述消息发送端接收携带有所述全局事务标识的所述消息;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务;所述事务协调器用于,接收所述消息发送端发送的所述全局事务开启请求,为所述消息链路级事务分配事务唯一标识,向所述消息发送端返回全局事务标识;接收所述消息接收端发送的所述全局事务提交请求,分别向所述消息发送端和所述消息接收端的服务器提交所述消息链路级事务。
本发明实施例还提供了一种事务处理方法,用于处理消息链路级事务,包括:接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;为所述消息链路级事务分配事务唯一标识;向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
本发明实施例还提供了一种事务处理方法,用于处理消息链路级事务,包括:向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
本发明实施例还提供了一种事务处理方法,用于处理消息链路级事务,包括:从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
本发明实施例还提供了一种事务处理装置,用于处理消息链路级事务,包括:第一接收模块,用于接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;分配模块,用于为所述消息链路级事务分配事务唯一标识;第一发送模块,用于向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
本发明实施例还提供了一种事务处理装置,用于处理消息链路级事务,包括:第二发送模块,用于向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;第三接收模块,用于接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;第一执行模块,用于根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;第三发送模块,用于在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
本发明实施例还提供了一种事务处理装置,用于处理消息链路级事务,包括:第四接收模块,用于从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;第二执行模块,用于根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;第四发送模块,用于在所述第二执行模块执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
本发明实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启消息链路级事务;为所述消息链路级事务分配事务唯一标识;向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
本发明实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启消息链路级事务;接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
本发明实施例还提供一种电子设备,包括:存储器,用于存储程序;处理器,用于运行所述存储器中存储的所述程序,以用于:从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
本发明实施例提供的事务处理方法、装置和系统以及电子设备,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明提供的事务处理系统实施例的场景示意图;
图2为本发明提供的事务处理方法一个实施例的流程图;
图3为本发明提供的事务处理方法另一个实施例的流程图;
图4为本发明提供的事务处理方法又一个实施例的流程图;
图5为本发明提供的事务处理装置一个实施例的结构示意图;
图6为本发明提供的事务处理装置另一个实施例的结构示意图;
图7为本发明提供的事务处理装置又一个实施例的结构示意图;
图8为本发明提供的电子设备一个实施例的结构示意图;
图9为本发明提供的电子设备另一个实施例的结构示意图;
图10为本发明提供的电子设备又一个实施例的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对现有技术最终一致性的缺陷,本申请提供一种解决方案,其主要原理是:设置事务协调器,以协调整个消息链路级事务的各个参与者(终端),通过在消息中携带全局事务标识,从而实现自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,以保证数据一致性,同时避免出现人工干预的情况,降低开发及运营成本。
本发明实施例提供的方法可应用于任何对消息链路级事务进行处理的业务系统。图1为本发明提供的事务处理系统实施例的场景示意图,图1所示的场景仅仅是本发明的技术方案可以应用的业务场景的示例之一。如图1所示,本发明实施例提供的事务处理系统包括:消息链路的消息发送端和消息接收端,以及用于协调该消息链路级事务的事务协调器。其中,事务协调器可以用来执行下述图2所示的处理流程,其主要用于接收消息发送端发送的全局事务开启请求,为消息链路级事务分配事务唯一标识,向消息发送端返回全局事务标识;接收消息接收端发送的全局事务提交请求,分别向消息发送端和消息接收端的服务器提交该消息链路级事务(向各自的数据库中保存本地事务所产生的数据)。消息发送端可以用来执行下述图3所示的处理流程,其主要用于向事务协调器发送全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务;接收事务协调器返回的全局事务标识,该全局事务标识包含为消息链路级事务分配的事务唯一标识和用于协调消息链路级事务的事务协调器的地址(例如,IP地址、端口等);根据全局事务标识构建上下文环境,在上下文环境中执行本地事务;在执行完本地事务后,向消息接收端发送消息,消息中携带全局事务标识。消息接收端可以用来执行下述图4所示的处理流程,其主要用于从消息发送端接收携带有全局事务标识的所述消息;根据全局事务标识构建上下文环境,在上下文环境中执行本地事务;在执行完本地事务后,向事务协调器发送全局事务提交请求,该全局事务提交请求用于指示提交该消息链路级事务。
本发明实施例所提供的事务处理系统还可以包括消息中间件。该消息中间件可以用于接收并存储消息发送端发送的消息;当接收到消息接收端发送的消息获取请求时,将存储的消息发送至消息接收端。
进一步地,本发明实施例中的消息链路上的终端可以为多个。除了上述消息发送端和消息接收端以外,还可以包括一个或数个消息中间端(图中未示出)。消息中间端在消息链路中既接收消息也发送消息(即,消息链路为:消息发送端→消息中间端→消息接收端)。消息中间端可以用于从消息中间件接收携带有全局事务标识的第一消息;根据全局事务标识构建上下文环境,在上下文环境中执行本地事务;在执行完本地事务后,向消息中间件发送第二消息,第二消息中携带全局事务标识。
更进一步地,本发明实施例中的事务协调器可以为多个(事务协调器1、事务协调器2、……、事务协调器n),此时,事务处理系统还包括:控制模块。该控制模块可以用于接收消息发送端发送的全局事务开启请求,为消息链路级事务分配事务协调器,并将全局事务开启请求转发至该事务协调器。
另外,在本发明实施例中,消息发送端或消息接收端还可以用于当本地事务执行失败时,向事务协调器发送全局事务回滚请求,该全局事务回滚请求用于回滚消息链路级事务;此时,事务协调器还用于当接收到消息发送端或消息接收端发送的全局事务回滚请求时,分别向消息发送端和消息接收端的服务器发送全局事务回滚请求。消息中间端还可以用于当本地事务执行失败时,向事务协调器发送全局事务回滚请求,该全局事务回滚请求用于回滚消息链路级事务;此时,事务协调器还用于当接收到消息发送端、消息接收端或消息中间端发送的全局事务回滚请求时,分别向消息发送端、消息接收端和消息中间端的服务器发送全局事务回滚请求。也就是说,当消息链路级事务的任一端(如,消息发送端、消息接收端或者消息中间端)的本地事务执行失败时,该端将全局事务回滚请求发送到事务协调器,由事务协调器将该全局事务回滚请求发送到参与这一全局事务(消息链路级事务)的所有服务器,可能包括消息发送端、消息接收端和消息中间端的服务器,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理系统,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态。从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
上述实施例是对本发明实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本发明实施例具体技术方案进行详细描述。
实施例一
图2为本发明提供的事务处理方法一个实施例的流程图,该方法的执行主体可以为上述实施例所描述的事务协调器,用于处理消息链路级事务。如图2所示,该事务处理方法包括如下步骤:
S201,接收消息发送端发送的全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务。
S202,为消息链路级事务分配事务唯一标识(Identity;简称:ID)。
在本发明实施例中,消息发送端开启事务时,首先向事务协调器发送全局事务开启请求。事务协调器接收到该请求后,为该消息链路级事务分配事务唯一ID,以区别于其它事务。
S203,向消息发送端返回全局事务标识,该全局事务标识包括上述事务唯一ID和用于协调该消息链路级事务的事务协调器的地址。
将上述事务唯一ID和用于协调该消息链路级事务的地址(如,IP地址、端口等)组成全局事务标识(XID),并将该XID返回至消息发送端。使得消息发送端根据该XID构建上下文环境,并在该上下文环境中执行本地事务。在该上下文环境下,消息发送端的资源管理器对本地数据库进行操作,根据上下文环境中的信息与事务协调器进行交互,受事务协调器所协调。消息发送端完成本地事务后,将XID加入待发送消息的消息头,然后将其发送至消息接收端。消息接收端根据接收到的消息中所携带的XID重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。当消息接收端执行完本地事务后,向事务协调器发送全局事务提交请求,当事务协调器接收到消息接收端发送的全局事务提交请求时,分别向消息发送端和消息接收端的服务器提交该消息链路级事务。当消息发送端或消息接收端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,当事务协调器接收到消息发送端或消息接收端发送的全局事务回滚请求时,分别向消息发送端和消息接收端的服务器发送全局事务回滚请求,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理方法,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例二
图3为本发明提供的事务处理方法另一个实施例的流程图,该方法的执行主体可以为上述实施例所描述的消息发送端,用于处理消息链路级事务。如图3所示,该事务处理方法包括如下步骤:
S301,向事务协调器发送全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务。
在本发明实施例中,消息发送端开启事务时,首先向事务协调器发送全局事务开启请求。具体地,事务协调器可以为多个,上述步骤S301可以包括:向控制模块发送全局事务开启请求,由控制模块为该消息链路级事务分配事务协调器并将全局事务开启请求转发至该事务协调器。
S302,接收事务协调器返回的全局事务标识,该全局事务标识包含为消息链路级事务分配的事务唯一标识和用于协调该消息链路级事务的事务协调器的地址。
S303,根据上述全局事务标识构建上下文环境,在上下文环境中执行本地事务。
消息发送端根据该全局事务标识构建上下文环境,并在该上下文环境中执行本地事务。在该上下文环境下,消息发送端的资源管理器对本地数据库进行操作,根据上下文环境中的信息与事务协调器进行交互,受事务协调器所协调。
S304,在执行完本地事务后,向消息接收端发送消息,该消息中携带全局事务标识。
消息发送端完成本地事务后,将全局事务标识加入待发送消息的消息头,然后将其发送至消息接收端。具体地,该步骤也可以为消息发送端向消息中间件发送消息,由消息中间件存储并转发消息。消息接收端根据接收到的消息中所携带的全局事务标识重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。
另外,当消息发送端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,由事务协调器将该全局事务回滚请求发送到参与这一全局事务(消息链路级事务)的所有服务器,可能包括消息发送端、消息接收端和消息中间端(若存在消息中间端)的服务器,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理方法,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例三
图4为本发明提供的事务处理方法又一个实施例的流程图。该方法的执行主体可以为上述实施例所描述的消息接收端,用于处理消息链路级事务。如图4所示,该事务处理方法包括如下步骤:
S401,从消息发送端接收携带有全局事务标识的消息,该全局事务标识包含为消息链路级事务分配的事务唯一ID和用于协调该消息链路级事务的事务协调器的地址。
在本发明实施例中,消息发送端完成本地事务后,将全局事务标识加入待发送消息的消息头,然后将其发送至消息接收端。具体地,步骤S401也可以为:向消息中间件发送消息获取请求;接收消息中间件存储的、发自于消息发送端的、携带有全局事务标识的消息。
S402,根据全局事务标识构建上下文环境,在该上下文环境中执行本地事务。
消息接收端根据接收到的消息中所携带的全局事务标识重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。
S403,在执行完本地事务后,向事务协调器发送全局事务提交请求,该全局事务提交请求用于指示提交消息链路级事务。
当消息接收端执行完本地事务后,向事务协调器发送全局事务提交请求,指示事务协调器分别向消息发送端和消息接收端的服务器提交该消息链路级事务。
另外,当消息接收端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,由事务协调器将该全局事务回滚请求发送到参与这一全局事务(消息链路级事务)的所有服务器,可能包括消息发送端、消息接收端和消息中间端(若存在消息中间端)的服务器,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理方法,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例四
图5为本发明提供的事务处理装置一个实施例的结构示意图,可用于执行如图2所示的方法步骤。如图5所示,该装置可以包括:第一接收模块51、分配模块52和第一发送模块53。
其中,第一接收模块51用于接收消息发送端发送的全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务;分配模块52用于为该消息链路级事务分配事务唯一ID;第一发送模块53用于向消息发送端返回全局事务标识,该全局事务标识包括上述事务唯一ID和用于协调该消息链路级事务的事务协调器的地址。
在本发明实施例中,消息发送端开启事务时,首先向事务协调器发送全局事务开启请求。第一接收模块51接收到该请求后,分配模块52为该消息链路级事务分配事务唯一ID,以区别于其它事务。第一发送模块53将上述事务唯一ID和用于协调该消息链路级事务的地址(如,IP地址、端口等)组成全局事务标识,并将其返回至消息发送端。使得消息发送端根据该全局事务标识构建上下文环境,并在该上下文环境中执行本地事务。在该上下文环境下,消息发送端的资源管理器对本地数据库进行操作,根据上下文环境中的信息与事务协调器进行交互,受事务协调器所协调。消息发送端完成本地事务后,将XID加入待发送消息的消息头,然后将其发送至消息接收端。消息接收端根据接收到的消息中所携带的XID重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。
进一步地,在本发明实施例提供的事务处理装置还可以包括:第二接收模块54和提交模块55。
其中,第二接收模块54用于接收消息接收端发送的全局事务提交请求;提交模块55用于当第二接收模块54接收到全局事务提交请求时,分别向消息发送端和消息接收端的服务器提交该消息链路级事务。
当消息接收端执行完本地事务后,向事务协调器发送全局事务提交请求,指示事务协调器分别向消息发送端和消息接收端的服务器提交该消息链路级事务。当消息发送端或消息接收端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,指示事务协调器分别向消息发送端和消息接收端的服务器发送全局事务回滚请求,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理装置,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例五
图6为本发明提供的事务处理装置另一个实施例的结构示意图,可用于执行如图3所示的方法步骤。如图6所示,该装置可以包括:第二发送模块61、第三接收模块62、第一执行模块63和第三发送模块64。
其中,第二发送模块61用于向事务协调器发送全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务;第三接收模块62用于接收事务协调器返回的全局事务标识,该全局事务标识包含为消息链路级事务分配的事务唯一ID和用于协调该消息链路级事务的事务协调器的地址;第一执行模块63用于根据全局事务标识构建上下文环境,在该上下文环境中执行本地事务;第三发送模块64用于在执行完本地事务后,向消息接收端发送消息,消息中携带全局事务标识。
在本发明实施例中,消息发送端开启事务时,首先由第二发送模块61向事务协调器发送全局事务开启请求。第三接收模块62接收事务协调器返回的全局事务标识后,第一执行模块63根据该全局事务标识构建上下文环境,并在该上下文环境中执行本地事务。在该上下文环境下,消息发送端的资源管理器对本地数据库进行操作,根据上下文环境中的信息与事务协调器进行交互,受事务协调器所协调。第一执行模块63完成本地事务后,第三发送模块64将全局事务标识加入待发送消息的消息头,然后将其发送至消息接收端。消息接收端根据接收到的消息中所携带的全局事务标识重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。
另外,当消息发送端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,由事务协调器将该全局事务回滚请求发送到参与这一全局事务(消息链路级事务)的所有服务器,可能包括消息发送端、消息接收端和消息中间端(若存在消息中间端)的服务器,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理装置,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例六
图7为本发明提供的事务处理装置又一个实施例的结构示意图,可用于执行如图4所示的方法步骤。如图7所示,该装置可以包括:第四接收模块71、第二执行模块72和第四发送模块73。
其中,第四接收模块71用于从消息发送端接收携带有全局事务标识的消息,该全局事务标识包含为消息链路级事务分配的事务唯一ID和用于协调该消息链路级事务的事务协调器的地址;第二执行模块72用于根据全局事务标识构建上下文环境,在该上下文环境中执行本地事务;第四发送模块73用于在第二执行模块72执行完本地事务后,向事务协调器发送全局事务提交请求,该全局事务提交请求用于指示提交该消息链路级事务。
在本发明实施例中,消息发送端完成本地事务后,将全局事务标识加入待发送消息的消息头,然后将其发送至消息接收端。第四接收模块71从消息发送端接收携带有全局事务标识的消息。第二执行模块72根据接收到的消息中所携带的全局事务标识重新构建上下文环境,在同样的上下文环境中进执行本地事务,其资源管理器对本地数据库进行操作。当第二执行模块72执行完本地事务后,第四发送模块73向事务协调器发送全局事务提交请求,指示事务协调器分别向消息发送端和消息接收端的服务器提交该消息链路级事务。
另外,当消息接收端的本地事务执行失败时,向事务协调器发送全局事务回滚请求,由事务协调器将该全局事务回滚请求发送到参与这一全局事务(消息链路级事务)的所有服务器,可能包括消息发送端、消息接收端和消息中间端(若存在消息中间端)的服务器,使得各个服务器回滚到该消息链路级事务开始之前的状态。
本发明实施例提供的事务处理装置,通过在消息中携带全局事务标识,而自动传播上下文环境,将消息链路上各终端的本地事务作为一个全局事务进行处理,任何一端事务失败,则全局事务回滚,各终端的事务都回滚至事务前的状态,从而保证了全链路的数据一致性,避免了不必要的人工干预,降低了开发及运维成本。
实施例七
以上描述了磁盘存储装置的内部功能和结构,该装置可实现为一种电子设备。图8为本发明提供的电子设备一个实施例的结构示意图。如图8所示,该电子设备包括存储器81和处理器82。
存储器81,用于存储程序。除上述程序之外,存储器81还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器82,与存储器81耦合,执行存储器81所存储的程序,以用于:
接收消息发送端发送的全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务;为消息链路级事务分配事务唯一标识;向消息发送端返回全局事务标识,该全局事务标识包括上述事务唯一标识和用于协调消息链路级事务的事务协调器的地址。
进一步,如图8所示,电子设备还可以包括:通信组件83、电源组件84、音频组件85、显示器86等其它组件。图8中仅示意性给出部分组件,并不意味着电子设备只包括图8所示组件。
通信组件83被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件83经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件83还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
基于通信组件83,处理器82可以通过通信组件83将所有消费数据存储到外部数据库中。
电源组件84,为电子设备的各种组件提供电力。电源组件84可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件85被配置为输出和/或输入音频信号。例如,音频组件85包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器81或经由通信组件83发送。在一些实施例中,音频组件85还包括一个扬声器,用于输出音频信号。
显示器86包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
实施例八
以上描述了消息推送装置的内部功能和结构,该装置可实现为一种电子设备。图9为本发明提供的电子设备另一个实施例的结构示意图。如图9所示,该电子设备包括存储器91和处理器92。
存储器91,用于存储程序。除上述程序之外,存储器91还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器91可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器92,与存储器91耦合,执行存储器91所存储的程序,以用于:
向事务协调器发送全局事务开启请求,该全局事务开启请求用于指示开启消息链路级事务;接收事务协调器返回的全局事务标识,该全局事务标识包含为上述消息链路级事务分配的事务唯一标识和用于协调该消息链路级事务的事务协调器的地址;根据全局事务标识构建上下文环境,在上下文环境中执行本地事务;在执行完本地事务后,向消息接收端发送消息,消息中携带全局事务标识。
进一步,如图9所示,电子设备还可以包括:通信组件93、电源组件94、音频组件95、显示器96等其它组件。图9中仅示意性给出部分组件,并不意味着电子设备只包括图9所示组件。
通信组件93被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件93经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件93还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
基于通信组件93,处理器92可以通过通信组件93将所有消费数据存储到外部数据库中。
电源组件94,为电子设备的各种组件提供电力。电源组件94可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件95被配置为输出和/或输入音频信号。例如,音频组件95包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器91或经由通信组件93发送。在一些实施例中,音频组件95还包括一个扬声器,用于输出音频信号。
显示器96包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
实施例九
以上描述了消息推送装置的内部功能和结构,该装置可实现为一种电子设备。图10为本发明提供的电子设备另一个实施例的结构示意图。如图10所示,该电子设备包括存储器101和处理器102。
存储器101,用于存储程序。除上述程序之外,存储器101还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器102,与存储器101耦合,执行存储器101所存储的程序,以用于:
从消息发送端接收携带有全局事务标识的消息,该全局事务标识包含为消息链路级事务分配的事务唯一标识和用于协调消息链路级事务的事务协调器的地址;根据全局事务标识构建上下文环境,在上下文环境中执行本地事务;在执行完本地事务后,向事务协调器发送全局事务提交请求,该全局事务提交请求用于指示提交消息链路级事务。
进一步,如图10所示,电子设备还可以包括:通信组件103、电源组件104、音频组件105、显示器106等其它组件。图10中仅示意性给出部分组件,并不意味着电子设备只包括图10所示组件。
通信组件103被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件103经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件103还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
基于通信组件103,处理器102可以通过通信组件103将所有消费数据存储到外部数据库中。
电源组件104,为电子设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件105被配置为输出和/或输入音频信号。例如,音频组件105包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器101或经由通信组件103发送。在一些实施例中,音频组件105还包括一个扬声器,用于输出音频信号。
显示器106包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (23)
1.一种事务处理系统,用于处理消息链路级事务,其特征在于,包括:消息链路的消息发送端和消息接收端,以及用于协调所述消息链路级事务的事务协调器,
所述消息发送端用于,向所述事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述消息接收端发送消息,所述消息中携带所述全局事务标识;
所述消息接收端用于,从所述消息发送端接收携带有所述全局事务标识的所述消息;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务;
所述事务协调器用于,接收所述消息发送端发送的所述全局事务开启请求,为所述消息链路级事务分配事务唯一标识,向所述消息发送端返回全局事务标识;接收所述消息接收端发送的所述全局事务提交请求,分别向所述消息发送端和所述消息接收端的服务器提交所述消息链路级事务。
2.根据权利要求1所述的事务处理系统,其特征在于,还包括:消息中间件,
所述消息中间件用于,接收并存储所述消息发送端发送的所述消息;当接收到消息接收端发送的消息获取请求时,将存储的所述消息发送至所述消息接收端。
3.根据权利要求2所述的事务处理系统,其特征在于,还包括:消息中间端,所述消息中间端在所述消息链路中既接收消息也发送消息,
所述消息中间端用于,从所述消息中间件接收携带有所述全局事务标识的第一消息;根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;在执行完本地事务后,向所述消息中间件发送第二消息,所述第二消息中携带所述全局事务标识。
4.根据权利要求1至3中任一权利要求所述的事务处理系统,其特征在于,所述事务协调器的数量为多个,所述系统还包括:
控制模块,用于接收所述消息发送端发送的所述全局事务开启请求,为所述消息链路级事务分配所述事务协调器,并将所述全局事务开启请求转发至所述事务协调器。
5.根据权利要求1所述的事务处理系统,其特征在于,
所述消息发送端或所述消息接收端还用于,当本地事务执行失败时,向所述事务协调器发送全局事务回滚请求,所述全局事务回滚请求用于回滚所述消息链路级事务;
所述事务协调器还用于,当接收到所述消息发送端或所述消息接收端发送的所述全局事务回滚请求时,分别向所述消息发送端和所述消息接收端的服务器发送所述全局事务回滚请求。
6.根据权利要求3所述的事务处理系统,其特征在于,
所述消息中间端还用于,当本地事务执行失败时,向所述事务协调器发送全局事务回滚请求,所述全局事务回滚请求用于回滚所述消息链路级事务;
所述事务协调器还用于,当接收到所述消息发送端、所述消息接收端或所述消息中间端发送的所述全局事务回滚请求时,分别向所述消息发送端、所述消息接收端和所述消息中间端的服务器发送所述全局事务回滚请求。
7.一种事务处理方法,用于处理消息链路级事务,其特征在于,包括:
接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;
为所述消息链路级事务分配事务唯一标识;
向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
8.根据权利要求7所述的事务处理方法,其特征在于,还包括:
当接收到所述消息接收端发送的全局事务提交请求时,分别向所述消息发送端和所述消息接收端的服务器提交所述消息链路级事务。
9.根据权利要去7或8所述的事务处理方法,其特征在于,还包括:
当接收到所述消息发送端或所述消息接收端发送的全局事务回滚请求时,分别向所述消息发送端和所述消息接收端的服务器发送所述全局事务回滚请求,所述全局事务回滚请求用于回滚所述消息链路级事务。
10.一种事务处理方法,用于处理消息链路级事务,其特征在于,包括:
向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;
接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;
根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
11.根据权利要求10所述的事务处理方法,其特征在于,所述向消息接收端发送消息,包括:
向消息中间件发送所述消息,由所述消息中间件存储并转发所述消息。
12.根据权利要求10或11所述的事务处理方法,其特征在于,所述向事务协调器发送全局事务开启请求,包括:
向控制模块发送所述全局事务开启请求,由所述控制模块为所述消息链路级事务分配所述事务协调器并将所述全局事务开启请求转发至所述事务协调器。
13.根据权利要求10所述的事务处理方法,其特征在于,还包括:
当本地事务执行失败时,向所述事务协调器发送全局事务回滚请求,所述全局事务回滚请求用于回滚所述消息链路级事务。
14.一种事务处理方法,用于处理消息链路级事务,其特征在于,包括:
从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;
根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
15.根据权利要求14所述的事务处理方法,其特征在于,所述从消息发送端接收携带有全局事务标识的消息,包括:
向消息中间件发送消息获取请求;
接收所述消息中间件存储的、发自于所述消息发送端的、携带有全局事务标识的所述消息。
16.根据权利要求14或15所述的事务处理方法,其特征在于,还包括:
当本地事务执行失败时,向所述事务协调器发送全局事务回滚请求,所述全局事务回滚请求用于回滚所述消息链路级事务。
17.一种事务处理装置,用于处理消息链路级事务,其特征在于,包括:
第一接收模块,用于接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;
分配模块,用于为所述消息链路级事务分配事务唯一标识;
第一发送模块,用于向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
18.根据权利要求17所述的事务处理装置,其特征在于,还包括:
第二接收模块,用于接收所述消息接收端发送的全局事务提交请求;
提交模块,用于当所述第二接收模块接收到所述全局事务提交请求时,分别向所述消息发送端和所述消息接收端的服务器提交所述消息链路级事务。
19.一种事务处理装置,用于处理消息链路级事务,其特征在于,包括:
第二发送模块,用于向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启所述消息链路级事务;
第三接收模块,用于接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;
第一执行模块,用于根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
第三发送模块,用于在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
20.一种事务处理装置,用于处理消息链路级事务,其特征在于,包括:
第四接收模块,用于从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;
第二执行模块,用于根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
第四发送模块,用于在所述第二执行模块执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
21.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
接收消息发送端发送的全局事务开启请求,所述全局事务开启请求用于指示开启消息链路级事务;
为所述消息链路级事务分配事务唯一标识;
向所述消息发送端返回全局事务标识,所述全局事务标识包括所述事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址。
22.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
向事务协调器发送全局事务开启请求,所述全局事务开启请求用于指示开启消息链路级事务;
接收所述事务协调器返回的全局事务标识,所述全局事务标识包含为所述消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的所述事务协调器的地址;
根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
在执行完本地事务后,向消息接收端发送消息,所述消息中携带所述全局事务标识。
23.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于运行所述存储器中存储的所述程序,以用于:
从消息发送端接收携带有全局事务标识的消息,所述全局事务标识包含为消息链路级事务分配的事务唯一标识和用于协调所述消息链路级事务的事务协调器的地址;
根据所述全局事务标识构建上下文环境,在所述上下文环境中执行本地事务;
在执行完本地事务后,向所述事务协调器发送全局事务提交请求,所述全局事务提交请求用于指示提交所述消息链路级事务。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792273.8A CN109426552A (zh) | 2017-09-05 | 2017-09-05 | 事务处理方法、装置和系统以及电子设备 |
PCT/CN2018/102495 WO2019047737A1 (zh) | 2017-09-05 | 2018-08-27 | 事务处理方法、装置和系统以及电子设备 |
US16/802,186 US11256536B2 (en) | 2017-09-05 | 2020-02-26 | Method and system for processing transactions using a transaction coordinator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710792273.8A CN109426552A (zh) | 2017-09-05 | 2017-09-05 | 事务处理方法、装置和系统以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109426552A true CN109426552A (zh) | 2019-03-05 |
Family
ID=65514160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710792273.8A Pending CN109426552A (zh) | 2017-09-05 | 2017-09-05 | 事务处理方法、装置和系统以及电子设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11256536B2 (zh) |
CN (1) | CN109426552A (zh) |
WO (1) | WO2019047737A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022367A (zh) * | 2019-04-11 | 2019-07-16 | 软通动力信息技术(集团)有限公司 | 一种事务处理方法和事务处理系统 |
CN110471746A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种分布式事务回调方法、装置及系统 |
CN111143041A (zh) * | 2019-12-31 | 2020-05-12 | 中国银行股份有限公司 | 一种数据一致性方法、分布式协调器及中央协调器 |
CN112765126A (zh) * | 2020-12-31 | 2021-05-07 | 金蝶软件(中国)有限公司 | 数据库事务的管理方法、装置、计算机设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088717A1 (en) * | 2002-07-12 | 2004-05-06 | Jun Chen | System and method for connectivity to structured query language database |
US20050144301A1 (en) * | 2003-12-26 | 2005-06-30 | Park Chan K. | System for aborting web services automatically and method thereof |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103546440A (zh) * | 2012-07-16 | 2014-01-29 | 上海宝信软件股份有限公司 | 一种客户端发起事务的事务实现方法和系统 |
CN106033562A (zh) * | 2015-03-16 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 事务处理方法、事务参与节点及事务协调节点 |
CN106255956A (zh) * | 2014-04-28 | 2016-12-21 | 甲骨文国际公司 | 基于事务环境中的资源管理器实例感知支持公共事务标识符优化和事务亲密度的系统和方法 |
CN106844014A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 分布式事务防悬挂的实现方法和装置 |
US20170187578A1 (en) * | 2015-12-29 | 2017-06-29 | Alibaba Group Holding Limited | System and method for acquiring, processing and updating global information |
CN107045454A (zh) * | 2016-02-06 | 2017-08-15 | 华为技术有限公司 | 跨进程分布式事务控制方法及相关系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10004260A1 (de) | 2000-02-02 | 2001-08-09 | Bosch Gmbh Robert | Verfahren zum Übertragen von Nachrichten in einem Telekommunikationsnetzwerk |
DE60134170D1 (de) | 2000-11-06 | 2008-07-03 | At & T Wireless Services Inc | Zustellung einer kurznachricht |
US20060149791A1 (en) * | 2005-01-06 | 2006-07-06 | Oracle International Corporation | Database-driven distributed recovery |
US20090327133A1 (en) * | 2006-08-10 | 2009-12-31 | Seergate Ltd. | Secure mechanism and system for processing financial transactions |
CN101420657B (zh) | 2007-10-22 | 2011-01-05 | 华为技术有限公司 | 异构网络间的消息传输方法及其装置 |
GB2472620B (en) * | 2009-08-12 | 2016-05-18 | Cloudtran Inc | Distributed transaction processing |
US20110087709A1 (en) * | 2009-10-12 | 2011-04-14 | Ramani Sriram | Methods and system for dynamic database content persistence and information management |
US9059992B2 (en) * | 2012-12-17 | 2015-06-16 | Sap Se | Distributed mobile enterprise application platform |
KR101858139B1 (ko) * | 2016-05-17 | 2018-05-15 | 라인 가부시키가이샤 | 결제 처리 방법을 수행하는 결제 처리 서버, 방법 및 상기 방법을 수행하는 컴퓨터 프로그램 |
US10503725B2 (en) * | 2016-10-13 | 2019-12-10 | Futurewei Technologies, Inc. | Decentralized distributed database consistency |
CN106776076B (zh) * | 2016-12-27 | 2019-04-26 | 国网信息通信产业集团有限公司 | 一种实现MongoDB事务管理的方法及系统 |
US10936578B2 (en) * | 2017-06-01 | 2021-03-02 | Sap Se | Client-driven commit of distributed write transactions in a database environment |
-
2017
- 2017-09-05 CN CN201710792273.8A patent/CN109426552A/zh active Pending
-
2018
- 2018-08-27 WO PCT/CN2018/102495 patent/WO2019047737A1/zh active Application Filing
-
2020
- 2020-02-26 US US16/802,186 patent/US11256536B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088717A1 (en) * | 2002-07-12 | 2004-05-06 | Jun Chen | System and method for connectivity to structured query language database |
US20050144301A1 (en) * | 2003-12-26 | 2005-06-30 | Park Chan K. | System for aborting web services automatically and method thereof |
CN101183377A (zh) * | 2007-12-10 | 2008-05-21 | 华中科技大学 | 一种基于消息中间件的高可用性数据库集群 |
CN102306197A (zh) * | 2011-09-22 | 2012-01-04 | 用友软件股份有限公司 | 保证跨数据源操作结果一致性的装置和方法 |
CN103546440A (zh) * | 2012-07-16 | 2014-01-29 | 上海宝信软件股份有限公司 | 一种客户端发起事务的事务实现方法和系统 |
CN106255956A (zh) * | 2014-04-28 | 2016-12-21 | 甲骨文国际公司 | 基于事务环境中的资源管理器实例感知支持公共事务标识符优化和事务亲密度的系统和方法 |
CN106033562A (zh) * | 2015-03-16 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 事务处理方法、事务参与节点及事务协调节点 |
CN106844014A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 分布式事务防悬挂的实现方法和装置 |
US20170187578A1 (en) * | 2015-12-29 | 2017-06-29 | Alibaba Group Holding Limited | System and method for acquiring, processing and updating global information |
CN107045454A (zh) * | 2016-02-06 | 2017-08-15 | 华为技术有限公司 | 跨进程分布式事务控制方法及相关系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022367A (zh) * | 2019-04-11 | 2019-07-16 | 软通动力信息技术(集团)有限公司 | 一种事务处理方法和事务处理系统 |
CN110471746A (zh) * | 2019-08-22 | 2019-11-19 | 中国工商银行股份有限公司 | 一种分布式事务回调方法、装置及系统 |
CN111143041A (zh) * | 2019-12-31 | 2020-05-12 | 中国银行股份有限公司 | 一种数据一致性方法、分布式协调器及中央协调器 |
CN111143041B (zh) * | 2019-12-31 | 2023-12-22 | 中国银行股份有限公司 | 一种数据一致性方法、分布式协调器及中央协调器 |
CN112765126A (zh) * | 2020-12-31 | 2021-05-07 | 金蝶软件(中国)有限公司 | 数据库事务的管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200264916A1 (en) | 2020-08-20 |
US11256536B2 (en) | 2022-02-22 |
WO2019047737A1 (zh) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426552A (zh) | 事务处理方法、装置和系统以及电子设备 | |
EP4246393A1 (en) | Cross-device task relay method and apparatus, cloud platform, and storage medium | |
US9953612B2 (en) | Systems and methods for facilitating communication between mobile devices and display devices | |
US9106424B2 (en) | Method and system for providing users login access to multiple devices via a communication system | |
KR101818961B1 (ko) | 컨텐츠 전송 방법 및 상기 방법을 채용한 기기, 서버 | |
CN102143156B (zh) | 桌面共享处理方法和设备 | |
US20170012821A1 (en) | Personal working system available for dynamic combination and adjustment | |
US20200162546A1 (en) | Discovery and formation of local communication group | |
US11256559B2 (en) | Error display system, error display method, and information processing apparatus | |
CN106941713A (zh) | 一种降低移动终端功耗的方法及其装置 | |
CN105051674A (zh) | 不起眼地显示上下文相关信息 | |
CN103873803A (zh) | 显示装置、显示系统、显示装置的控制方法以及信号处理装置 | |
US11638328B2 (en) | Multi-mode communication method, terminal, and network side device | |
CN109586929B (zh) | 会议内容的传输方法及装置、电子设备、存储介质 | |
US20140032669A1 (en) | One-button formation of a proximity based instant temporary social network on mobile devices | |
CN105900176A (zh) | 用于基于存储器访问模式解决dram页面冲突的系统和方法 | |
CN109684045A (zh) | 事务消息的处理方法、装置及电子设备 | |
EP3995954A1 (en) | Method for operating widget, terminal and storage medium | |
CN110210007B (zh) | 一种文档的处理方法、终端以及计算机设备 | |
CN112752048B (zh) | 协同工作的方法、设备、存储介质及协同系统 | |
CN105897667A (zh) | 设备访问历史跟踪方法、设备、服务器及系统 | |
CN111367444A (zh) | 应用功能执行方法、装置、电子设备及存储介质 | |
CN104469078A (zh) | 互动投影控制方法和系统 | |
CN109150570A (zh) | 更新方法、系统、端节点及电子设备 | |
CN107172077B (zh) | 信息显示方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190305 |
|
RJ01 | Rejection of invention patent application after publication |