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

发布于 2022-03-07 00:16:53 字数 464 浏览 782 评论 5

使用框架 ,ruoyi

问题描述

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

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

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

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

至此陷入僵局

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

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

拍不死你 2022-03-10 19:29:14

最后放弃了,看了flowable源码有一些建表语句会报错,把自动更新改为false,不会自动建表了,但是会走另一个数据库变更记录的表,就是那些lock的表,flowable集成了那个框架,那个框架的启动的时候会创建flw_ev_databasechangelog表和flw_ev_databasechangeloglock表,启动时候的sql不支持atomikos分布式事务。

回眸一笑 2022-03-10 10:51:59

后来吧flowable拆出去独立的一个项目了。

顾忌 2022-03-09 14:56:23

回复
@丶Lion : 这样事务就不好控制了

猫烠⑼条掵仅有一顆心 2022-03-09 14:47:52

回复
嗯,一个项目只有flowable,另一个项目用了分布式事务,之间用接口调用的,返回错误信息,手动抛出异常。。。

永不分离 2022-03-07 18:36:51

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文