SpringCloud里面切换数据源无效的问题

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

SpringCloud里面切换数据源无效的问题

Fucz   2021-03-10 我要评论

问题描述:

调用链:controller1的接口A->service1的方法A->service2的方法B

方法A开启了事务,且指定了数据库A的数据源

方法B也开启了事务,使用了默认的事务传播机制(PROPAGATION_REQUIRED),即加入到了方法A的事务中,同时又指定了数据库B的数据源

方法A和B里面都有数据库查询操作

在调用接口A时发生了未找到数据库表结构的异常

 

原因分析:

在同一个事务里面切换数据源是不起作用的,因为同一个事务只能作用在单个数据源上,切换数据源需要在不同事务中操作

 

解决方案:

这里需要把方法B的事务传播机制改为PROPAGATION_REQUIRES_NEW,即把方法A上的事务挂起,新建一个事务,这样切换数据源就可以生效了

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们