数据处理方法及数据处理装置的制造方法_2

文档序号:9672973阅读:来源:国知局
释本申请,并不构成对本申请的不当限定。在附图中:
[0043]图1为本申请实施例的数据处理方法的流程图;
[0044]图2为本申请实施例的数据处理方法的流程图;
[0045]图3为本申请实施例的数据处理方法的信令图;
[0046]图4为本申请实施例的应用场景的示意图。
【具体实施方式】
[0047]为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0048]本申请实施例公开了一种数据处理方法以及数据处理装置,能避免分布式事务的子事务的误提交。
[0049]图1所示为本申请实施例的数据处理方法的流程图,该数据处理方法应用于分布式事务发起者,如图1所示,所述方法包括:
[0050]S101,给各参与者分配子事务,生成子事务对应的唯一的子事务号,生成所述子事务与子事务号的对应关系。
[0051]S102,发送查询命令至各参与者,以获取各参与者已就绪的回复;
[0052]S103,若接收到所有参与者已就绪的回复,则发送提交命令及要提交的子事务的子事务号至所述各参与者,使所述各参与者根据所述提交命令及要提交的子事务的子事务号提交处理结果;
[0053]S104,接收所述各参与者提交的处理结果。
[0054]本申请实施例中,分布式事务的发起者生成子事务的子事务号,生成子事务与子事务号的对应关系,使参与者在提交子事务的处理结果之前比较处理的子事务和要提交的子事务的子事务号,在两者一致时再进行提交,可避免提交遗留的悬挂子事务,避免了子事务的误提交,提高了分布式事务处理的可靠性。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。
[0055]本申请实施例的数据处理方法,所述使参与者根据提交命令及要提交的子事务的子事务号提交理结果,包括:
[0056]使所述各参与者根据提交命令处理子事务,比较所述处理的子事务的子事务号与要提交的子事务的子事务号,若两者相同,提交处理结果。
[0057]所述生成子事务与子事务号的对应关系后,所述方法还包括:
[0058]发送所述子事务与子事务号的对应关系至所述各参与者。
[0059]所述生成子事务与子事务号的对应关系后,所述方法还包括:
[0060]发送所述子事务与子事务号的对应关系至所述各参与者。
[0061]图2所示为本申请实施例的数据处理方法的流程图,该处理方法应用于分布式事务的参与者一端,如图2所示,所述方法包括:
[0062]S201,根据发起者发送的查询命令,给分配的子事务预留资源,发送已就绪回复至所述发起者;
[0063]S202,接收所述发起者发送的提交命令以及要提交的子事务的子事务号;
[0064]S203,根据所述提交命令和所述预留资源处理所述子事务;
[0065]S204,获取所述处理的子事务的子事务号,与所述要提交的子事务的子事务号进行比较,若两者相同,则提交所述处理结果至所述发起者,若两者不同,则拒绝提交。
[0066]所述方法还包括:
[0067]拒绝提交后,发出错误提交告警至所述发起者。
[0068]S204中,获取所述处理的子事务的子事务号,包括:根据所述发起者发送的子事务与子事务号的对应关系获取所述处理的子事务的子事务号。
[0069]发起者根据错误提交告警,使所有参与者回滚。
[0070]本申请实施例的数据处理方法中,分布式事务的参与者在处理完子事务后,比较处理的子事务的子事务号和要提交的子事务的子事务号。若处理的子事务是悬挂子事务,则处理的子事务的子事务号与要提交的子事务的子事务号不同,拒绝提交处理的子事务的处理结果可以避免子事务的误提交,提高了分布式事务处理的可靠性。
[0071]图3所示为本申请实施例的数据处理方法的流程图,如图3所示,图的左边为分布式事务的发起者的处理流程,图的右边为分布式事务的参与者的处理流程,图3中仅表示出一个参与者的处理流程,实际应用中,参与者可能有多个。为了更加清楚,图3中以实线箭头来表示信号的传递方向,虚线箭头表示处理
[0072]S301,发起者生成对应关系,并发送至各参与者。
[0073]发起者给各参与者分配子事务,生成子事务对应的唯一的子事务号,生成所述子事务与子事务号的对应关系。
[0074]S302,参与者接收对应关系。
[0075]S303,发起者查询参与者是否已就绪。
[0076]S304,参与者给分配的子事务预留资源,发送已就绪回复至发起者。
[0077]S305,发起者接收已就绪回复,确认所有参与者是否已就绪。
[0078]S306,所有参与者已就绪,发起者发送提交命令及要提交的子事务的子事务号至所述各参与者,命令所有参与者提交子事务处理结果。
[0079]S307,参与者处理子事务。
[0080]S308,参与者比较要提交的子事务的子事务号和处理的子事务的子事务号,若两者相同,则提交处理结果,若两者不同,则发出错误提交告警。
[0081]本申请实施例的数据处理方法,通过给子事务分配唯一的子事务号,避免了分布式事务的子事务的错误提交。
[0082]图4是本申请一个的数据处理方法应用场景,该数据为分布式事务,具体为一个转账事务,甲给乙转账100元。该转账事务被分为四个子事务,发起者400将转账事务分为四个子事务,分别为A:核对收款方信息;B:从甲的账户减去100元;C:给乙的账户加上100元;D,通知甲、乙转账成功或失败。发起者生成四个唯一的子事务号,生成子事务与子事务的对应关系为:A, 10010 ;B, 10011 ;C, 10012 ;D, 10013。
[0083]发起者分别发送对应关系给401、402、403、404四个参与者,四个参与者接收对应关系。
[0084]发起者发送查询命令至参与者401、402、403、404。
[0085]参与者402接收到了查询命令,给B子事务预留资源,并发送已就绪回复至发起者,但此时参与者402与发起者400之间通讯中断,发起者没有收到参与者402发送的已就绪回复。
[0086]发起者400没有接收到所有参与者已就绪的回复,发送回滚命令至所有参与者。参与者401、403、404释放预留资源,402参与者与发起者400通讯中断,没有进行回滚,还保留了给子事务10011预留的资源。
[0087]发起者400再一次发起同样的分布式事务的处理,生成子事务与子事务号的对应关系为:A, 20010 ;B, 20011 ;C, 20012 ;D,20013。
[0088]发起者400分别发送对应关系给参与者401、402、403、404,四个参与者接收对应关系。发起者发送查询命令至参与者401、402、403、404。
[0089]参与者401、402、403、404接收到了查询命令,给六、B、C、D子事务预留资源,并发送已就绪回复至发起者。
[0090]发起者收到四个参与者都已就绪的回复,发送提交命令及要提交的子事务的子事务号至所述各参与者,发送给参与者402要提交的子事务的子事务号是20011。
[0091]参与者401、402、403、404处理子事务。参与者401、403和404比较处理的
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1