CN113342481B - 一种事务状态的确认方法及装置 - Google Patents
一种事务状态的确认方法及装置 Download PDFInfo
- Publication number
- CN113342481B CN113342481B CN202110767957.9A CN202110767957A CN113342481B CN 113342481 B CN113342481 B CN 113342481B CN 202110767957 A CN202110767957 A CN 202110767957A CN 113342481 B CN113342481 B CN 113342481B
- Authority
- CN
- China
- Prior art keywords
- transaction
- state
- suspicious
- host
- transaction state
- 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
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000012790 confirmation Methods 0.000 title claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 134
- 230000008569 process Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010200 validation analysis Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000009466 transformation Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000000725 suspension Substances 0.000 description 5
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/144—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种事务状态的确认方法及装置,可用于金融领域或其他技术领域。所述方法包括:获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志;若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。所述装置用于执行上述方法。本发明实施例提供的事务状态的确认方法及装置,能够在实现主机空回滚基础上对外提供可疑事务的确认机制,减少了系统访问性能开销。
Description
技术领域
本发明涉及金融领域或其他技术领域,具体涉及一种事务状态的确认方法及装置。
背景技术
受国家信息安全“自主可控”政策的号召,在我行国产化浪潮的推动下,对公存款产品的IT架构“去IOE化”工作也如火如荼的开展起来。去IOE化,即将依托技术平台由IBM主机、DB2数据库、DS8000存储设备等产品的传统集中式架构转向面向“互联网+”的安全可控的分布式架构。
在系统架构转型过程中,为保证对外提供稳定高质的服务,对公存款分布式平台服务在进行业务处理时存在两种分支场景:一是在分布式平台服务进行业务处理;二是调用大型主机应用服务,使用旧流程进行业务处理,平台服务结合主机服务返回的处理结果对外返回业务状态。
在第二种分支场景下,主机服务作为纳入分布式事务管理的分支事务,应满足空回滚、防悬挂设计以实现事务一致性,对于结算类交易,还需要对外提供疑账确认机制,用于实现账务一致性。
事务的空回滚是指当事务的补偿交易早于正交易时,应允许事务正常闭环。事务的防悬挂是指空回滚后,当再接到正交易时,业务应用应能拒绝处理返回报错,或能通过扫描方式自动修复最终状态。如果在主机服务按照分布式平台的设计模式实现以上要求,首先是会增加访问数据次数,增加主机性能开销,另一方面改造内容涉及范围广,改造成本大,实施起来较为困难。
发明内容
针对现有技术中的问题,本发明实施例提供一种事务状态的确认方法及装置,能够至少部分地解决现有技术中存在的问题。
第一方面,本发明提出一种事务状态的确认方法,所述方法包括:获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。
可选的,所述根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志包括:根据所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,创建一笔所述可疑事务处理成功的日志;将所述可疑事务处理成功的日志写入所述主机事务管理库中。
可选的,所述根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态包括:若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败。
可选的,若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功。
可选的,若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
第二方面,本发明提供一种事务状态的确认方法,所述方法包括:将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取可疑事务在主机端的事务状态;根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
可选的,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:若所述可疑事务为补偿交易事务,则将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
可选的,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:若所述可疑事务为正交易事务,则在所述正交易事务在主机端的事务状态为处理成功时,根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
可选的,所述根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态包括:在分布式平台事务登记库中,查找具有所述补偿交易事务的事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理,则确定所述正交易事务的实际事务状态为处理成功;若所述事务状态日志中所记录的补偿交易事务的事务状态为处理成功,则确定所述正交易事务的实际事务状态为处理失败。
可选的,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:若所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败,则根据所述补偿交易事务的事务标识,生成补偿交易事务的事务状态确认请求;将所述补偿交易事务的事务状态确认请求发送给主机端,以使主机端根据所述事务状态确认请求确认所述补偿交易事务在主机端的事务状态,并将所述补偿交易事务在主机端的事务状态发送给分布式平台;接收所述补偿交易事务在主机端的事务状态;根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态包括:若所述补偿交易事务在主机端的事务状态为处理失败,则确定所述正交易事务的实际事务状态为处理成功;若所述补偿交易事务在主机端的事务状态为处理中,则确定所述正交易事务的实际事务状态为主机可疑。
第三方面,本发明提供一种事务状态的确认装置,所述装置包括:获取模块,用于获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;登记模块,用于根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;查找模块,用于若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;确定模块,用于根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。
可选的,所述登记模块具体用于:根据所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,创建一笔所述可疑事务处理成功的日志;将所述可疑事务处理成功的日志写入所述主机事务管理库中。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败。
可选的,所述确定模块具体用于:若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
第四方面,本发明提供一种事务状态的确认装置,所述装置包括:发送模块,用于将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取模块,用于获取可疑事务在主机端的事务状态;确定模块,用于根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
可选的,所述确定模块具体用于:若所述可疑事务为补偿交易事务,则将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
可选的,所述确定模块具体用于:若所述可疑事务为正交易事务,则在所述正交易事务在主机端的事务状态为处理成功时,根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块具体用于:在分布式平台事务登记库中,查找具有所述补偿交易事务的事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理,则确定所述正交易事务的实际事务状态为处理成功;若所述事务状态日志中所记录的补偿交易事务的事务状态为处理成功,则确定所述正交易事务的实际事务状态为处理失败。
可选的,所述确定模块根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:若所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败,则根据所述补偿交易事务的事务标识,生成补偿交易事务的事务状态确认请求;将所述补偿交易事务的事务状态确认请求发送给主机端,以使主机端根据所述事务状态确认请求确认所述补偿交易事务在主机端的事务状态,并将所述补偿交易事务在主机端的事务状态发送给分布式平台;接收所述补偿交易事务在主机端的事务状态;根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态包括:若所述补偿交易事务在主机端的事务状态为处理失败,则确定所述正交易事务的实际事务状态为处理成功;若所述补偿交易事务在主机端的事务状态为处理中,则确定所述正交易事务的实际事务状态为主机可疑。
第五方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述事务状态的确认方法的步骤。
第六方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述事务状态的确认方法的步骤。
本发明实施例提供的事务状态的确认方法及装置,以“主机事务管理库中的事务状态日志与事务为一对一关系,每个事务标识唯一对应主机事务管理库中的一条日志记录”的设计特性为基础,实现主机应用服务接入分布式平台事务的空回滚、防悬挂功能,并在主机空回滚基础上对外提供可疑事务的确认机制,相较于参照分布式设计模式进行主机服务的事务设计,本方案能够尽可能地减少系统访问性能开销,大幅度减少系统改造的复杂程度和人力成本,帮助应用在系统架构转型过程中将异构系统接入分布式事务框架。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明第一实施例提供的事务状态的确认方法的流程示意图。
图2是本发明第二实施例提供的事务状态确认方法的部分流程示意图。
图3是本发明第三实施例提供的事务状态的确认方法的部分流程示意图。
图4是本发明第四实施例提供的事务状态的确认方法的流程示意图。
图5是本发明第五实施例提供的事务状态的确认方法的部分流程示意图。
图6是本发明第六实施例提供的分布式平台事务管理模块与主机端的交互关系示意图。
图7是本发明第七实施例提供的分布式平台事务管理模块和主机端对事务状态的确认方法的总体流程示意图。
图8是本发明第八实施例提供的事务状态的确认装置的结构示意图。
图9是本发明第九实施例提供的事务状态的确认装置的结构示意图。
图10是本发明第十实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供的事务状态的确认方法的执行主体包括但不限于计算机。
图1是本发明一实施例提供的事务状态的确认方法的流程示意图,可以应用于主机端,如图1所示,本发明实施例提供的事务状态的确认方法,包括:
S101、获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;
本步骤,所述主机端可以为分布式平台系统之外的其他大型主机,该主机端可利用自身业务处理流程对事务进行处理;所述可疑事务可以包括正交易事务以及补偿交易事务,所述可疑事务的事务状态确认请求可以是分布式平台的事务管理模块发送的,所述分布式平台的事务管理模块用于对所述分布式平台处理的事务进行管理;在分布式平台的事务管理模块调用主机服务进行事务处理过程中,由于网络波动或者系统故障等原因造成主机服务执行结果不能正确返回到分布式平台,当进行补偿交易等需要对主机服务的处理状态进行确认的场景下,可将该需对主机服务的处理状态进行确认的事务作为可疑事务,调用主机端对该可疑事务的事务状态进行确认。
所述可疑事务的事务标识与所述可疑事务唯一对应,区别于其他事务的事务标识;所述事务标识具体可以为事务的事务编号。
S102、根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;
本步骤,主机可以在获取对事务的事务处理请求之时,在主机事务管理库中登记一笔所述事务的事务状态日志;所述事务状态日志中可以包括所述事务的事务标识、以及所述事务的处理状态,在所述事务的处理状态发生变化时,可以对所述事务的事务状态日志中的事务状态进行更新,但,所述主机事务管理库拒绝对所述事务的事务状态日志的重新写入,也即“事务状态日志与事务为一对一关系,每个事务唯一对应主机事务管理库中一条日志记录”。
所述主机事务管理库中的每条日志的格式可以如下:
若所述可疑事务处理成功的日志在所述主机事务管理库中登记成功,则表示该条日志在原事务登记事务状态日志前优先进行了登记,这样的记录可称为空回滚记录,为与正常事务记录区分,可在该条日志中增加标志字段标记空回滚记录(例如使用ROLLBACK空回滚操作标识进行标记)。基于空回滚机制,当原事务在网络或系统环境等恢复后重新发起调用时,因上送的事务编号与空回滚记录的事务编号相同,导致登记事务状态日志的主键冲突,从而拒绝处理,实现防悬挂。
S103、若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;
本步骤,若所述可疑事务处理成功的日志登记失败,则表示所述主机事务管理库中优先登记了原事务的事务状态日志,这时,可以以所述可疑事务的事务标识为索引,在所述主机事务管理库中查找具有所述事务标识的事务状态日志,以获取所述可疑事务在主机端的事务状态。
S104、根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。
本步骤,所述事务状态可以包括处理成功状态以及处理失败状态,在所述可疑事务为结算类交易事务时,所述处理成功状态表示处理成功、处理失败状态表示交易失败。所述主机事务管理库登记的所述可疑事务的事务状态日志中所记录的事务状态,可反应出所述可疑事务在主机端的事务状态,因此,可根据所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。
本发明实施例提供的一种事务状态的确认方法,以“主机事务管理库中的事务状态日志与事务为一对一关系,每个事务标识唯一对应主机事务管理库中的一条日志记录”的设计特性为基础,实现主机应用服务接入分布式平台事务的空回滚、防悬挂功能,并在主机空回滚基础上对外提供可疑事务的确认机制,相较于参照分布式设计模式进行主机服务的事务设计,本方案能够尽可能地减少系统访问性能开销,大幅度减少系统改造的复杂程度和人力成本,帮助应用在系统架构转型过程中将异构系统接入分布式事务框架。
可选的,在上述实施例中,所述方法还可以包括:将所述可疑事务在主机端的事务状态发送给分布式平台,以使分布式平台根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
本实施例,由于所述可疑事务的实际事务状态与所述可疑事务在主机端的事务状态有关,因此,所述分布式平台可以根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。例如,在所述可疑事务为正交易事务时,所述正交易事务的实际事务状态与所述正交易事务在主机端的事务状态、以及所述正交易事务的补偿交易事务的事务状态相关,在所述可疑事物为补偿交易事务时,所述补偿交易事务的实际事务状态与所述补偿交易事务在主机端的事务状态相关。
如图2所示,可选的,所述根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志可以包括:
S1021、根据所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,创建一笔所述可疑事务处理成功的日志;
本步骤,事务的处理成功状态和处理失败状态可分别具有相应的标识,以对事务的事务状态进行区分;创建的所述可疑事务处理成功的日志中包括所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,所述空回滚操作标识可将本条日志(空回滚记录)与正常事务的日志进行区分。
S1022、将所述可疑事务处理成功的日志写入所述主机事务管理库中。
本步骤,由于对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志,因此,若所述主机事务管理库中已存在所述可疑事务的事务状态日志,那么所述主机事务管理库则拒绝所述可疑事务处理成功的日志的写入;若所述主机事务管理库中不存在所述可疑事务的事务状态日志,那么所述可疑事务处理成功的日志可以成功写入所述主机事务管理库中。
可选的,在上述实施例中,若在所述主机事务管理库中查找不到具有所述事务标识的事务状态日志,则可确定所述可疑事务的事务状态为处理中。
如图3所示,可选的,所述根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态包括:
S1041、若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;
本步骤,由于所述主机事务管理库中所登记的事务状态日志可能是空回滚操作登记的日志,也有可能是正常事务登记的日志,且空回滚操作登记的日志中所记录的事务状态为处理成功,因此,当所述事务状态日志中所记录的事务状态为处理成功时,则需要进一步判断所述事务状态日志中是否具有空回滚操作标识,才可确定所述可疑事务在主机端的事务状态。
S1042、若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败。
本步骤,在所述事务状态日志中具有空回滚操作标识的情况下,则表示该条日志为空回滚操作登记的日志,也即空回滚操作早于主机端对所述可疑事务的处理操作,此时可确定主机端对所述可疑事务处理失败,即可确定所述可疑事务在主机端的事务状态为处理失败。
可选的,在上述实施例中,若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功。
本实施例,在所述事务状态日志中不具有空回滚操作标识的情况下,则表示该条日志为正常事务登记的日志,此时可确定主机端对所述可疑事务处理失败成功,即可确定所述可疑事务在主机端的事务状态为处理成功。
可选的,在上述实施例中,若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
本实施例,由于空回滚操作登记的日志中所记录的事务状态为处理成功,因此,当所述事务状态日志中所记录的事务状态为处理失败时,则说明该日志为正常事务登记的日志,此时可以确定所述可疑事务在主机端的事务状态为处理失败。
图4是本发明一实施例提供的事务状态的确认方法的流程示意图,可以应用于分布式平台的事务管理模块,如图4所示,本发明实施例提供的事务状态的确认方法,包括:
S201、将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;
本步骤,所述可疑事务可以包括正交易事务以及补偿交易事务,在分布式平台调用主机服务进行事务处理,由于网络波动或者系统故障等原因造成主机服务执行结果不能正确返回到分布式平台,当进行补偿交易等需要对主机服务的处理状态进行确认的场景下,分布式平台可将该需对主机服务的处理状态进行确认的事务作为可疑事务,调用主机端对该可疑事务的事务状态进行确认。
主机端对所述可疑事务的事务状态的确认方法,可参见上述应用于主机端的事务状态的确认方法,在此不再赘述。
S202、获取可疑事务在主机端的事务状态;
本步骤,所述可疑事务在主机端的事务状态可以包括处理成功状态、处理失败状态。
S203、根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
本步骤,由于所述可疑事务的实际事务状态与所述可疑事务在主机端的事务状态有关,因此,可以根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。例如,在所述可疑事务为正交易事务时,所述正交易事务的实际事务状态与所述正交易事务在主机端的事务状态、以及所述正交易事务的补偿交易事务的事务状态相关,在所述可疑事物为补偿交易事务时,所述补偿交易事务的实际事务状态与所述补偿交易事务在主机端的事务状态相关。
本发明实施例提供的一种事务状态的确认方法,利用主机端对外提供可疑事务的确认机制,确认可疑事务在主机端的事务状态,并根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。相较于参照分布式设计模式进行主机服务的事务设计,本方案能够尽可能地减少系统访问性能开销,大幅度减少系统改造的复杂程度和人力成本,帮助应用在系统架构转型过程中将异构系统接入分布式事务框架。
可选的,在上述实施例中,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:若所述可疑事务为补偿交易事务,则将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
本实施例,在所述可疑事务为补偿交易事务时,则可以直接将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
可选的,在上述实施例中,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:若所述可疑事务为正交易事务,则在所述正交易事务在主机端的事务状态为处理成功时,根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
本实施例,当正交易事务在主机端的事务状态为处理成功时,则所述正交易事务的实际事务状态还与所述正交易事务的补偿交易事务的实际事务状态相关,因此,在所述正交易事务在主机端的事务状态为处理成功时,还需根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
当正交易事务在主机端的事务状态为处理失败时,则可以直接确定所述正交易事务的实际事务状态为处理失败。
如图5所示,可选的,在上述实施例中,所述根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态包括:
S2031、在分布式平台事务登记库中,查找具有所述补偿交易事务的事务标识的事务状态日志;
本步骤,所述分布式平台事务登记库中登记有分布式平台调用主机处理的事务的事务状态日志,所述日志中可以包括以下字段:正交易事务标识、正交易事务的事务状态、补偿交易标识和补偿交易事务的事务状态。也即所述正交易事务的事务状态可以与其自身的补偿交易事务的事务状态存储在同一条日志中。这时,所述查找具有所述补偿交易事务的事务标识的事务状态日志,具体可以包括:查找所述正交易事务的事务状态日志。所述分布式平台事务登记库中每条日志的格式可以如下:
所述分布式平台事务登记库中所登记的正交易事务的事务状态以及补偿交易事务的事务状态可以由主机事务管理库维护,在正常情况下所述分布式平台事务登记库中所登记的正交易事务的事务状态以及补偿交易事务的事务状态,与主机事务管理库所记录的相应信息是一致的。
S2032、根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态。
本步骤,所述补偿交易事务的事务状态可以包括:未处理、处理成功、主机处理中、主机处理失败/可疑。所述补偿交易事务在不同的事务状态下,决定了所述正交易事务不同的实际事务状态。
可选的,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态可以包括:若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理,则确定所述正交易事务的实际事务状态为处理成功;若所述事务状态日志中所记录的补偿交易事务的事务状态为处理成功,则确定所述正交易事务的实际事务状态为处理失败。
本实施例,若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理、或处理成功时,则所述补偿交易事务的实际事务状态与所述事务状态日志中所记录的补偿交易事务的事务状态一致;这时,在正交易事务在主机端的处理成功、补偿交易事务未处理的情况下,可确定正交易事务的实际事务状态为处理成功(处理成功);在正交易事务在主机端的处理成功、补偿交易事务处理成功的情况下,可确定正交易事务的实际事务状态为处理失败(交易失败)。
可选的,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:
若所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败,则根据所述补偿交易事务的事务标识,生成补偿交易事务的事务状态确认请求;
将所述补偿交易事务的事务状态确认请求发送给主机端,以使主机端根据所述事务状态确认请求确认所述补偿交易事务在主机端的事务状态,并将所述补偿交易事务在主机端的事务状态发送给分布式平台;
接收所述补偿交易事务在主机端的事务状态;
根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态。
本实施例,在所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败时,则需要调用主机端进行疑账查询,即调用主机端对所述补偿交易事务的事务状态进行确认,在确认所述补偿交易事务在主机端的事务状态之后,根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态即可。
调用主机端对所述补偿交易事务的事务状态进行确认的具体过程可参见上述实施例提供的应用于主机端的事务状态的确认方法。
可选的,在上述实施例中,所述根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态可以包括:若所述补偿交易事务在主机端的事务状态为处理失败,则确定所述正交易事务的实际事务状态为处理成功;若所述补偿交易事务在主机端的事务状态为处理中,则确定所述正交易事务的实际事务状态为主机可疑。
本实施例,在正交易事务在主机端的处理成功、补偿交易事务处理失败的情况下,可确定正交易事务的实际事务状态为处理成功;在所述补偿交易事务在主机端的事务状态仍为处理中的情况下,则可确定所述正交易事务的实际事务状态为主机可疑。
为更好的理解本发明,下面通过一具体实施例对本发明中分布式平台事务管理模块和主机端对事务状态的确认方法的总体流程进行说明。
本实施例提供的分布式平台事务管理模块与主机端之间的交互关系如图6所示,所述分布式平台事务管理模块和主机端对事务状态的确认方法的总体流程如图7所示:
S301、分布式平台事务管理模块获取请求端发送的交易请求;
本步骤,所述交易请求可以是正交易事务处理请求,也可以是疑账确认请求,所述疑账确认请求可以为正交易事务的疑账确认请求,也可以为补偿交易事务的疑账确认请求,本实施例中以正交易事务的疑账确认请求为例,在以下步骤中对正交易事务的疑账确认请求的处理进行说明;
S302、判断所述交易请求是否为正交易事务处理请求;
S303、若所述交易请求为正交易事务处理请求,分布式平台事务管理模块在分布式平台事务登记库中登记一笔“正交易事务的事务状态”为处理中的日志;
S304、分布式平台事务管理模块调用主机端对所述正交易事务处理请求进行处理时,主机端在主机事务登记库中登记一笔此次交易事件的日志。
S305、主机端在对所述正交易事务处理完成后返回交易结果,分布式平台根据所述交易结果更新原先登记的日志中“正交易事务的事务状态”。
S306、分布式平台事务管理模块根据分布式平台事务登记库中此次交易事件的记录,返回此次交易的交易状态信息给请求端。
在步骤S302之后,所述方法还包括:
S307、若所述交易请求不是正交易事务处理请求,则判断所述交易请求是否为疑账确认请求;
S308、若所述交易请求为疑账确认请求,则在分布式平台事务登记库中查询调用主机处理的事务的日志;
S309、判断调用主机处理的事务的日志中是否存在所述疑账事务的记录;
S310、若分布式平台事务登记库中存在该疑账事务的记录,则判断该疑账事务的事务状态是否为主机可疑;
S311、若该疑账事务的事务状态为主机可疑,则调用主机端的疑账确认机制对该疑账事务的事务状态进行确认;
S312、在主机端的疑账确认机制确定该疑账事务的事务状态之后,判断该疑账事务的事务状态是否为交易成功;
S313、该疑账事务的事务状态为交易成功,则继续判断该疑账事务是否为正交易事务;
S314、若该疑账事务为正交易事务,则在分布式平台事务登记库中查询该正交易事务的补偿交易事务的补偿状态;
S315、判断该正交易事务的补偿交易事务的补偿状态是否为未补偿状态;
S316、若该正交易事务的补偿交易事务的补偿状态不是未补偿状态,则继续判断所述正交易事务的补偿交易事务的补偿状态是否为补偿成功;
在所述疑账事务的事务状态不是交易成功、该正交易事务的补偿交易事务的补偿状态为未补偿、或者在该正交易事务的补偿交易事务的补偿状态不是补偿成功时,执行上述步骤S306。在上述三种情况下,返回给请求端的具体交易状态信息可参见上述应用于分布式平台的事务状态的确认方法中的具体实施例。
在上述步骤S309之后,所述方法还包括:
S317、若分布式平台事务登记库中不存在该疑账事务的记录,则在所述分布式平台事务登记库中插入一条该疑账事务交易失败的记录;并继续执行步骤S306。此处返回给请求端的所述疑账事务的交易状态为交易失败。
在上述步骤S310之后,所述方法还包括:
S318、判断该疑账事务的事务状态是否为交易成功;
S319、若该疑账事务的事务状态不是交易成功,则继续判断所述疑账事务的事务状态是否为交易失败;若所述疑账事务的事务状态为交易失败,执行上述步骤S306。此处返回给请求端的所述疑账事务的交易状态为交易失败。
在上述步骤S318之后,所述方法还包括:若该疑账事务的事务状态为交易成功,则继续执行上述步骤S314。
图8是本发明一实施例提供的事务状态的确认装置的结构示意图,如图8所示,本发明实施例提供的事务状态的确认装置包括:获取模块41,用于获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;登记模块42,用于根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;查找模块43,用于若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;确定模块44,用于根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。
本发明实施例提供的一种事务状态的确认装置,以“主机事务管理库中的事务状态日志与事务为一对一关系,每个事务标识唯一对应主机事务管理库中的一条日志记录”的设计特性为基础,实现主机应用服务接入分布式平台事务的空回滚、防悬挂功能,并在主机空回滚基础上对外提供可疑事务的确认机制,相较于参照分布式设计模式进行主机服务的事务设计,本方案能够尽可能地减少系统访问性能开销,大幅度减少系统改造的复杂程度和人力成本,帮助应用在系统架构转型过程中将异构系统接入分布式事务框架。
可选的,所述登记模块具体用于:根据所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,创建一笔所述可疑事务处理成功的日志;将所述可疑事务处理成功的日志写入所述主机事务管理库中。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败。
可选的,所述确定模块具体用于:若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
本发明实施例提供的装置的实施例具体可以用于执行上述应用于主机端的事务状态的确认方法的各实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图9是本发明一实施例提供的事务状态的确认装置的结构示意图,如图9所示,本发明实施例提供的事务状态的确认装置包括:发送模块51,用于将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取模块52,用于获取可疑事务在主机端的事务状态;确定模块53,用于根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
本发明实施例提供的一种事务状态的确认装置,利用主机端对外提供可疑事务的确认机制,确认可疑事务在主机端的事务状态,并根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。相较于参照分布式设计模式进行主机服务的事务设计,本方案能够尽可能地减少系统访问性能开销,大幅度减少系统改造的复杂程度和人力成本,帮助应用在系统架构转型过程中将异构系统接入分布式事务框架。
可选的,所述确定模块具体用于:若所述可疑事务为补偿交易事务,则将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
可选的,所述确定模块具体用于:若所述可疑事务为正交易事务,则在所述正交易事务在主机端的事务状态为处理成功时,根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块具体用于:在分布式平台事务登记库中,查找具有所述补偿交易事务的事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块具体用于:若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理,则确定所述正交易事务的实际事务状态为处理成功;若所述事务状态日志中所记录的补偿交易事务的事务状态为处理成功,则确定所述正交易事务的实际事务状态为处理失败。
可选的,所述确定模块根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:若所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败,则根据所述补偿交易事务的事务标识,生成补偿交易事务的事务状态确认请求;将所述补偿交易事务的事务状态确认请求发送给主机端,以使主机端根据所述事务状态确认请求确认所述补偿交易事务在主机端的事务状态,并将所述补偿交易事务在主机端的事务状态发送给分布式平台;接收所述补偿交易事务在主机端的事务状态;根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态。
可选的,所述确定模块根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态包括:若所述补偿交易事务在主机端的事务状态为处理失败,则确定所述正交易事务的实际事务状态为处理成功;若所述补偿交易事务在主机端的事务状态为处理中,则确定所述正交易事务的实际事务状态为主机可疑。
本发明实施例提供的装置的实施例具体可以用于执行上述应用于分布式平台事务管理模块的事务状态的确认方法的各实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
需要说明的是,本发明实施例提供的事务状态的确认方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对事务状态的确认方法及装置的应用领域不做限定。
图10为本发明一实施例提供的电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)601、通信接口(Communications Interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行如下方法:获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。或执行如下方法:将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取可疑事务在主机端的事务状态;根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。或执行如下方法:将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取可疑事务在主机端的事务状态;根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务处理库中仅登记一笔所述事务的事务状态日志;若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态。或执行如下方法:将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,确认所述可疑事务在主机端的事务状态;获取可疑事务在主机端的事务状态;根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种事务状态的确认方法,其特征在于,所述方法包括:
获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;
根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务管理库中仅登记一笔所述事务的事务状态日志;
若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;
根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态;
所述根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态包括:
若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;
若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败;
若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功;
若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
2.根据权利要求1所述的方法,其特征在于,所述根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志包括:
根据所述可疑事务的事务标识、处理成功标识、以及空回滚操作标识,创建一笔所述可疑事务处理成功的日志;
将所述可疑事务处理成功的日志写入所述主机事务管理库中。
3.一种事务状态的确认方法,其特征在于,所述方法包括:
将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,基于权利要求1至2任一项所述的事务状态的确认方法,确认所述可疑事务在主机端的事务状态;
获取可疑事务在主机端的事务状态;
根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
4.根据权利要求3所述的方法,其特征在于,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:
若所述可疑事务为补偿交易事务,则将所述补偿交易事务在主机端的事务状态作为所述补偿交易事务的实际事务状态。
5.根据权利要求3所述的方法,其特征在于,所述根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态包括:
若所述可疑事务为正交易事务,则在所述正交易事务在主机端的事务状态为处理成功时,根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态。
6.根据权利要求5所述的方法,其特征在于,所述根据所述正交易事务的补偿交易事务的实际事务状态,确定所述正交易事务的实际事务状态包括:
在分布式平台事务登记库中,查找具有所述补偿交易事务的事务标识的事务状态日志;
根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态。
7.根据权利要求6所述的方法,其特征在于,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:
若所述事务状态日志中所记录的补偿交易事务的事务状态为未处理,则确定所述正交易事务的实际事务状态为处理成功;
若所述事务状态日志中所记录的补偿交易事务的事务状态为处理成功,则确定所述正交易事务的实际事务状态为处理失败。
8.根据权利要求6所述的方法,其特征在于,所述根据查找到的所述事务状态日志中所记录的补偿交易事务的事务状态,确定所述正交易事务的实际事务状态包括:
若所述事务状态日志中所记录的补偿交易事务的事务状态为处理中或处理失败,则根据所述补偿交易事务的事务标识,生成补偿交易事务的事务状态确认请求;
将所述补偿交易事务的事务状态确认请求发送给主机端,以使主机端根据所述事务状态确认请求确认所述补偿交易事务在主机端的事务状态,并将所述补偿交易事务在主机端的事务状态发送给分布式平台;
接收所述补偿交易事务在主机端的事务状态;
根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态。
9.根据权利要求8所述的方法,其特征在于,所述根据所述补偿交易事务在主机端的事务状态,确定所述正交易事务的实际事务状态包括:
若所述补偿交易事务在主机端的事务状态为处理失败,则确定所述正交易事务的实际事务状态为处理成功;
若所述补偿交易事务在主机端的事务状态为处理中,则确定所述正交易事务的实际事务状态为主机可疑。
10.一种事务状态的确认装置,其特征在于,所述装置包括:
获取模块,用于获取可疑事务的事务状态确认请求,所述请求中包括可疑事务的事务标识;
登记模块,用于根据所述可疑事务的事务标识,在主机事务管理库中登记一笔所述可疑事务处理成功的日志,其中,所述主机事务管理库中记录有由所述主机处理的事务的事务状态日志,且对于同一个事务,所述主机事务管理库中仅登记一笔所述事务的事务状态日志;
查找模块,用于若所述可疑事务处理成功的日志登记失败,则在所述主机事务管理库中查找具有所述事务标识的事务状态日志;
确定模块,用于根据查找到的所述事务状态日志中所记录的所述可疑事务的事务状态,确定所述可疑事务在主机端的事务状态;
所述确定模块具体用于:
若所述事务状态日志中所记录的事务状态为处理成功,则判断所述事务状态日志中是否具有空回滚操作标识;
若所述事务状态日志中具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理失败;
若所述事务状态日志中不具有空回滚操作标识,则确定所述可疑事务在主机端的事务状态为处理成功;
若所述事务状态日志中所记录的事务状态为处理失败,则确定所述可疑事务在主机端的事务状态为处理失败。
11.一种事务状态的确认装置,其特征在于,所述装置包括:
发送模块,用于将可疑事务的事务状态确认请求发送给主机端,以使主机端根据所述可疑事务的事务状态确认请求,基于权利要求1至2任一项所述的事务状态的确认方法,确认所述可疑事务在主机端的事务状态;
获取模块,用于获取可疑事务在主机端的事务状态;
确定模块,用于根据所述可疑事务在主机端的事务状态,确定所述可疑事务的实际事务状态。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2任一项所述方法的步骤、或3至9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至2任一项所述方法的步骤、或3至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110767957.9A CN113342481B (zh) | 2021-07-07 | 2021-07-07 | 一种事务状态的确认方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110767957.9A CN113342481B (zh) | 2021-07-07 | 2021-07-07 | 一种事务状态的确认方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342481A CN113342481A (zh) | 2021-09-03 |
CN113342481B true CN113342481B (zh) | 2024-03-26 |
Family
ID=77482962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110767957.9A Active CN113342481B (zh) | 2021-07-07 | 2021-07-07 | 一种事务状态的确认方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342481B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126481B (zh) * | 2023-02-06 | 2023-08-25 | 安芯网盾(北京)科技有限公司 | 分布式长事务的处理方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844014A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 分布式事务防悬挂的实现方法和装置 |
CN107622119A (zh) * | 2017-09-21 | 2018-01-23 | 深圳智盾信息技术有限公司 | 一种分布式跨数据库保持事务一致性的方法及系统 |
WO2018103318A1 (zh) * | 2016-12-06 | 2018-06-14 | 上海壹账通金融科技有限公司 | 分布式事务处理方法和系统 |
CN108924184A (zh) * | 2018-05-31 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 数据处理方法和服务器 |
CN110532066A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种事务一致性的实现方法及系统 |
CN111522631A (zh) * | 2020-03-23 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 分布式事务处理方法、装置、服务器及介质 |
CN112416576A (zh) * | 2020-11-04 | 2021-02-26 | 北京人大金仓信息技术股份有限公司 | 一种数据库负载均衡的方法及装置 |
-
2021
- 2021-07-07 CN CN202110767957.9A patent/CN113342481B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844014A (zh) * | 2015-12-07 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 分布式事务防悬挂的实现方法和装置 |
WO2018103318A1 (zh) * | 2016-12-06 | 2018-06-14 | 上海壹账通金融科技有限公司 | 分布式事务处理方法和系统 |
CN107622119A (zh) * | 2017-09-21 | 2018-01-23 | 深圳智盾信息技术有限公司 | 一种分布式跨数据库保持事务一致性的方法及系统 |
CN110532066A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种事务一致性的实现方法及系统 |
CN108924184A (zh) * | 2018-05-31 | 2018-11-30 | 阿里巴巴集团控股有限公司 | 数据处理方法和服务器 |
CN111522631A (zh) * | 2020-03-23 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 分布式事务处理方法、装置、服务器及介质 |
CN112416576A (zh) * | 2020-11-04 | 2021-02-26 | 北京人大金仓信息技术股份有限公司 | 一种数据库负载均衡的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113342481A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228814B (zh) | 数据同步方法及装置 | |
WO2018188437A1 (zh) | 一种多租户数据隔离方法、装置及系统 | |
KR100625595B1 (ko) | 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 | |
CN100465937C (zh) | 通过网络以事务形式办理文件操作的方法与系统 | |
CN105573828A (zh) | 一种操作处理方法及装置 | |
CN110390525B (zh) | 区块链世界状态的直接访问方法及区块链节点 | |
CN101443757A (zh) | 设置权限对象映射表的设备和方法 | |
CN110544097A (zh) | 智能合约版本控制、调用和升级方法、设备及存储介质 | |
CN110888718A (zh) | 分布式事务的实现方法及装置 | |
CN106155775B (zh) | 消息处理方法、设备及系统 | |
CN108415758B (zh) | 分布式事务协调方法及装置 | |
CN113342481B (zh) | 一种事务状态的确认方法及装置 | |
CN108491281A (zh) | 在软件系统之间进行交互的方法、可读介质及电子设备 | |
CN103701653A (zh) | 一种接口热插拔配置数据的处理方法及网络配置服务器 | |
US10284649B2 (en) | Distributed processing system | |
WO2023207529A1 (zh) | 数据处理方法、装置及设备、介质、产品 | |
CN106534049B (zh) | 基于服务器的数据下发方法、客户端、服务器及系统 | |
CN114217911A (zh) | 一种跨链事务处理方法、装置、计算设备和介质 | |
CN109582330B (zh) | 数据模型升级方法、装置、设备及可读存储介质 | |
CN113850607A (zh) | 基于分布式身份标识的数据跨链转移方法和系统 | |
CN113472781A (zh) | 一种服务获取方法、服务器及计算机可读存储介质 | |
JP5636394B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN117709947B (zh) | 基于区块链的pos机结算权限管理方法 | |
CN116680277B (zh) | 信息核验方法、装置、设备及存储介质 | |
CN113327167B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |