baomidou / dynamic-datasource

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

事务注解不生效问题 #662

Closed banliangxingkong closed 3 months ago

banliangxingkong commented 4 months ago

多数据源事务注解 @DSTransactional(propagation = DsPropagation.REQUIRES_NEW) 数据库连接超时不生效

Enviroment

JDK Version(required): 17

SpringBoot Version(required): 3.2.0

dynamic-datasource-spring-boot-starter Version(required): 4.2.0

druid Version(optional): mysql8.0 oracle11

Describe what happened

@DSTransactional(propagation = DsPropagation.REQUIRES_NEW) 数据库连接超时不生效

Expected Result: 版本号

代码示例 控制台报错1 控制台报错

alvinkwok1 commented 4 months ago
  1. 是多库事务吗?
  2. 你的数据库操作逻辑和事务开启逻辑是怎么样的?具体的失效是哪个没有回滚?
  3. 有没有因为错误的使用导致AOP失效?
banliangxingkong commented 4 months ago

1.是多库的查询事务 2.只涉及查询,因为我把虚拟机的oracle 的数据库停止了,然后连接超时,就不会继续查下面的数据,控制台一直输出截图的报错了 3.我把数据库连接可能超时的地方进行try catch 捕获异常了,别的并没有做别的操作

banliangxingkong commented 4 months ago

这一个方法里面 包含了七个小方法,每个方法对应一个sql查询,然后每个方法都try catch了一下,有几个小方法是查询的oracle 数据库,连接不上oracle数据库,然后控制台就有socket time out,但是事务注解没有生效,大概半个月之前吧还是生效的

alvinkwok1 commented 4 months ago

@banliangxingkong 最好是脱敏后给出问题代码,不然不知道怎么做复现。