有两个库,一个是业务库A,一个是用户库B
业务是这样的,根据业务库A 中的a表 中某个状态捞取数据 select * from A.a where A.a.state=0;把A库a表装状态为0的数据抓去出来
接着组装数据,批量插入到B 库中的b 表中。当全部插入成功了之后,更改A库中a表的状态为1.
这样在接下来的定时任务中不会获取到插入成功的数据。
其实分两步 1、往B 库插入数据 2、修改A库中相关数据的状态 这两个必须保持在一个事务
假设一种极端状态,第2部没有执行成功,这个时候A库的事务已经提交,B库的事务进行了回滚,所以不一致。有什么方法让两个事务同步,要么成功,要么失败?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
参考 http://git.oschina.net/wangzhixuan/spring-shiro-training 有多数据源处理######JTA 2PC。但是还不如自己写提交和回滚代码比较好######可以找 JOTM和Atoimikos的相关资料