A行有a帐号要汇¥100到B行b帐号中。(A,B行为不同数据库)
A,B行之间提供一个报文收发的接口专门用于处理事务,格式
事务请求报文:
事务号:要操作的命令(比如给b帐号+¥100)
事务回应报文:
事务号:是否成功完成事务中本方要完成的工作(true or false)
我们暂且把这一事务号定为T100,而这过程中A行自己要做的事被称为T100A事务(B行一样)
本文主要参考http://www.iteye.com/topic/78417自己胡乱构想
不知道这样的操作步骤对不对,这只是我个人的想法,希望大家给点建议
A,B行之间提供一个报文收发的接口专门用于处理事务,格式
事务请求报文:
事务号:要操作的命令(比如给b帐号+¥100)
事务回应报文:
事务号:是否成功完成事务中本方要完成的工作(true or false)
我们暂且把这一事务号定为T100,而这过程中A行自己要做的事被称为T100A事务(B行一样)
1. (A行)prepared commit T100A
2. (A行)a帐号-¥100
3. (A行)记录跨行交易日志T100A
4. (A行-->B行)报文(T100:给b帐号+¥100)
5. (B行)prepared commit T100B
6. (B行)b帐号+¥100
7. (B行)记录跨行交易日志T100B
8. (B行)commit T100B
9. (B行-->A行)报文(T100:true)
10. (A行)只有当接收到(T100:false)的报文时才进行回滚事务T100A
11. (A行)commit T100A
12. (A行)查看B行的跨行交易日志与A行对应的日志做比较,判断交易是否成功,以B行为准,如果B行的操作失败则给a帐号+¥100
本文主要参考http://www.iteye.com/topic/78417自己胡乱构想
不知道这样的操作步骤对不对,这只是我个人的想法,希望大家给点建议