Open OKill opened 5 years ago
不是,调用transaction.startTransaction或者transaction.execute时ET就开始介入,开启了一个分布式事务
调用transaction.startTransaction或者transaction.execute时,要求Spring管控的事务要开启
那是不是必须先调用 saveOrderRecord(jdbcTemplate,userId,money); 后面再调用transaction.execute 分布式事务才有效果?是不是只能让spring自动提交,不能手动提交后再开启另一个事务?
那是不是必须先调用 saveOrderRecord(jdbcTemplate,userId,money); 后面再调用transaction.execute 分布式事务才有效果?
只要求开启了由spring的PlatformTransactionManager管理下的事务即可。 无需先调用saveOrderRecord,Spring事务的开启在进入业务方法前,已经由切面开启,这个是spring的机制。
是不是只能让spring自动提交,不能手动提交后再开启另一个事务?
看你的手动提交是个什么概念,如果你调用的是jdbc的connection的commit的话,则不能。如果你调用的是PlatformTransactionManager下的commit的话,则可以手动提交
你好,我看了你的源码,发现 Future deductFuture 做了延迟执行,是不是在调用了transaction.execute 方法后还要再开启一个本地事务,才会开始分布式事务的流程?