mysql - 将 XA 事务与 JDBC、MySQL 和 Microsoft SQL Server 结合使用

标签 mysql sql-server jdbc xa

假设我在一台机器上运行 MySQL 服务器,在第二台机器上运行 Microsoft SQL Server,在第三台机器上运行我自己的自定义 Java 数据库。

我如何使用 X/Open XA 标准在所有三个平台上运行分布式事务?

X/Open XA 是否指定了基于 TCP 或 UDP 的分层协议(protocol)?我找不到这方面的任何信息。 XA 似乎没有指定任何有关网络的信息,在这种情况下,它如何用于跨 MySQL、SQL Server 和自定义 Java 数据库运行分布式事务。

最佳答案

它在数据库上为 2 阶段提交事务提供支持。通常,他们提供不同的 ConnectionPool 实现。如果您的 Java 应用程序在应用程序服务器上运行,您必须显式定义 XA 数据源。

XA 不需要指定任何低级别的网络要求。这是一个应用程序协议(protocol),维基百科提供了一个很好的概述:http://en.wikipedia.org/wiki/2PC

所以,如果要实现分布式连接,所有参与者都必须提供一个支持XA的接口(interface)。

关于mysql - 将 XA 事务与 JDBC、MySQL 和 Microsoft SQL Server 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724862/

相关文章:

mysql - 在后续中按每行的列总和排序

mysql - 选择双重复

java - 查询中的 JDBI 绑定(bind)值或空值?

mysql - 如何使用 Ionic 创建 MySQL 连接?

php - MySQL 获取两个#/多对#之间的字符串

sql - 使用 BULK INSERT 在 SQL Server 上插入空字符串

sql - SQL Server 中的 Trunc(sysdate)

sql-server - 输入格式错误时存储过程中的错误处理

java - 无法将应用程序连接到数据库

java - "Invalid column index"尝试插入行时出现 SqlException 错误