一种应用于异构系统的事务补偿方法和装置制造方法及图纸

技术编号:19547514 阅读:29 留言:0更新日期:2018-11-24 21:14
本发明专利技术提供一种应用于异构系统的事务补偿方法和装置。方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。本发明专利技术能够高效地实现异构系统的事务补偿,解决异构系统环境下保持事务一致性的问题,同时减小系统升级改造成本,以及减少系统性能损失。

A Transaction Compensation Method and Device for Heterogeneous Systems

The invention provides a transaction compensation method and device applied to heterogeneous systems. The methods include: receiving service requests initiated by application initiators; recording key information corresponding to the service requests; determining whether the exception is run-time or non-run-time when an exception occurs in response to the service requests; and obtaining the recorded service requests for run-time exceptions. The key information corresponding to the service request is recorded and the real-time transaction compensation is made according to the key information corresponding to the service request. For the non-runtime exception, the data status in the service responder corresponding to the service request is acquired and the transaction compensation is made according to the data status. The invention can efficiently realize transaction compensation of heterogeneous system, solve the problem of maintaining transaction consistency in heterogeneous system environment, reduce the cost of system upgrade and transformation, and reduce the loss of system performance.

【技术实现步骤摘要】
一种应用于异构系统的事务补偿方法和装置
本专利技术涉及计算机
,尤其涉及一种应用于异构系统的事务补偿方法和装置。
技术介绍
异构系统是由多个不同种类的企业应用平台或系统通过网络连接而成的计算机系统,主要体现在架构、数据库、服务器等方面的不同。随着企业信息化建设的不断深入,总是会面临异构系统之间的通信、集成与整合的需求,而从业务分析、成本效益的角度来讲,企业更希望在系统架构中尽可能地形成对原有系统的重用,而原有系统的重用势必需要解决在异构系统环境下保持事务一致性的问题。目前解决异构系统环境下事务一致性问题的最典型的方法是采取集中式事务管理器的基本设计模式。集中式事务管理器应用的是两阶段提交技术。要实现两阶段提交,首先全局事务的数据源必须支持XA特性,也就是说如果某个业务流程处于一个全局事务内,而且对多个系统有事务操作(如资源变更),则需要实现和配置所涉及系统的数据源(事务适配器、JMS或JDBC连接池)以支持XA,而且XA协议的系统开销相当大。并且,集中式事务管理器在事务管理的过程中,需要在多个节点之间进行协调,而各节点对锁资源的释放都必须等到事务最终提交后,事务执行时间延长也就意味着锁资源发生冲突的概率增加,当事务的并发量达到一定数量时,就会出现大量事务积压甚至出现死锁,系统性能就会严重下滑。因此,如何高效地实现异构系统的事务补偿,减小系统升级改造成本,减少系统性能损失成为当前亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种应用于异构系统的事务补偿方法和装置,能够高效地实现异构系统的事务补偿,解决异构系统环境下保持事务一致性的问题,同时减小系统升级改造成本,以及减少系统性能损失。技术方案如下:基于本专利技术的一方面,本专利技术提供一种应用于异构系统的事务补偿方法,所述方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。可选地,在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常包括:在响应所述服务请求的过程中捕获到异常信息时,确定发生异常,并确定所述异常为运行时异常;在响应所述服务请求的过程中未接收到所述服务应答方反馈的信息或链接超时中断,但接收到所述应用发起方再次发起的所述服务请求时,确定发生异常,并确定所述异常为非运行时异常。可选地,所述运行时异常包括应用操作失败异常、数据库操作错误异常或IO异常。可选地,所述对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿包括:调用所述服务应答方的接口,获取所述服务应答方中的数据状态;依据所述数据状态,调用所述服务应答方的相应冲正交易进行事务补偿;待事务补偿完成后,向所述服务应答方再次发起所述服务请求。可选地,所述方法还包括:当向所述服务应答方再次发起所述服务请求后,确定发生运行时异常时,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿。可选地,所述获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿包括:获取记录的与所述服务请求对应的关键信息;根据记录的正向交易顺序,调用所述服务应答方的相应冲正交易进行实时的事务补偿。基于本专利技术的另一方面,本专利技术还提供一种应用于异构系统的事务补偿装置,所述装置包括:接收单元,用于接收应用发起方发起的服务请求;缓存单元,用于记录与所述服务请求对应的关键信息;异常监测确定单元,用于在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;运行时异常处理单元,用于对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;非运行时异常处理单元,用于对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。可选地,所述异常监测确定单元具体用于:在响应所述服务请求的过程中捕获到异常信息时,确定发生异常,并确定所述异常为运行时异常;在响应所述服务请求的过程中所述接收单元未接收到所述服务应答方反馈的信息或链接超时中断,但接收到所述应用发起方再次发起的所述服务请求时,确定发生异常,并确定所述异常为非运行时异常。可选地,所述运行时异常包括应用操作失败异常、数据库操作错误异常或IO异常。可选地,所述非运行时异常处理单元包括:数据状态获取子单元,用于调用所述服务应答方的接口,获取所述服务应答方中的数据状态;第一事务补偿处理子单元,用于依据所述数据状态,调用所述服务应答方的相应冲正交易进行事务补偿;发送子单元,用于待事务补偿完成后,向所述服务应答方再次发起所述服务请求。可选地,所述运行时异常处理单元还用于:当所述非运行时异常处理单元向所述服务应答方再次发起所述服务请求后,所述异常监测确定单元确定发生运行时异常时,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿。可选地,所述运行时异常处理单元包括:关键信息获取子单元,用于获取记录的与所述服务请求对应的关键信息;第二事务补偿处理子单元,用于根据记录的正向交易顺序,调用所述服务应答方的相应冲正交易进行实时的事务补偿。本专利技术提供的应用于异构系统的事务补偿方法和装置中,在接收到应用发起方发起的服务请求后,首先会记录与服务请求对应的关键信息,通过对关键信息的读取,能够识别所有跨系统访问的交易场景。本专利技术实时监测异常的发生,并在监测到异常发生后,确定所述异常为运行时异常还是非运行时异常。对于运行时异常,本专利技术获取记录的与该服务请求对应的关键信息,并依据该关键信息进行实时的事务补偿,有效解决了应用操作失败异常、数据库操作错误异常、IO异常等各种运行时异常导致的异构系统环境下事务不一致性的问题;对于非运行时异常,本专利技术获取与该服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿,有效解决了异构系统环境下由于网络异常、宕机等原因引起的事务不一致问题。本专利技术将异常分为运行时异常和非运行时异常,并针对这两种异常分别提出了两种对应的事务补偿方法,能够高效地实现异构系统的事务补偿,解决了异构系统环境下保持事务一致性的问题。且,本专利技术提供的应用于异构系统的事务补偿方法和装置可以复用现有系统资源,在现有企业各应用系统资源重用的基础上,尽可能地减小系统升级改造成本、缩短研发周期、保障了系统的稳定运行,实现跨应用系统数据访问过程中保持事务一致。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术中跨系统服务访问过程流本文档来自技高网...

