[seata]如果二级段提交 :1:服务端没有接收到tm请求report ,2 服务端请求没有下发下来客户端没有接收到 3.客户端接收到了执行失败了,

2022-12-31 500 views
5

如果二级段提交 :1:服务端没有接收到tm请求report ,2 服务端请求没有下发下来客户端没有接收到 3.客户端接收到了执行失败了, 请问上面三种情况,对数据订单影响是什么

回答

2

1.会等到超时时间,默认是60秒后进行回滚。 在AT模式下,订单数据由于是一个一阶段提交会有短暂的读未提交问题,这个需要按@globallock注解+select for update达到分布式下读已提交,但是会被阻塞到事务回滚后才可读到(默认60s) 2,3 都会进行无限间隔1s的重试直至成功回滚/提交

4

@globallock没有加这个注解,只是加了全局事务的注解呢

8

效果一样

2

二阶段下发,rm也会向tc汇报执行结果吗,直到tc收到回复??

8

二阶段下发时rm处理完二阶段后会上报结果,如果一直没上报,tc就会重试,超时在1.6.1后是15s,也就是tc等待rm响应超过15s没有得到就会重试

6

那如果一直上报二阶段rm提交成功 开始上报tc,超时重试也失败,tc永远得不到响应,这个一直循环这个上报重试吗

4

会,无限重试,直到二阶段能返回成功的结果