spring cloud alibaba 整合 sharding jdbc + nacos + seata时,服务之间调用,SeataTransactionHolder commit时丢失问题

kupeojn6  于 2022-12-31  发布在  Spring
关注(0)|答案(2)|浏览(517)

Ⅰ. Issue Description

spring cloud alibaba 整合 sharding jdbc + mybatis plus + nacos + seata 1.5.2,在服务之间调用时, SeataATShardingTransactionManager 的 commit 里 seataTransactionHolder get 一直为空,在之前 begin 里 SeataTransactionHolder set是有值

Ⅱ. Describe what happened

在服务之间调用时,事务commit错误如下:

调用服务

被调用服务

错误信息:

服务中seate配置如下

Ⅲ. Describe what you expected to happen

请教一下,为什么会为空

Ⅵ. Environment:

  • JDK version : 1.8
  • Seata version: 1.5.2
  • OS : mac os
  • Others: spring cloud alibaba 2021.0.1.0, mybatis plus 3.5.2, sharding jdbc 4.1.1
tsm1rwdh

tsm1rwdh1#

应该是sharding jdbc和seata的兼容问题,seta是被sharding jdbc被动集成的,可以去问下他们那块

jaxagkaj

jaxagkaj2#

应该是sharding jdbc和seata的兼容问题,seta是被sharding jdbc被动集成的,可以去问下他们那块

覆盖重写了 SeataTransactionHolder get的地方。没有的话就去读取当前全局事务,这样改完倒是可以用了。但不知道是不是会发生其他问题。请教一下,这样会有问题吗。

相关问题