tx-lcn icon indicating copy to clipboard operation
tx-lcn copied to clipboard

SpringCloud + Feign 事务不回滚 解决方案

Open yuntao1997 opened this issue 6 years ago • 6 comments

看issue发现很多人也有这个问题,我最近也碰到了,然后跟踪了一下源码,总算解决了。

下面给出我的解决步骤:

  1. 打开LCN Logger logging.level.com.codingapi.txlcn = debug

  2. 检查日志中是否包含以下log。如包含,转6 com.codingapi.txlcn.tracing.Tracings : tracing apply group:693a5ae3226537.....

  3. 检查日志中的各服务log中groupId是否一致 。如一致,转6 c.c.t.t.c.context.DefaultGlobalContext : Start TxContext[693a5ae3226537]

  4. 检查是否用了 @EnableWebMvc 注解。如用了,转6

  5. 添加MVC拦截器

public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    .........其它配置省略...........
    public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(new SpringTracingApplier());
    }
}
6. 结束

yuntao1997 avatar Dec 25 '19 02:12 yuntao1997

你好,我是分了多个数据库,在调用是发现两个服务的groupId不同,但是事务还是可以正常回滚,请问这样正常吗,,

beichenhpy avatar Mar 09 '20 14:03 beichenhpy

@beichenhpy groupId不一致的话就是没用同一个分布式事务,还能正常回滚应该是不正常的

yuntao1997 avatar Mar 10 '20 01:03 yuntao1997

我是用最新版本后,开启hystrix:enable 发现无法正常回滚,然后使用你的方法,同样无效

beichenhpy avatar Mar 10 '20 07:03 beichenhpy

@beichenhpy 那你调试一下吧,SpringTracingApplierTracingHystrixConcurrencyStrategy 看这两个方法相关方法有没有执行

yuntao1997 avatar Mar 12 '20 01:03 yuntao1997

我的groupid一样, 但是不能回滚

dabing119 avatar Oct 22 '20 05:10 dabing119

我的groupid一样, 但是不能回滚

请问你解决了吗

brezzingg avatar May 21 '21 08:05 brezzingg