CN103312549B - 一种事务管理方法及装置和系统 - Google Patents
一种事务管理方法及装置和系统 Download PDFInfo
- Publication number
- CN103312549B CN103312549B CN201310260918.5A CN201310260918A CN103312549B CN 103312549 B CN103312549 B CN 103312549B CN 201310260918 A CN201310260918 A CN 201310260918A CN 103312549 B CN103312549 B CN 103312549B
- Authority
- CN
- China
- Prior art keywords
- transaction
- equipment
- rollback
- journal
- affairs
- 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.)
- Active
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种事务管理方法及装置和系统,包括:事务管理装置根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志;所述事务管理装置在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚,从而在保障业务数据一致性的同时提高实时性和系统效率。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种事务管理方法及装置和系统。
背景技术
随着业务的发展和信息量的增大,对业务处理操作由原来的一个业务系统承载逐步演进为由多个业务系统共同承载,即,由分布式业务系统来承载。因此,跨系统的信息交互越来越多。
用户在不同业务系统的业务数据必须保持一致。现有的保障跨系统业务数据一致性的技术方案中,通过中间件将分布式业务系统中的两个系统的业务处理操作组织到一个分布式事务来实现,当中间件发现所有的数据都可以提交时,进行业务提交,否则撤销。
发明人在实现本发明的过程中,发现现有技术方案至少存在以下缺陷:
上述方案依赖于中间件,并且需要两个系统共享信息模型,这样就导致系统间的紧密耦合。目前业界越来越多采用HTTP(Hyper Text Transfer Protocol,超文本传输协议)、webservice等开放式协议实现系统交互,对系统提出了解耦要求,因而上述方案无法在这种方式下应用。
发明内容
本发明实施例提供了一种事务管理方法及装置和系统,用于针对分布式事务处理系统实现事务管理。
第一方面,提供了一种事务管理方法,包括:
事务管理装置根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志;
所述事务管理装置在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
结合第一方面,在第一种可能的实现方式中,所述指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚,具体包括:
所述事务管理装置向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
结合第一方面,在第二种可能的实现方式中,根据所述第一设备对第二设备的调用情况,维护事务处理日志,具体包括:
根据所述第一设备对所述第二设备的调用结果,为当前事务对应的事务处理日志设置状态;
所述根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,具体包括:
根据发生错误的事务对应的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,根据所述第一设备对所述第二设备的调用结果,为当前进行的事务处理对应的事务处理日志设置状态,具体包括:
若所述第一设备接收到所述第二设备返回的调用成功响应,则将当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一设备接收到所述第二设备返回的调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用超时状态。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述根据发生错误的事务对应的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致,具体包括:
根据发生错误的事务查询对应的事务处理日志的状态,若查询到事务处理日志的状态为调用成功状态或调用超时状态,则判断所述第一设备和所述第二设备中的业务数据不一致。
结合第一方面,在第五种可能的实现方式中,所述方法还包括:
若所述事务处理执行成功,则所述事务管理装置将当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的事务处理日志的状态为调用失败,则所述事务管理装置将当前失败的事务对应的事务处理日志移出事务处理日志表。
结合第一方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式、第一方面的第五种可能的实现方式,在第六种可能的实现方式中,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚后,还包括:
若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则所述事务管理装置将回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则所述事务管理装置将回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;
若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则所述事务处理装置将超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
第二方面,提供了一种事务管理装置,包括:
日志维护单元,用于根据作为事务处理发起方的第一事务处理设备在事务处理执行过程中对第二事务处理设备的调用情况,维护事务处理日志;
修正单元,用于在所述第一事务处理设备发生事务回滚错误时,根据发生回滚错误的事务对应的事务处理日志,判断所述第一事务处理设备和所述第二事务处理设备中的业务数据是否一致,并在判定为不一致时,指示所述第二事务处理设备根据发生回滚错误的事务对应的事务处理日志进行事务回滚。
结合第二方面,在第一种可能的实现方式中,所述修正单元具体用于:
向所述第二事务处理设备发送事务回滚请求,其中携带有发生回滚错误的事务对应的事务处理日志在事务处理日志表中的标识,所述事务回滚请求用于指示所述第二事务处理设备根据所述标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
结合第二方面,在第二种可能的实现方式中,所述日志维护单元具体用于:根据所述第一事务处理设备对所述第二事务处理设备的调用结果,为当前事务对应的事务处理日志设置状态;
所述修正单元具体用于:根据发生回滚错误的事务对应的事务处理日志的状态,判断所述第一事务处理设备和所述第二设备中的业务数据是否一致。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述日志维护单元具体用于:
若所述第一事务处理设备接收到所述第二事务处理设备返回的调用成功响应,则将当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一事务处理设备接收到所述第二事务处理设备返回的调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一事务处理设备在设定时长内未接收到所述第二事务处理设备返回的调用成功响应或调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用超时状态。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述修正单元具体用于:
根据发生回滚错误的事务查询对应的事务处理日志的状态,若查询到的事物处理日志的状态为调用成功状态或调用超时状态,则判定所述第一事务处理设备和所述第二事务处理设备中的业务数据不一致。
结合第二方面,在第五种可能的实现方式中,所述日志维护单元进一步用于:
若所述事务处理执行成功,则将当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的事务处理日志的状态为调用失败,则将当前失败的事务对应的事务处理日志移出事务处理日志表。
结合第二方面的第一种可能的实现方式、第一方面的第二种可能的实现方式、第一方面的第三种可能的实现方式、第一方面的第四种可能的实现方式、第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述修正单元进一步用于:
若所述第一事务处理设备接收到所述第二设备返回的事务回滚成功响应,则将回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一事务处理设备接收到所述第二事务处理设备返回的事务回滚失败响应,则将回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二事务处理设备进行事务回滚;
若所述第一事务处理设备在设定时长内未接收到所述第二事务处理设备返回的事务回滚成功响应或事务回滚失败响应,则将超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二事务处理设备进行事务回滚。
第三方面,提供一种事务处理系统,包括:至少2个事务处理设备,所述至少2个事务处理设备中作为事务发起方的事务处理设备中包括上述事务管理装置,所述至少2个事务处理设备中的各设备采用开放式协议进行通信。
第四方面,提供一种事务管理装置,包括:处理器、存储器,其中:
所述存储器,用于存储所述事务处理日志。
所述处理器,用于根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志,以及在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
结合第四方面,在第一种可能的实现方式中,所述处理器具体用于:
向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在所述存储器中的事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询所述存储器中的事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
结合第四方面,在第二种可能的实现方式中,所述处理器具体用于:
根据所述第一设备对所述第二设备的调用结果,在存储器中为当前事务对应的事务处理日志设置状态;
所述处理器具体用于根据发生错误的事务对应的存储器中的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器具体用于:
若所述第一设备接收到所述第二设备返回的调用成功响应,则将存储器中的当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一设备接收到所述第二设备返回的调用失败响应,则将存储器中的当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将存储器中的当前事务对应的事务处理日志的状态设置为调用超时状态。
结合第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器具体用于:
根据发生错误的事务查询存储器中对应的事务处理日志的状态,若查询到的事物处理日志的状态为调用成功状态或调用超时状态,则判定所述第一设备和所述第二设备中的业务数据不一致。
结合第四方面,在第五种可能的实现方式中,所述处理器进一步用于:
若所述事务处理执行成功,则将存储器中当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的存储器中的事务处理日志的状态为调用失败,则将存储器中当前失败的事务对应的事务处理日志移出事务处理日志表。
结合第四方面的第一种可能的实现方式、第二方面的第二种可能的实现方式、第二方面的第三种可能的实现方式、第二方面的第四种可能的实现方式、第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述处理器进一步用于:
若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则将存储器中回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则将存储器中回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;
若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则将存储器中超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
本发明有益效果如下:
本发明实施例中,事务管理装置根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志;所述事务管理装置在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚,从而保障分布式事务管理系统中业务数据的一致性。另外,本发明实施例中只要第一设备发生事务错误,即可在进一步确定业务数据不一致时,事务管理装置指示第二设备根据发生错误的事务对应的事务处理日志进行事务回滚,与现有技术中离线对账方式相比提高了实时性,并且在事务管理装置根据事务处理日志指示第二设备进行事务回滚时,只要依据对应的事务处理日志即可,提高了针对性和系统效率。
附图说明
图1为本发明实施例中提供的一种分布式事务处理系统架构图;
图2为本发明实施例中场景1的处理流程图;
图3为本发明实施例中场景2的处理流程图;
图4为本发明实施例中场景3的处理流程图;
图5为本发明实施例中场景3的处理流程图;
图6为本发明实施例中修正单元的处理流程图;
图7为本发明实施例中事务管理装置的结构图。
具体实施方式
本发明实施例提供了一种事务管理方案,用于在分布式事务处理系统中,保障业务数据的一致性,并提高实时性和处理效率。
分布式事务处理系统中通常包含两个或两个以上事务处理设备,各事务处理设备间通过开放式协议进行通信。事务处理设备间进行一项业务处理,可能会发起多个事务处理过程,即,一个业务处理过程可能需要执行多个事务处理过程。本发明实施例中,当一个事务在分布式事务处理系统中的一个事务处理设备发起后,作为事务发起方的事务处理设备(为便于描述,以下称该设备为第一事务处理设备)启动事务处理过程并进行事务处理操作,在事务处理过程中,当第一事务处理设备调用其它事务处理设备(为便于描述,以下称该设备为第二事务处理设备)进行事务处理时,事务管理装置根据第一事务处理设备对第二事务处理设备的调用结果维护事务处理日志。若第一事务处理设备发生事务错误,则该事务处理装置根据发生错误的事务对应的事务处理日志,判断第一事务处理设备和第二事务处理设备中的业务数据是否一致,并在判定为不一致时,指示第二事务处理设备根据发生错误的事务对应的事务处理日志进行事务回滚。
其中,事务管理装置为本发明实施例所新增的装置。事务管理装置可独立于分布式事务处理系统中的各事务处理设备,也可位于分布式事务处理系统中的事务处理设备中。如果事务管理装置独立于分布式事务处理系统中的各事务处理设备,则可与各事务处理设备进行通信,以获得各事务处理设备的事务处理执行情况。
事务管理装置维护的事务处理日志可采用日志表的数据结构,日志表中针对各事务对应记录有事务处理日志。事务处理日志表可被第一事务处理设备和第二事务处理设备访问。
优选的,本发明实施例中,事务管理装置在维护事务处理日志时,可根据对第二事务处理设备的调用结果,为当前事务对应的事务处理日志设置状态;在根据发生错误的事务对应的事务处理日志,判断第一事务处理设备和第二事务处理设备中的业务数据是否一致时,可根据事务处理日志的状态进行判断。
进一步的,在事务处理结束后,若针对当前结束的事务,处理该事务的各处理设备中的业务数据保持一致,则还可以将对应的事务处理日志移出事务处理日志表。
通过对事务处理日志表中事务处理日志的维护,在判定事务处理日志中业务数据不一致时,指示第二事务处理设备根据事务处理日志进行事务回滚,从而保障分布式事务处理系统中业务数据的一致性。另外,本发明实施例只需要在事务处理日志中业务数据不一致时,指示第二事务处理设备根据事务处理日志进行事务回滚,从而减小了分布式事务处理系统处理的数据量,从而提高了系统的效率,并且本发明实施例具有实时性,能够实时地进行事务回滚。
下面以事务处理设备A和事务处理设备B构成的分布式事务处理系统为例,结合附图对本发明的具体实施方式进行说明。其中,设备A作为事务处理发起方设备,其中设置有事务管理装置。
图1为本发明实施例中提供的分布式事务处理系统架构图,该分布式事务处理系统包括事务处理设备A(以下简称设备A)、事务处理设备B(以下简称设备B)。设备A和设备B采用开放式协议交互,比如HTTP协议或webservice协议。本发明实施例中,事务处理发起于设备A,设备A通过调用设备B完成事务处理过程。
作为事务发起方,设备A除了具有常规的事务处理功能以外,本发明实施例还在设备A中增加了事务管理装置。事务管理装置主要实现:维护事务处理日志表,当设备A发生事务错误时,会发生事务回滚,事务处理装置根据发生回滚的事务对应的事务处理日志,判断设备A和设备B中的业务数据是否一致,并在判定为不一致时,向设备B发起事务回滚请求,该请求中携带有发生回滚的事务对应的事务处理日志的标识,用于指示设备B根据所述事务处理日志的标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚,保证业务数据的一致性。
需要说明的是,在分布式事务处理系统中,各个事务处理设备均可能作为事务的发起方,这种情况下,各个事务处理设备中均需要增加上述事务管理装置。本发明实施例仅以设备A为事务处理发起方系统为例进行描述。
根据设备A需要实现的功能,设备A可包括:事务处理单元101和事务管理装置104,事务管理装置104中可包括日志维护单元102、修正单元103。其中:
事务处理单元101,用于接收事务处理请求,根据接收到的事务处理请求进行事务处理,调用其它事务处理设备(这里为设备B)进行事务处理;
日志维护单元102,用于根据事务处理单元101的事务处理操作维护事务处理日志,根据调用结果维护事务处理日志;
修正单元103,用于在事务处理单元101发生事务回滚时,根据发生回滚的事务对应的事务处理日志,判断所述事务处理设备(这里为设备A)和所述其它事务处理设备(这里为设备B)中的业务数据是否一致,并在判定为不一致时,指示所述其它事务处理设备(这里为设备B)根据发生回滚的事务对应的事务处理日志进行事务回滚。
以上功能模块划分方式仅为本发明实施例给出的一种优选实现方式,功能模块的划分方式不构成对本发明的限制。
通常情况下,在上述分布式事务处理系统中,当一个事务在设备A发起时,首先在发起方设备A中进行处理,然后设备A调用设备B进行事务处理。上述事务处理过程中,根据设备A和设备B的事务处理操作成功与否,存在以下几种典型的场景:
场景1:设备B事务处理操作成功且设备A事务处理操作成功
在场景1中,事务处理发起于设备A,设备A处理对该事务进行处理,生成业务数据,处理成功后调用设备B处理该事务;设备B根据设备A的调用进行处理,生成业务数据,处理操作成功后向设备A返回调用成功响应;设备A接收到该调用成功响应后,进行后续处理,若设备A的事务处理操作成功,则设备A提交该事务,此时事务处理成功,设备A和设备B中的业务数据保持一致。
场景2:设备B事务处理操作失败且设备A事务处理操作失败
在场景2中,事务处理发起于设备A,设备A对该事务进行处理,生成业务数据,处理成功后调用设备B处理该事务;设备B根据设备A的调用进行处理,处理操作失败后,执行事务回滚,并向设备A返回调用失败响应;设备A接收到该调用失败响应后,执行事务回滚。此时事务处理失败,但设备A和设备B中的业务数据保持一致。
场景3:设备B事务处理操作成功且设备A事务处理操作失败
在场景3中,事务发起于设备A,设备A对该事务进行处理,生成业务数据,处理成功后调用设备B处理该事务;设备B根据设备A的调用进行处理,生成业务数据,处理操作成功后向设备A返回调用成功响应;但设备A未收到设备B的成功响应或者由于其它原因导致事务处理操作失败,则设备A执行事务回滚操作。此时事务处理失败,设备A和设备B中的业务数据不一致。
场景4:设备A事务处理操作失败
在场景4中,事务发起于设备A,设备A对该事务进行处理,生成业务数据,还没有调用设备B时,事务就处理失败,则执行事务回滚操作。此时事务处理失败,设备A和设备B中的业务数据一致。
上述场景1和场景2和场景4中无需由设备A向设备B发起事务回滚请求,场景3中需要由设备A向设备B发起事务回滚请求。
下面基于图1所示的系统架构,分别对上述几种场景下的事务处理流程进行详细说明。
图2为本发明实施例中场景1的处理流程图,包括如下步骤:
步骤201、设备A的事务处理单元101收到事务处理指令后进行相应事务处理,在处理过程中生成业务数据。
步骤202、设备A的事务处理单元101生成业务数据后,指示事务管理单元102根据事务处理操作在事务处理日志表中记录对应的事务处理日志。
该步骤中,日志维护单元102根据事务处理单元101所执行的事务处理操作,将相关信息作为当前事务处理日志保存到事务处理日志表中。事务处理日志中包括事务处理日志的标识,用于在事务处理日志中唯一标识一个事务处理过程的日志,事务处理日志的标识可用编号表示。
进一步的,为了便于对事务进行管理,本发明实施例为事务日志定义了以下几种状态:初始状态(用0标识)、调用成功状态(用1标识)、调用失败状态(用2标识)、调用超时状态(用3标识)等。此步骤中,日志维护单元102对于新生成的事务处理日志,将该日志状态设置为初始状态,并可进一步锁定该日志。
该步骤中,日志维护单元102是自治事务管理的,支撑独立的事务处理,设备A的其他事务不影响和控制日志维护单元102处理该事务的事务处理日志的状态,这样可以保证成功记录该事务各处理步骤的事务处理日志的状态。
可选的,日志维护单元102在事务处理日志表中添加事务处理日志后,向事务处理单元101返回成功响应(如图中的虚线箭头所示)。
步骤203、设备A的事务处理单元101调用设备B处理该事务,设备B根据设备A的调用进行处理,在处理过程中生成业务数据,处理操作成功后向设备A返回调用成功响应。
步骤204、设备A的事务处理单元101接收到该调用成功响应后,指示设备A的日志维护单元102更新事务处理日志表中的事务处理日志。
该步骤中,日志维护单元102可根据设备B返回的调用成功响应,执行更新事务处理日志状态的步骤。具体的,设备A的事务处理单元101接收到设备B返回的调用成功响应后,指示日志维护单元102将该事务处理所对应的事务处理日志的状态更新为调用成功状态(用1标识),以表示设备B调用成功。
可选的,日志维护单元102在事务处理日志表中更新事务处理日志后,向事务处理单元101返回成功响应(如图中的虚线箭头所示)。
步骤205、设备A的事务处理单元101处理操作成功。
步骤206、设备A的事务处理单元101处理操作成功后,提交该事务,并可进一步将事务处理日志表中该事务处理执行成功的事务处理日志移出日志表。较佳地,可将事务处理执行成功的事务处理日志移入成功表。
该步骤中,将事务处理日志移出日志表的操作属于事务提交过程中的处理操作。由于事务提交过程也是以事务处理方式进行的,因此若事务提交成功,则事务处理日志移到成功表,若事务提交失败,则事务处理日志不会移出,这样能够保证日志表中的事务处理日志均为业务数据不一致的事务处理日志。
图3为本发明实施例中场景2的处理流程图,包括如下步骤:
步骤301、设备A的事务处理单元101收到事务处理指令后进行相应事务处理,在处理过程中生成业务数据。
步骤302、设备A的事务处理单元101生成业务数据后,指示事务管理单元102根据事务处理操作在事务处理日志中记录对应的事务处理日志。该步骤的具体实施方式如步骤202中所述。
步骤303、设备A的事务处理单元101调用设备B处理该事务,设备B根据设备A的调用进行处理,在处理过程中生成业务数据,处理操作失败,执行事务回滚,并向设备A返回调用失败响应。
步骤304、设备A的事务处理单元101接收到该调用失败响应后,指示日志维护单元102更新事务处理日志表中的事务处理日志。
在事务处理日志中还需要记录日志状态的情况下,设备A的事务处理单元101还需要执行更新事务处理日志状态的步骤。具体的,设备A的事务处理单元101接收到设备B返回的调用失败响应后,指示日志维护单元102将该事务处理所对应的事务处理日志的状态更新为调用失败状态(用2标识),用以表示设备B调用失败。
可选的,日志维护单元102在事务处理日志表中更新事务处理日志后,向事务处理单元101返回成功响应(如图中的虚线箭头所示)。
步骤305、设备A的事务处理单元101接收到该调用失败响应后,执行事务回滚操作。
步骤306、设备A的事务处理单元101将当前事务处理对应的事务处理日志移出事务处理日志表。较佳地,可事务处理日志移入成功表。此步骤为可选步骤。
该步骤中,由于本次事务处理对应的事务处理日志状态为调用失败,即设备B执行事务处理失败。由于设备B和设备A都执行了事务回滚,因此设备A和设备B的业务数据一致,因此可将对应的事务处理日志移出事务处理日志表,使该日志表中仅包含设备A和设备B的业务数据不一致的事务处理日志。
步骤307、设备A的事务处理单元101指示修正单元103对是否针对当前事务处理向设备B发起事务回滚请求进行判决,并根据判决结果进行相应处理。
该步骤中,修正单元103查询事务处理日志表中本次事务处理对应的事务处理日志,根据查询到的事务处理日志判断针对当前事务处理,设备A和设备B的业务数据是否一致,若判定为不一致,则向设备B发送事务回滚请求,其中携带有查询到的事务处理日志的标识。
该步骤中,修正单元103可根据事务处理日志表中记录的事务处理日志的状态,判断设备A和设备B的业务数据是否一致。
进一步的,在事务处理日志中包含有日志的状态的情况下,修正单元103可根据事务处理日志的状态判断设备A和设备B的业务数据是否一致。该场景下,本次事务处理对应的事务处理日志状态为调用失败,即设备B执行事务处理失败,设备B执行事务回滚。由于设备B和设备A都执行了事务回滚,因此设备A和设备B的业务数据一致,修正单元103无需向设备B发送事务回滚请求。
进一步的,如果在步骤306中,将本次事务处理对应的事务处理日志移出了事务处理日志表,则该步骤中,修正单元103由于从事务处理日志表中查询不到本次事务处理对应的事务处理日志,因此无需向设备B发送事务回滚请求。
图4为本发明实施例中场景3的处理流程图,包括如下步骤:
步骤401、设备A的事务处理单元101收到事务处理指令后进行相应事务处理,在处理过程中生成业务数据。
步骤402、设备A的事务处理单元101生成业务数据后,指示事务管理单元102根据事务处理操作在事务处理日志中记录对应的事务处理日志。该步骤的具体实施方式如步骤202中所述。
步骤403、设备A的事务处理单元101调用设备B处理该事务,设备B根据设备A的调用进行处理,在处理过程中生成业务数据,处理操作成功后向设备A返回调用成功响应。
步骤404、设备A的事务处理单元101接收到该调用成功响应后,指示日志维护单元102更新事务处理日志表中的事务处理日志。该步骤的具体实施方式如步骤204中所述。
步骤405、设备A的事务处理单元101执行事务处理操作失败。比如,设备A的事务处理单元101由于其它原因导致事务处理操作失败。
步骤406、设备A的事务处理单元101执行事务回滚操作。
该步骤中,由于设备A发生了事务回滚,而设备B调用成功,因此设备A和设备B中的业务数据不一致,对应的事务处理日志将被保留在事务处理日志表中,即,设备A的事务处理单元101不会将本次事务处理对应的事务处理日志移出事务处理日志表。
步骤407、设备A的事务处理单元101指示修正单元103对是否针对本次事务处理向设备B发起事务回滚请求进行判决,并根据判决结果进行相应处理。
该步骤中,设备A的修正单元103查询事务处理日志表中当前事务处理对应的事务处理日志,根据查询到的事务处理日志判断针对当前事务处理,设备A和设备B的业务数据是否一致,若判定为不一致,则向设备B发送事务回滚请求,其中携带有查询到的事务处理日志的标识。
该步骤中,修正单元103可根据事务处理日志表中记录的事务处理日志的状态,判断设备A和设备B的业务数据是否一致;
进一步的,在事务处理日志中包含有日志状态的情况下,修正单元103可根据日志状态判断设备A和设备B的业务数据是否一致。该场景下,本次事务处理对应的事务处理日志状态为调用成功,即设备B执行事务处理成功,但由于设备A发生了事务回滚,因此设备A和设备B的业务数据不一致,修正单元103向设备B发送事务回滚请求,该请求中携带本次事务处理对应的事务处理日志的标识。
步骤408、设备B执行事务回滚操作后向设备A返回成功响应。
该步骤中,设备A向设备B发送事务回滚请求,其中携带有本次事务处理对应的事务处理日志的标识。设备B根据该事务处理日志的标识查询事务处理日志中对应的事务处理日志,根据查询到的事务处理日志进行事务回滚,设备B执行事务回滚操作后向设备A返回成功响应。
图5为本发明实施例中场景3的处理流程图,进一步包括如下步骤:
步骤501、设备A的事务处理单元101收到事务处理指令后进行相应事务处理,在处理过程中生成业务数据。
步骤502、设备A的事务处理单元101生成业务数据后,指示事务管理单元102根据事务处理操作在事务处理日志中记录对应的事务处理日志。该步骤的具体实施方式如步骤202中所述。
步骤503、设备A的事务处理单元101调用设备B处理该事务,设备B根据设备A的调用进行处理,在处理过程中生成业务数据,处理操作成功后向设备A返回调用成功响应。
步骤504、设备A的事务处理单元101在设定时长内未接收到设备B返回的调用响应,指示日志维护单元102更新对应的事务处理日志的状态为调用超时状态。该步骤为可选步骤,在事务处理日志中包含日志状态的情况下执行该步骤。
步骤505、设备A的事务处理单元101执行事务回滚操作。
该步骤中,由于设备A发生了事务回滚,而设备B调用超时,因此设备A无法确定设备B调用成功还是失败,即无法确定设备A和设备B中的业务数据是否一致,因此对应的事务处理日志将被保留在事务处理日志表中。
步骤506、设备A的事务处理单元101指示修正单元103对是否针对本次事务处理向设备B发起事务回滚请求进行判决,并根据判决结果进行相应处理。
该步骤中,设备A的修正单元103查询事务处理日志表中本次事务处理对应的事务处理日志,根据查询到的事务处理日志判断针对本次事务处理,设备A和设备B的业务数据是否一致,若判定为不一致,则向设备B发送事务回滚请求,其中携带有查询到的事务处理日志的标识。
该步骤中,修正单元103可根据事务处理日志表中记录的事务处理日志的状态,判断设备A和设备B的业务数据是否一致。
进一步的,在事务处理日志中包含有日志状态的情况下,修正单元103可根据日志状态判断设备A和设备B的业务数据是否一致。该场景下,本次事务处理对应的事务处理日志状态为调用超时,无法确定设备B执行事务处理成功或失败,因此为了保证事务处理的一致性,修正单元103向设备B发送事务回滚请求,该请求中携带本次事务处理对应的事务处理日志的标识。
步骤507、设备B收到事务回滚请求后,根据其中携带的事务处理日志的标识查询事务处理日志表中对于的日志,根据查询到的日志执行事务回滚操作,并在事务回滚成功后向设备A返回成功响应。
该步骤中,设备A向设备B发送事务回滚请求,其中携带有本次事务处理对应的事务处理日志的标识。设备B根据该事务处理日志的标识查询事务处理日志中对应的事务处理日志,根据查询到的事务处理日志进行事务回滚。
上述流程中,如果设备B执行事务处理失败,则在收到设备A发送的事务回滚请求后,不会再次执行事务回滚操作,并向设备A返回事务回滚成功响应。其它处理操作同前所述。
在场景4的情况下,设备A在调用设备B之前事务处理失败,发生事务回滚,设备A可能还未生成事务处理日志,或者生成初始状态的事务处理日志。若还未生成事务处理日志,则设备A的事务处理单元101不会指示修正单元103进行事务回滚触发判决;若已生成初始状态的事务处理日志,则设备A的事务处理单元101发生事务回滚后,指示修正单元103进行本次事务处理回滚触发判决。修正单元103根据对应的事务处理日志判断设备B还未被调用,或者根据对应的事务处理日志的状态为初始状态,则可知设备B还未被调用,此种情况下设备A和设备B的业务数据保持一致,因此修正单元103不会向设备B发起事务回滚请求。
优选的,本发明实施例中,在维护事务处理日志时,可根据事务处理操作在事务处理日志中维护设备A和设备B事务处理操作成功与否的状态;在根据发生回滚的事务对应的事务处理日志,判断设备A和设备B中的业务数据是否一致时,可根据事务处理日志中设置的设备A和设备B事务处理操作成功与否的状态进行判断。
进一步的,考虑到设备B收到事务回滚请求后进行事务回滚处理时可能处理成功也可能处理失败或者超时未响应,为了提高本发明实施例的可用性和可靠性,本发明实施例还提供了以下优化方案。
如图6所示,设备B收到事务回滚请求后进行事务回滚处理,其后可能存在以下几种情况:
(1)若事务回滚处理成功,则向设备A返回回滚成功响应;
(2)若事务回滚处理失败,则向设备A返回回滚失败响应;
(3)若事务回滚处理正在进行中,则向设备A返回回滚正在处理的响应。该种情况可发生在设备A针对未在设定时间长度内收到回滚响应的事务回滚请求重新发送时,设备B当前正在处理该事务回滚操作。
设备A向设备B发出事务回滚请求后,其后可能存在以下几种情况:
(1)在设定时间长度内收到设备B返回的回滚成功响应,则设备A将对应的事务处理日志标记为“回滚成功”,或者将对应的事务处理日志移出事务处理日志表,或者在将对应的事务处理日志标记为“回滚成功”后将其移出事务处理日志表;
(2)在设定时间长度内收到设备B返回的回滚失败响应,则设备A将对应事务处理日志标记为“回滚失败”,进一步的,对于标记为“回滚失败”的事务处理日志,可通过手工方式对相应事务进行处理,也可以重新发起回滚请求;
(3)在设定时间长度内收到设备B返回的正在处理的响应,则设备A不做任何处理。
(4)在设定时间长度内未收到设备B返回的事务回滚响应,则设备A将对应的事务处理日志标记为“回滚超时”,并可进一步再次针对标记为“回滚超时”的事务处理日志,向设备B发送事务回滚请求。
为了更清楚地对本发明实施例进行描述,下面以通过业务运营支撑系统(Business Operation Support System,BOSS)进行缴费业务为例进行说明。
BOSS系统包括两个事务处理设备:CRM和BILLING。客户到移动营业厅缴费,营业员打开CRM系统的缴费业务进行缴费操作,此时发起一个缴费事务。
场景1,缴费事务首先在CRM中进行处理,CRM生成业务数据并生成事务处理日志保存到日志表中,然后CRM调用BILLING处理该缴费事务,BILLING的事务处理操作成功,向CRM返回调用成功响应,CRM更新事务处理日志,客户在BILLING的账户余额增加,CRM事务处理操作成功,客户在CRM的账户余额同样也增加,即系统CRM和设备BILLING的业务数据一致,CRM提示缴费成功。
场景2,缴费事务首先在CRM中进行处理,生成业务数据,生成事务处理日志保存到日志表中,然后CRM调用BILLING处理该缴费事务,BILLING的事务处理操作失败,BILLING执行事务回滚操作,并向CRM返回调用失败响应;CRM接收到该调用失败响应后,更新事务处理日志;客户在BILLING的账户余额没有增加,CRM同样执行事务回滚操作,客户在CRM的账户余额也没有增加,即系统CRM和系统CRM的业务数据一致,系统CRM提示缴费失败。
场景3,缴费事务首先在CRM中进行处理,生成业务数据并生成事务处理日志保存到日志表中,然后调用BILLING处理该缴费事务;BILLING事务处理操作成功,向CRM返回调用成功响应;CRM事务处理操作失败,执行事务回滚操作并更新事务处理日志。此时客户在CRM的账户余额没有增加,在BILLING的账户余额增加,CRM和BILLING的业务数据不一致,CRM提示缴费失败。此时CRM向BILLING发起事务回滚请求,使客户在BILLING的账户余额没有增加,CRM和BILLING的业务数据保持一致。
该场景下,CRM和BILLING用户的余额均恢复到未缴费时的状态,从而保证了CRM和BILLING业务数据的一致性,并且能够实时地恢复系统的业务数据。
基于相同的技术构思,本发明实施例还提供了一种事务管理装置,由于该设备解决问题的原理与事务管理方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图1所示,该事务管理装置,包括:
日志维护单元102,用于根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志;
修正单元103,用于在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
实施中,所述修正单元103具体用于:
向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
实施中,所述日志维护单元102具体用于:根据所述第一设备对所述第二设备的调用结果,为当前事务对应的事务处理日志设置状态;
实施中,所述修正单元103具体用于:根据发生错误的事务对应的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致。
实施中,所述日志维护单元102具体用于:
若所述第一设备接收到所述第二设备返回的调用成功响应,则将当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一设备接收到所述第二设备返回的调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用超时状态。
实施中,所述修正单元103具体用于:
根据发生错误的事务查询对应的事务处理日志的状态,若查询到的事物处理日志的状态为调用成功状态或调用超时状态,则判定所述第一设备和所述第二设备中的业务数据不一致。
实施中,所述日志维护单元102进一步用于:
若所述事务处理执行成功,则将当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的事务处理日志的状态为调用失败,则将当前失败的事务对应的事务处理日志移出事务处理日志表。
实施中,所述修正单元103进一步用于:
若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则将回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则将回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;
若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则将超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
基于相同的技术构思,本发明实施例还提供了一种事务管理系统。由于该系统解决问题的原理与事务管理方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
如图1所示,该事务管理系统,包括:至少2个设备,所述至少2个设备中作为事务发起方的设备中包括如图1所示的事务管理装置,所述至少2个设备中的各设备采用开放式协议进行通信。
基于相同的技术构思,本发明实施例提供了一种事务管理装置。下面给出该装置硬件系统的实施,由于该装置解决问题的原理与事务管理方法相似,重复之处不再赘述。
如图7所示,该事务管理装置,包括:处理器701、存储器702,其中:
处理器701,用于根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志,以及在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
所述存储器702,用于存储所述事务处理日志。
实施中,所述处理器701具体用于:向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在所述存储器702中的事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询所述存储器702中的事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
实施中,所述处理器701具体用于:根据所述第一设备对所述第二设备的调用结果,在存储器702中为当前事务对应的事务处理日志设置状态。相应的,处理器701具体用于根据发生错误的事务对应的存储器702中的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致。
实施中,所述处理器701具体用于:若所述第一设备接收到所述第二设备返回的调用成功响应,则将存储器702中的当前事务对应的事务处理日志的状态设置为调用成功状态;若所述第一设备接收到所述第二设备返回的调用失败响应,则将存储器702中的当前事务对应的事务处理日志的状态设置为调用失败状态;若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将存储器702中的当前事务对应的事务处理日志的状态设置为调用超时状态。
实施中,所述处理器701具体用于:根据发生错误的事务查询存储器702中对应的事务处理日志的状态,若查询到的事物处理日志的状态为调用成功状态或调用超时状态,则判定所述第一设备和所述第二设备中的业务数据不一致。
实施中,所述处理器701进一步用于:若所述事务处理执行成功,则将存储器702中当前成功的事务对应的事务处理日志移出事务处理日志表;若所述事务处理执行失败,且当前失败的事务对应的存储器702中的事务处理日志的状态为调用失败,则将存储器702中当前失败的事务对应的事务处理日志移出事务处理日志表。
实施中,所述处理器701进一步用于:若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则将存储器702中回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则将存储器702中回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则将存储器702中超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种事务管理方法,其特征在于,所述方法包括:
事务管理装置根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志,所述事务处理日志中包括事务处理状态;
所述事务管理装置在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志的事务处理状态,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
2.如权利要求1所述的方法,其特征在于,所述指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚,具体包括:
所述事务管理装置向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
3.如权利要求1所述的方法,其特征在于,根据所述第一设备对所述第二设备的调用结果,为当前进行的事务处理对应的事务处理日志设置状态,具体包括:
若所述第一设备接收到所述第二设备返回的调用成功响应,则将当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一设备接收到所述第二设备返回的调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用超时状态。
4.如权利要求3所述的方法,其特征在于,所述根据发生错误的事务对应的事务处理日志的状态,判断所述第一设备和所述第二设备中的业务数据是否一致,具体包括:
根据发生错误的事务查询对应的事务处理日志的状态,若查询到事务处理日志的状态为调用成功状态或调用超时状态,则判断所述第一设备和所述第二设备中的业务数据不一致。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述事务处理执行成功,则所述事务管理装置将当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的事务处理日志的状态为调用失败,则所述事务管理装置将当前失败的事务对应的事务处理日志移出事务处理日志表。
6.如权利要求1-5中任一项所述的方法,其特征在于,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚后,还包括:
若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则所述事务管理装置将回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则所述事务管理装置将回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;
若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则所述事务管理装置将超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
7.一种事务管理装置,其特征在于,包括:
日志维护单元,用于根据作为事务处理发起方的第一设备在事务处理执行过程中对第二设备的调用情况,维护事务处理日志,所述事务处理日志中包括事务处理状态;
修正单元,用于在所述第一设备发生事务错误时,根据发生错误的事务对应的事务处理日志的事务处理状态,判断所述第一设备和所述第二设备中的业务数据是否一致,并在判定为不一致时,指示所述第二设备根据发生错误的事务对应的事务处理日志进行事务回滚。
8.如权利要求7所述的事务管理装置,其特征在于,所述修正单元具体用于:
向所述第二设备发送事务回滚请求,其中携带有发生错误的事务对应的事务处理日志在事务处理日志表中的标识,所述事务回滚请求用于指示所述第二设备根据所述标识查询事务处理日志表中对应的事务处理日志,并根据查询到的事务处理日志进行事务回滚。
9.如权利要求7所述的事务管理装置,其特征在于,所述日志维护单元具体用于:
若所述第一设备接收到所述第二设备返回的调用成功响应,则将当前事务对应的事务处理日志的状态设置为调用成功状态;
若所述第一设备接收到所述第二设备返回的调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用失败状态;
若所述第一设备在设定时长内未接收到所述第二设备返回的调用成功响应或调用失败响应,则将当前事务对应的事务处理日志的状态设置为调用超时状态。
10.如权利要求9所述的事务管理装置,其特征在于,所述修正单元具体用于:
根据发生错误的事务查询对应的事务处理日志的状态,若查询到的事物处理日志的状态为调用成功状态或调用超时状态,则判定所述第一设备和所述第二设备中的业务数据不一致。
11.如权利要求7所述的事务管理装置,其特征在于,所述日志维护单元进一步用于:
若所述事务处理执行成功,则将当前成功的事务对应的事务处理日志移出事务处理日志表;
若所述事务处理执行失败,且当前失败的事务对应的事务处理日志的状态为调用失败,则将当前失败的事务对应的事务处理日志移出事务处理日志表。
12.如权利要求7-11任一项所述的事务管理装置,其特征在于,所述修正单元进一步用于:
若所述第一设备接收到所述第二设备返回的事务回滚成功响应,则将回滚成功的事务对应的事务处理日志标记为回滚成功,将标记为回滚成功的事务处理日志移出事务处理日志表;
若所述第一设备接收到所述第二设备返回的事务回滚失败响应,则将回滚失败的事务对应的事务处理日志标记为回滚失败,并根据标记为回滚失败的事务处理日志再次指示所述第二设备进行事务回滚;
若所述第一设备在设定时长内未接收到所述第二设备返回的事务回滚成功响应或事务回滚失败响应,则将超时未响应的事务对应的事务处理日志标记为回滚超时,并根据标记为回滚超时的事务处理日志再次指示所述第二设备进行事务回滚。
13.一种事务处理系统,其特征在于,包括:至少2个设备,所述至少2个设备中作为事务发起方的设备中包括如权利要求7-12中任一项所述的事务管理装置,所述至少2个设备中的各设备采用开放式协议进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310260918.5A CN103312549B (zh) | 2013-06-26 | 2013-06-26 | 一种事务管理方法及装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310260918.5A CN103312549B (zh) | 2013-06-26 | 2013-06-26 | 一种事务管理方法及装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103312549A CN103312549A (zh) | 2013-09-18 |
CN103312549B true CN103312549B (zh) | 2016-08-24 |
Family
ID=49137351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310260918.5A Active CN103312549B (zh) | 2013-06-26 | 2013-06-26 | 一种事务管理方法及装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103312549B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447000A (zh) * | 2014-07-31 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种事务消息的传输方法和设备 |
CN105989133B (zh) * | 2015-02-25 | 2019-10-01 | 阿里巴巴集团控股有限公司 | 事务处理方法及装置 |
CN106802892B (zh) * | 2015-11-26 | 2021-12-28 | 阿里巴巴集团控股有限公司 | 用于主备数据一致性校验的方法和设备 |
CN107193850B (zh) * | 2016-03-15 | 2020-04-07 | 平安科技(深圳)有限公司 | Postgresql数据库中实现自治事务的方法和系统 |
CN106874073A (zh) * | 2016-07-01 | 2017-06-20 | 阿里巴巴集团控股有限公司 | Soa架构下事务的实现方法和装置 |
CN107797850B (zh) * | 2016-08-30 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 分布式事务处理的方法、装置与系统 |
CN106503264A (zh) * | 2016-11-29 | 2017-03-15 | 中国银行股份有限公司 | 基于oracle数据库的联机交易日志记录方法及设备 |
CN109376526A (zh) * | 2018-09-27 | 2019-02-22 | 拉扎斯网络科技(上海)有限公司 | 权限控制方法、装置、电子设备及计算机可读存储介质 |
CN109495452B (zh) * | 2018-10-24 | 2020-08-11 | 苏宁易购集团股份有限公司 | 响应超时处理方法、服务器及客户端响应超时处理系统 |
CN109725987A (zh) * | 2018-12-15 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 一种分布式事务一致性解决方法及相关设备 |
CN110012008B (zh) * | 2019-04-02 | 2022-03-22 | 山东国子软件股份有限公司 | 基于http协议的异构数据源分布式协调一致性方法及系统 |
CN110275764B (zh) * | 2019-05-15 | 2024-03-19 | 创新先进技术有限公司 | 调用超时处理方法、装置及系统 |
CN110083439B (zh) * | 2019-05-23 | 2021-10-01 | 北京奥鹏远程教育中心有限公司 | 分布式事务系统 |
CN112256656B (zh) * | 2019-07-22 | 2023-04-18 | 金篆信科有限责任公司 | 事务回滚方法及装置、数据库、系统、计算机存储介质 |
CN112822091B (zh) * | 2019-11-18 | 2023-05-30 | 北京京东尚科信息技术有限公司 | 一种消息处理方法和装置 |
CN113190338A (zh) * | 2021-05-21 | 2021-07-30 | 中国工商银行股份有限公司 | 业务数据的处理方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN102215264A (zh) * | 2011-06-10 | 2011-10-12 | 山东大学 | 一种支持多租户数据与服务定制运行的方法和装置 |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN103077222A (zh) * | 2012-12-31 | 2013-05-01 | 中国科学院计算技术研究所 | 机群文件系统分布式元数据一致性保证方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739244B2 (en) * | 2004-10-14 | 2010-06-15 | Oracle International Corporation | Operating logging for online recovery in shared memory information systems |
-
2013
- 2013-06-26 CN CN201310260918.5A patent/CN103312549B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073540A (zh) * | 2010-12-15 | 2011-05-25 | 北京新媒传信科技有限公司 | 分布式事务提交方法和装置 |
CN102215264A (zh) * | 2011-06-10 | 2011-10-12 | 山东大学 | 一种支持多租户数据与服务定制运行的方法和装置 |
CN102831156A (zh) * | 2012-06-29 | 2012-12-19 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN103077222A (zh) * | 2012-12-31 | 2013-05-01 | 中国科学院计算技术研究所 | 机群文件系统分布式元数据一致性保证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103312549A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103312549B (zh) | 一种事务管理方法及装置和系统 | |
CN106502769B (zh) | 分布式事务处理方法、装置及系统 | |
US8713163B2 (en) | Monitoring cloud-runtime operations | |
CN110069354A (zh) | 微服务全链路跟踪方法及微服务架构 | |
CN105960629A (zh) | 在can网络中自动选择波特率的系统和方法 | |
CN108805655A (zh) | 车辆分时共享管理方法及服务平台 | |
CN106933548A (zh) | 全局信息获取、处理及更新、方法、装置和系统 | |
CN107517227B (zh) | 用于分布式一致性系统的会话实现方法以及装置 | |
CN110658794A (zh) | 一种制造执行系统 | |
CN109544321A (zh) | 智能贷款方法、装置、计算机设备及存储介质 | |
CN108737534A (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
CN110502319A (zh) | 分布式事务的处理方法、装置、电子设备及存储介质 | |
CN106648936A (zh) | 基于微服务的协作处理方法、系统及服务器 | |
CN106933550A (zh) | 全局信息获取、处理及更新方法、装置和系统 | |
CN109634634A (zh) | 一种bmc固件升级方法、装置及终端 | |
CN110098979A (zh) | 一种基于区块链的短链接消息监听方法及装置 | |
CN107026879A (zh) | 一种数据缓存方法及后台应用系统 | |
CN109327511A (zh) | 一种基于http协议的数据请求方法和服务器 | |
CN103731465A (zh) | 分布式系统及其事务处理方法 | |
CN106056436A (zh) | 一种数据回退方法,装置及系统 | |
CN106603721A (zh) | 一种远程控制的方法及系统、一种远程控制客户端 | |
CN110413918A (zh) | 数据发送方法、装置、设备及存储介质 | |
CN109245941B (zh) | 一种服务补偿方法及装置 | |
CN109150981A (zh) | 区块链网络组网方法、装置、设备及计算机可读存储介质 | |
CN109118151A (zh) | 一种工单事务处理方法及工单事务处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |