[发明专利]分布式事务处理方法和系统有效
| 申请号: | 201611110856.X | 申请日: | 2016-12-06 |
| 公开(公告)号: | CN106775959B | 公开(公告)日: | 2017-12-22 |
| 发明(设计)人: | 杨作仲;熊杰 | 申请(专利权)人: | 上海壹账通金融科技有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F17/30 |
| 代理公司: | 广州华进联合专利商标代理有限公司44224 | 代理人: | 谢曲曲 |
| 地址: | 200030 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 分布式 事务处理 方法 系统 | ||
1.一种分布式事务处理方法,所述方法包括:
主业务系统接收分布式事务的开启请求,根据所述开启请求为所述分布式事务分配一个事务标识,将所述事务标识和对应的开启状态记录到主事务表中,所述主事务表存储在主业务数据库中;
所述主业务系统将所述分布式事务分为多个子事务,并分别向对应的各个从业务系统发送执行所述子事务的指令,所述指令中包括事务标识;
所述从业务系统根据所述执行子事务的指令在从业务前置表中进行对应的操作,若操作成功,则根据所述事务标识生成一条标识当前子事务操作状态的记录插入到子事务表中,若操作失败,则不记录,其中,所述从业务前置表为从业务主表的复制表,所述从业务前置表和所述子事务表都存储在对应的从业务数据库中;
所述主业务系统获取各个子事务的操作结果,并根据所述操作结果更新主事务表中的操作状态,若所有子事务全部操作成功,则向消息系统发送确认消息,若至少一个子事务操作失败,则向消息系统发送取消消息;
所述消息系统将所述确认消息或取消消息发送给对应的各个从业务系统;
若所述从业务系统接收到的消息为确认消息,则将之前在从业务前置表中的操作同步到从业务主表中以完成对应子事务的提交,若所述从业务系统接收到的消息为取消消息,则直接将之前在从业务前置表中的操作进行回滚。
2.根据权利要求1所述的方法,其特征在于,所述主业务系统获取各个子事务的操作结果,并根据所述操作结果更新主事务表中的操作状态,若所有子事务全部操作成功,则向消息系统发送确认消息,若至少一个子事务操作失败,则向消息系统发送取消消息的步骤包括:
所述主业务系统获取各个子事务的操作结果,若所有子事务全部操作成功,则将主事务表中的操作状态由开启状态更新为尝试完成,然后向消息系统发送确认消息,若消息发送成功,则将主事务表中的操作状态由尝试完成更新为确认完成;若至少一个子事务操作失败,则将主事务表中的操作状态由开启状态更新为回滚中,然后向消息系统发送取消消息,若消息发送成功,则将主事务表中的操作状态由回滚中更新为回滚完成。
3.根据权利要求1所述的方法,其特征在于,所述若所述从业务系统接收到的消息为确认消息,则将之前在从业务前置表中的操作同步到从业务主表中以完成对应子事务的提交,若所述从业务系统接收到的消息为取消消息,则直接将之前在从业务前置表中的操作进行回滚的步骤包括:
若所述从业务系统收到的消息为确认消息,则根据所述确认消息将所述子事务表中的操作状态由尝试完成更新为确认中,然后根据所述子事务表中的操作记录将之前在从业务前置表中的操作同步到从业务主表中,若同步成功,则将所述子事务表中的状态更新为确认完成;
若所述从业务系统收到的消息为取消消息,则根据所述事务标识在子事务表中查找与该事务标识对应的操作状态,若能够查找到,则将所述操作状态更新为回滚中,然后根据所述子事务表中的操作记录将之前对所述从业务前置表的操作进行回滚,若回滚成功,则将所述子事务表中的操作状态更新为回滚完成,若查找不到,则结束。
4.根据权利要求1所述的方法,其特征在于,所述主业务系统将所述分布式事务分为多个子事务,并分别向对应的各个从业务系统发送执行所述子事务的指令,所述指令中包括事务标识的步骤包括:
所述主业务系统将所述分布式事务分为多个子事务并设置各个子事务的执行顺序,按照所述执行顺序向对应的从业务系统发送执行所述子事务的指令,所述指令中包括事务标识,当接收到前一个子事务执行结果为成功时,才将后一个子事务的执行命令发送到对应的从业务系统,若接收到前一个子事务的执行结果为失败,则不再执行后面的子事务。
5.根据权利要求1-4任一所述的方法,其特征在于,所述方法还包括:
在所述主业务系统和所述每个从业务系统中各设置一个检查机制,所述检查机制用于监控主事务表或子事务表中事务的操作状态,若发现所述操作状态异常,则根据所述事务表中的记录向所述消息系统再次发送确认消息或取消消息以更改所述操作状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海壹账通金融科技有限公司,未经上海壹账通金融科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611110856.X/1.html,转载请声明来源钻瓜专利网。





