Spring事务传播机制问题
来源:互联网 发布:mac访客账户 编辑:程序博客网 时间:2024/06/14 06:04
Spring事务传播机制问题
- Question:当代码外层和内层使用Transation注解进行事务操作时,内层操作失败,抛出
代码如下
@TransactionmethodA(){ try{ methodB(){ throw new Exception(e); } }catch(Exception e){ logger.info("处理失败")! }}
- 出现异常信息:
javax.servlet.ServletException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
出现问题分析:
当内部方法出错,导致内部事务认为应该回滚,事务处于回滚状态。向外部方法抛出异常,此时外部直接将异常处理,导致外部事物认为程序正常,事务可以提交,事务处于提交状态。此时外部事务和内部事务是同一个事务,因此该事务不知道是提交,还是回滚。解决方法
1.将事务拆分
TransactionA-start
TransactionA-commit
TransactionB-start
TransactionB-commit
2.在cathe中回滚事务。
在cathe中手动调用rollback函数进行失败回滚
阅读全文
0 0
- Spring事务传播机制问题
- Spring事务传播机制
- Spring事务传播机制
- Spring事务传播机制
- spring事务传播机制
- Spring事务传播机制
- Spring事务传播机制
- Spring 事务传播机制
- spring事务传播机制
- Spring事务传播机制
- spring 事务传播机制
- Spring事务传播机制
- Spring事务传播机制
- Spring事务传播机制
- Spring事务传播机制
- spring事务传播机制
- Spring事务传播机制
- spring事务传播机制
- 使用单例模式设计JDBC连接数据库
- redis集合指令
- linux查看及修改文件权限
- java基础:基本数据类型和引用数据类型有哪些?
- freemarker d<#assign>
- Spring事务传播机制问题
- 你真的了解软件开发的本质吗?
- 关于vfork的小知识
- Java基础-堆栈
- intellij IDEA 优化
- 2017杭电多校联赛-Balala Power!
- 聚合函数(sum、count、max、min、avg)、where、group by、having的组合用法实例
- ASP.net 资源请求漏洞利用工具PadBuster
- Scala学习—模式匹配