8
Seata1.6.1针对这个类型的字段回滚失败了,我金字塔代码逻辑是我发起的时候,a模块通过http请求调用b模块,连续调用了2次,如果调用一次的话,是能回滚的,但是调用了2次,数据就回滚失败了,对比了下全程都是使用的一个xid,最后报错说是
Seata1.6.1针对这个类型的字段回滚失败了,我金字塔代码逻辑是我发起的时候,a模块通过http请求调用b模块,连续调用了2次,如果调用一次的话,是能回滚的,但是调用了2次,数据就回滚失败了,对比了下全程都是使用的一个xid,最后报错说是
两次更新都是针对相同的数据吗?
两次调用都是同一条数据的更新操作嘛?
是的
第一次增加,第二次更新
尝试了 2 个参与者服务投入
提问提交版本,自己的业务sql及具体的值,以及tc三张表是否是最新版本的结构
怀疑是datatime精度问题,insert回滚只需要删除主键,update需要一致。
怀疑是数据时间精度问题,插入回滚只需要删除主键即可,更新需要精度一致。
通过测试1.6.1版本,证明不存在日期时间精度问题。上面的脏写应该是由不受Seata控制的数据源引起的。