开发者社区> 问答> 正文

spring 多数据源加事务注解就报错 不加没事 怎么办呢??报错

spring 多数据源加事务注解报错 不加没事 怎么办呢?

java.lang.IllegalStateException: Cannot deactivate transaction synchronization - not active

展开
收起
爱吃鱼的程序员 2020-06-07 17:06:44 766 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>这个异常是由于spring的事务处理是按照LIFO/stack behavior的方式进行的,所以在多个事务进行提交时必须按照上述规则进行,否则就会报上面异常。</p>
    
                    
    
                            这是网上直接复制的吧。。。。。。这个我看到过 没看明白 所以来这里问大神的
                        
    
                        <p>多数据源,你用了支持TX的事务管理器了吗?不然就是这样了。</p>
    
                    
    
                                回复 <a class="referer" target="_blank">@魔力猫</a>  : 好的 谢谢
                        
    
                                回复 <a class="referer" target="_blank">@Jordan裔</a>  : 这个数据事务管理器不支持JTA分布式事务。你看看Spring集成JTA的文档把。
                        
    
                                回复 <a class="referer" target="_blank">@魔力猫</a>  : <bean id="transactionManager"
          class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dynamicDataSource"></property>
    
                        
    
                                回复 <a class="referer" target="_blank">@Jordan裔</a>  : 核心是transactionManager引用的是什么样的事务管理器
                        
    
                            <tx:annotation-driven transaction-manager="transactionManager"/>这样子配置算吗? 用了吧~~~
                        
    
                        <div class="ref">
    

    引用来自“叶落花开”的评论

    这个异常是由于spring的事务处理是按照LIFO/stack behavior的方式进行的,所以在多个事务进行提交时必须按照上述规则进行,否则就会报上面异常。

                        <p>有可能是事物管理器不明确造成的,多数据源可能涉及到多个不同的事物管理器,但是每个数据源要对应自己的事物管理器,可以根据注解的值来分配当前的事物管理器</p> 
    
    @Transactional(value="当前数据源事物管理器的beanName")
    2020-06-07 17:06:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多