最近在做一个分布式事务的项目,遇到了这样一个问题:
在一个类AManager中,有两个方法A,B 在A中循环调用B(B分别操作oracle和mysql),在B上我声明了@Transactional(propagation=Propagation.REQUIRES_NEW) 可当B抛出异常被A捕获后数据不能回滚,但同样的代码将B拆分到另一个类中就能回滚,请问哪位高人知道这是为什么?(查理很多资料没有提及这方面的)spring分布式事务
在一个类AManager中,有两个方法A,B 在A中循环调用B(B分别操作oracle和mysql),在B上我声明了@Transactional(propagation=Propagation.REQUIRES_NEW) 可当B抛出异常被A捕获后数据不能回滚,但同样的代码将B拆分到另一个类中就能回滚,请问哪位高人知道这是为什么?(查理很多资料没有提及这方面的)spring分布式事务
解决方案 »
- 单例模式线程为什么不安全?
- ClassNotFoundException: org.springframework.web.context.ContextLoaderListener异常!
- 关于hibernate批量删除有哪些好方法啊
- spring+xfire1.2 java.lang.NullPointerException不知咋整
- 请教一个在tapestry4中同一组件多次调用的问题?
- 比较弱的问题求教,页面多个参数的传递
- 有谁了解目前的weblogic8.*的售价么,200分谢谢了!
- ActionForm的一个问题,关于数组值传递的--------春节前最后一个问题?
- 我装CVS后,在客户端运行,为什么总显示,"no sunch repository err"
- 淘淘商城访问localhost:8080/item/536563,查询商品出不来
- 使用spring aop拦截struts2中的action,发现不太好拦截传入action参数了
- WebService出现的一个小问题
分布式要JTA模式才行
2.当A方法加@Transactional(propagation=Propagation.REQUIRED)
而B方法加@Transactional(propagation=Propagation.REQUIRES_NEW)
时,如果第一条数据在B方法中抛出异常A捕获后,循环再调用B方法操作数据库时出现不能提交事务问题;
3.当A方法不加事务而B方法加@Transactional(propagation=Propagation.REQUIRES_NEW)
时B方法抛出异常A捕获后事务不发生回滚;
请问有对事务有深刻理解的大侠肯帮帮忙吗?