【技术保护点】
1.一种应用于异构系统的事务补偿方法,其特征在于,所述方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。

【技术特征摘要】
1.一种应用于异构系统的事务补偿方法,其特征在于,所述方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。2.根据权利要求1所述的方法,其特征在于,在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常包括:在响应所述服务请求的过程中捕获到异常信息时,确定发生异常,并确定所述异常为运行时异常;在响应所述服务请求的过程中未接收到所述服务应答方反馈的信息或链接超时中断,但接收到所述应用发起方再次发起的所述服务请求时,确定发生异常,并确定所述异常为非运行时异常。3.根据权利要求2所述的方法,其特征在于,所述运行时异常包括应用操作失败异常、数据库操作错误异常或IO异常。4.根据权利要求1所述的方法,其特征在于,所述对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿包括:调用所述服务应答方的接口,获取所述服务应答方中的数据状态;依据所述数据状态,调用所述服务应答方的相应冲正交易进行事务补偿;待事务补偿完成后,向所述服务应答方再次发起所述服务请求。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当向所述服务应答方再次发起所述服务请求后,确定发生运行时异常时,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿。6.根据权利要求1或5所述的方法,其特征在于,所述获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿包括:获取记录的与所述服务请求对应的关键信息;根据记录的正向交易顺序,调用所述服务应答方的相应冲正交易进行实时的事务补偿。7.一种应用于异构系统的事务补偿装置,其...

【专利技术属性】
技术研发人员:杨声钢高峰王彬华姜浩赵思远王东海
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1