开发者社区 问答 正文

spring+mybatis多数据源 跨库事务如何同步:报错

有两个库,一个是业务库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库的事务进行了回滚,所以不一致。有什么方法让两个事务同步,要么成功,要么失败?

展开
收起
kun坤 2020-06-06 14:34:42 1337 分享 版权
1 条回答
写回答
取消 提交回答