baomidou / dynamic-datasource

dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务
https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611
Apache License 2.0
4.76k stars 1.2k forks source link

Spring注解事务Mybaits Dao搭配JdbcTemplate事务挂起,锁死 #572

Closed GongLe closed 1 year ago

GongLe commented 1 year ago

image

您好,使用Spring注解事务Mybaits Dao搭配JdbcTemplate事务挂起,锁死,且日志不报错,请问有类似的反馈吗? Service包含查询和修改,方法体同时包含JdbcTemplate修改

GongLe commented 1 year ago

Datasource都为master,事务管理器现实声明了,移除动态数据源即恢复正常 image

ZPZP1 commented 1 year ago

Spring事务管理器会取第一次开启事务的链接,是不支持数据源切换的

GongLe commented 1 year ago

Spring事务管理器会取第一次开启事务的链接,是不支持数据源切换的

在方法内都没进行数据源切换,都用的master

ZPZP1 commented 1 year ago

Spring事务管理器会取第一次开启事务的链接,是不支持数据源切换的

在方法内都没进行数据源切换,都用的master

你是既用了mybatis又用了jdbctemplate,spring事务管理器在纯在事务时会取事务保存的连接,感觉和数据源关系不大,你可以看下两次取了的数据源是不是同一个,如果是可以写个例子复现,我们去排查,贴了这两个截图看不出什么

ZPZP1 commented 1 year ago

也可以使用@DStransationl看看能否解决

GongLe commented 1 year ago

Spring事务管理器会取第一次开启事务的链接,是不支持数据源切换的

在方法内都没进行数据源切换,都用的master

你是既用了mybatis又用了jdbctemplate,spring事务管理器在纯在事务时会取事务保存的连接,感觉和数据源关系不大,你可以看下两次取了的数据源是不是同一个,如果是可以写个例子复现,我们去排查,贴了这两个截图看不出什么 感谢!问题解决了,果然是载入datasource问题,我以为DynamicRoutingDataSource和DataSource dynamicDataSource都是master就没事,还请解释布道一下哈! image image

ZPZP1 commented 1 year ago

DynamicRoutingDataSource是做数据源路由的基类,不是具体的Datasource