Transaction rolled back because it has been marked as rollback-only
出现这种错误的原因
1.接口A 调用了接口B
2.接口B报异常了,没有在B里面进行try catch捕获
3.接口A对 接口B进行了try catch捕获
因为接口B报异常 会把当前事物A接口的事物(如果B没有开启新的事物) 标志成rollback-only
然后因为接口A对B进行了try catch 所以接口A会一直往下走,等接口结束commit的时候会报错
org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
因为A的事物 被B标志成rollback-only了
解决办法
1.B接口里面就对异常做try catch处理
2.B接口设置事物的传播行为Propagation设置为Requires_new。或者A接口的Propagation设置为NESTED
3.不对接口B进行try catch处理 这样会自动把B的错误抛出来,而不是报上面那个错
一直以为 遇到异常 try catch 不会影响到当前的事物,但是Spring管理的事物,并不是这样。
遇见一些不常见的问题 需要Debug跟源码才可解决
Transaction rolled back because it has been marked as rollback-only的更多相关文章
- “Transaction rolled back because it has been marked as rollback-only”
spring的声明事务提供了强大功能,让我们把业务关注和非业务关注的东西又分离开了.好东西的使用,总是需要有代价的.使用声明事务的时候,一 个不小心经常会碰到“Transaction rolled b ...
- 【Spring】21、用spring目标对象处理Transaction rolled back because it has been marked as rollback-only
在使用spring做事务管理时,很多人都会遇到这样一段异常: org.springframework.transaction.UnexpectedRollbackException: Transact ...
- Transaction rolled back because it has been marked as rollback-only分析解决方法
1. Transaction rolled back because it has been marked as rollback-only事务已回滚,因为它被标记成了只回滚<prop key= ...
- 【springcloud】Transaction rolled back because it has been marked as rollback-only
问题: 一个ajax请求,发生系统错误,错误内容:Transaction rolled back because it has been marked as rollback-only 原因是调用的s ...
- [转]Spring事务嵌套引发的血案---Transaction rolled back because it has been marked as rollback-only
原文地址:https://blog.csdn.net/f641385712/article/details/80445912 1.概述 想必大家一想到事务,就想到ACID,或者也会想到CAP.但笔者今 ...
- Transaction rolled back because it has been marked as rollback-only 原因 和解决方案
产生原因 , 1 serviceA 调用 serviceB 然后 B 抛出异常 ,B 所在的 事物 回滚,B 把当前可写 事物标记成 只读事物 , 2 如果 A 和B 是在 同一个事物环境,并且 ...
- Spring事务嵌套引发的问题--Transaction rolled back because it has been marked as rollback-only
转载https://blog.csdn.net/f641385712/article/details/80445912 读了两边才找到问题
- 记一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only异常
@Transactional(rollbackFor = Exception.class) @Overridepublic DubboResult<Boolean> productAddO ...
- spring事务(Transaction )报 marked as rollback-only异常的原因及解决方法
很多朋友在使用spring+hibernate或mybatis等框架时经常遇到报Transaction rolled back because it has been marked as rollba ...
随机推荐
- MPLAB IDE 细节点问题不定期更新ing
问题1.如何找到MPLAB IDE 隐藏的项目.输出的窗口 答:在菜单栏的 视图 中 “Project”.“Output”. 问题2.mplab c文件为什么不能添加到工程中的source file ...
- Python中安装bs4后,pycharm依然报错ModuleNotFoundError: No module named 'bs4'
学习网络抓取时,第一步出现问题. 执行示例代码 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlo ...
- 爬坑记-tomcat 项目启动两次的的解决
项目就启动了两次,程序倒是正常运行,关键我里边写了个while 循环,不能让它启动两次啊 百度了一下,有人说是tomcat server.xml或者tomcat新建服务的时候设置出了问题 ....最终 ...
- 爬取qq号
import reimport urllib.requestimport osimport jsonimport sslfrom collections import deque #把爬去的数据保存到 ...
- 修改Tomcat控制台标题
1.在tomcat的bin目录下新建文件setenv.bat 2.重启tomcat即可
- yarn查询/cluster/nodes均返回localhost
背景: 1.已禁用ipv6. 2.所有节点的/etc/hosts正确配置,任务在ResourceManager提交. 3.yarn-site.xml中指定了 yarn.resourcemanager. ...
- openstack快速复制一台云主机系统
1.先把目标主机创建快照,目标机器会关机 2.创建主机 3.设置网络和ip: 当我ifconfig eth0的时候出现如下错误:eth0: error fetching interface infor ...
- http://www.cnblogs.com/langjt/p/4281477.html
http://www.cnblogs.com/langjt/p/4281477.html
- linux性能监控(转)
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- sublime text3中sass编译后保存到指定文件夹
第一步: tools->builde system->new build system 第二步: 粘贴如下代码到新建文档中: { "cmd": ["sass& ...