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协议的系统开销相当大。并且,集中式事务管理器在事务管理的过程中,需要在多个节点之间进行协调,而各节点对锁资源的释放都必须等到事务最终提交后,事务执行时间延长也就意味着锁资源发生冲突的概率增加,当事务的并发量达到一定数量时,就会出现大量事务积压甚至出现死锁,系统性能就会严重下滑。因此,如何高效地实现异构系统的事务补偿,减小系统升级改造成本,减少系统性能损失成为当前亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种应用于异构系统的事务补偿方法和装置,能够高效地实现异构系统的事务补偿,解决异构系统环境下保持事务一致性的问题,同时减小系 ...
【技术保护点】
1.一种应用于异构系统的事务补偿方法,其特征在于,所述方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。
【技术特征摘要】
1.一种应用于异构系统的事务补偿方法,其特征在于,所述方法包括:接收应用发起方发起的服务请求;记录与所述服务请求对应的关键信息;在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常;对于运行时异常,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿;对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿。2.根据权利要求1所述的方法,其特征在于,在响应所述服务请求的过程中确定发生异常时,确定所述异常为运行时异常还是非运行时异常包括:在响应所述服务请求的过程中捕获到异常信息时,确定发生异常,并确定所述异常为运行时异常;在响应所述服务请求的过程中未接收到所述服务应答方反馈的信息或链接超时中断,但接收到所述应用发起方再次发起的所述服务请求时,确定发生异常,并确定所述异常为非运行时异常。3.根据权利要求2所述的方法,其特征在于,所述运行时异常包括应用操作失败异常、数据库操作错误异常或IO异常。4.根据权利要求1所述的方法,其特征在于,所述对于非运行时异常,获取与所述服务请求对应的服务应答方中的数据状态,并依据所述数据状态进行事务补偿包括:调用所述服务应答方的接口,获取所述服务应答方中的数据状态;依据所述数据状态,调用所述服务应答方的相应冲正交易进行事务补偿;待事务补偿完成后,向所述服务应答方再次发起所述服务请求。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当向所述服务应答方再次发起所述服务请求后,确定发生运行时异常时,获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿。6.根据权利要求1或5所述的方法,其特征在于,所述获取记录的与所述服务请求对应的关键信息,并依据所述记录的与所述服务请求对应的关键信息进行实时的事务补偿包括:获取记录的与所述服务请求对应的关键信息;根据记录的正向交易顺序,调用所述服务应答方的相应冲正交易进行实时的事务补偿。7.一种应用于异构系统的事务补偿装置,其...
【专利技术属性】
技术研发人员:杨声钢,高峰,王彬华,姜浩,赵思远,王东海,
申请(专利权)人:中国农业银行股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。