建立一个事务表,需要操作时先将事务添加,并将标志位置重置,可分为删除、添加、修改
所有事务必须先添加,再执行
1、如果未添加进事务表,发生当机,在客户端即显示事务提交失败,请重新提交,不会对其他事务造成任何影响。
2、如果已经添加进表,发生当机,各系统比对链表进行修复工作
表中事务需要执行,而当前系统未执行的,执行
表中事务需要执行,而当前系统已执行的,跳过
因为从目前的需要来看,一般的此类系统如果执行回滚操作,这其中的损失将会非常的大,轻易让人无法接受,所以未完成的事务都需要继续执行而不是回滚。
如果所有系统对该事务执行完毕,删除表中该事务
如果用并发执行事务的系统,需要添加时间戳以辅助确认,具体判断标准请自行查询学习
3、如果所有系统已执行完毕,而未删除链表中该项事务时当机,系统比对链表,确认所有系统
执行完该事务,从表中删除该事务
4、系统当机后重新启动时,在未完成修复前,不接受新事务的提交
由于本人还处于学习阶段,缺少大型系统的实践经验,水平有限,以上为个人观点,有些纸上谈兵,
转载于:https://my.oschina.net/u/138995/blog/299045