database - 如何将两个交易绑定(bind)在一起?

标签 database transactions

我所处的场景是,我有两个不同的数据库,并且我想在两个数据库中提交不同的更改,这样如果其中一个提交失败,另一个也会失败。

如果我在“数据库 A”上有“事务 A”,在“数据库 B”上有“事务 B”,如何将这两个事务绑定(bind)在一起,以便两者都自动成功或失败。

我想不出办法来做到这一点。如果“事务 A”失败,回滚“事务 B”很容易,但如果“事务 B”在“事务 A”已经提交时失败,我就完蛋了。

我想知道是否有一种技术可以在特定的数据库产品中处理这个问题,或者如果有一个通用模式来处理这种情况甚至可以应用于任何事务系统(例如绑定(bind)数据库事务)就更好了使用事务消息队列。

最佳答案

您需要使用分布式事务管理器(在最简单的情况下,您的程序本身就可以充当)。

X/OpenXA是管理分布式事务最广泛使用的标准,四大数据库都原生支持它。

关于database - 如何将两个交易绑定(bind)在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5733146/

相关文章:

database - 数据类型字符变化没有访问方法 "gist"的默认运算符类

linq-to-sql - Linq to SQL Compact - 事务或只是 SubmitChanges

sql - 部分更新命令

python - 将字典转换为数据框python

javascript - 如下所示的这段 php 代码有什么问题?

ios - SQLite 或 CoreData

java - JDBC 中的嵌套事务

ruby-on-rails - 在单个 REST 调用中执行多个数据库操作

.net - 嵌套/子事务范围回滚

php - 关于保存SVG文件和检索的疑惑