最大一次提交
来源:7-12 并发时的错误处理

慕勒3109879
2019-02-01
老师你好,有几个问题不太明白:
1、什么是最大努力一次提交,原理是什么?
2、TransactionAwareDataSourceProxy怎么就实现了最大一次提交 ?
3、在6-7:jms-db的演示中,可以使用链式事务吗?
4、链式事务和最大努力一次提交适合什么场景,,如何选择?
第一次系统而全面的来了解分布式事务,问题可能比较low,还望耐心解答。
写回答
1回答
-
大漠风
2019-02-06
最大努力一次提交,就是在一个事务管理里面提交所有的数据源的事务。一般是用数据库的事务管理器来进行管理,在数据库事务提交的时候,同时提交其他的数据源的事务。
TransactionAwareDataSourceProxy就是使用一种代理模式,当数据库的事务被提交的时候,也出发其他的事务。
jms-db可以使用链式事务,只要多个数据源,都有spring事务管理的实现,就都可以使用链式事务。
如果其中一个数据源的事务管理,没有基于spring的事务管理器,就不能使用链式事务,就得使用最大努力一次提交。
上面这些,其实跟spring的事物机制有关,因为要使用spring的事务管理机制来管理事务,就需要相应的数据源实现的spring事务接口,如很多MQ服务器如activeMQ等都有JMSTransactionManager的具体实现。如果没有,就不能使用spring标签、spring的事务相关配置等,直接实现事务管理,只能用代码方法自己控制事务。
132019-02-11
相似问题
链式事务的作用
回答 2
如何实现提交数据库事务之后,再发送mq
回答 1
最大努力第一阶段提交疑问
回答 1
二阶段提交这种机制需要底层数据库支持吗?
回答 1
关于消息驱动架构在实际项目的应用
回答 1