不同数据库,多数据源,事务一致性问题
使用框架 ,ruoyi
问题描述
集成了多数据源,mysql,sqlserver,flowable
首先遇到的问题是在service中添加注解Transactional后如果service中有查询mysql和sqlsserver的mapper代码,第二个将会报错找不到数据表,证明数据源不会切换(事务中无法切换数据源,无法保证事务一致性)
使用官方JTA atomikos后集成完毕之后,因为集成了flowable,启动项目会自动执行flowable的相应sql(主要为检查是否存在表,不存在则创建等等)。
执行flowable的sql会报错事务异常,主要是数据库sql有隐式提交的问题。然后就然后修改数据库隐式提交配置后依然报错。
至此陷入僵局
有什么其他方便的方式,解决不同数据库之间的事务一致性问题。。。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
最后放弃了,看了flowable源码有一些建表语句会报错,把自动更新改为false,不会自动建表了,但是会走另一个数据库变更记录的表,就是那些lock的表,flowable集成了那个框架,那个框架的启动的时候会创建flw_ev_databasechangelog表和flw_ev_databasechangeloglock表,启动时候的sql不支持atomikos分布式事务。
后来吧flowable拆出去独立的一个项目了。
回复
@丶Lion : 这样事务就不好控制了
回复
嗯,一个项目只有flowable,另一个项目用了分布式事务,之间用接口调用的,返回错误信息,手动抛出异常。。。
楼主这个问题解决了吗,我也是原项目用 atomikos 做的多数据源事务管理,集成flowable报错,僵住了。。