不同数据库,多数据源,事务一致性问题

丶Lion 发布于 2021/01/14 09:29
阅读 645
收藏 0

2022首届非结构化数据峰会正在直播!矩阵革命,向量连接世界,直达峰会直播>>>

使用框架 ,ruoyi

问题描述

    集成了多数据源,mysql,sqlserver,flowable

首先遇到的问题是在service中添加注解Transactional后如果service中有查询mysql和sqlsserver的mapper代码,第二个将会报错找不到数据表,证明数据源不会切换(事务中无法切换数据源,无法保证事务一致性)

使用官方JTA atomikos后集成完毕之后,因为集成了flowable,启动项目会自动执行flowable的相应sql(主要为检查是否存在表,不存在则创建等等)。

执行flowable的sql会报错事务异常,主要是数据库sql有隐式提交的问题。然后就然后修改数据库隐式提交配置后依然报错。

至此陷入僵局

有什么其他方便的方式,解决不同数据库之间的事务一致性问题。。。。。

 

 

加载中
0
osc_49099867
osc_49099867

楼主这个问题解决了吗,我也是原项目用 atomikos 做的多数据源事务管理,集成flowable报错,僵住了。。

丶Lion
丶Lion
回复 @osc_49099867 : 嗯,一个项目只有flowable,另一个项目用了分布式事务,之间用接口调用的,返回错误信息,手动抛出异常。。。
osc_49099867
osc_49099867
回复 @丶Lion : 这样事务就不好控制了
丶Lion
丶Lion
后来吧flowable拆出去独立的一个项目了。
丶Lion
丶Lion
最后放弃了,看了flowable源码有一些建表语句会报错,把自动更新改为false,不会自动建表了,但是会走另一个数据库变更记录的表,就是那些lock的表,flowable集成了那个框架,那个框架的启动的时候会创建flw_ev_databasechangelog表和flw_ev_databasechangeloglock表,启动时候的sql不支持atomikos分布式事务。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部