Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XA事务与JDBC、MySQL和Microsoft SQL Server一起使用_Mysql_Sql Server_Jdbc_Xa - Fatal编程技术网

将XA事务与JDBC、MySQL和Microsoft SQL Server一起使用

将XA事务与JDBC、MySQL和Microsoft SQL Server一起使用,mysql,sql-server,jdbc,xa,Mysql,Sql Server,Jdbc,Xa,假设我在一台机器上运行MySQL服务器,在第二台机器上运行Microsoft SQL server,在第三台机器上运行我自己的自定义Java数据库 如何使用X/Open XA标准在这三个平台上运行分布式事务 X/Open XA是否指定在TCP或UDP上分层的协议?我找不到这方面的任何信息。XA似乎没有指定任何关于网络的内容,在这种情况下,如何使用它跨MySQL、SQL Server和自定义Java数据库运行分布式事务。它在数据库上提供对两阶段提交事务的支持。通常,它们提供了不同的Connecti

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

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


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

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

XA不需要指定任何低级网络要求。这是一个应用程序协议,WikiPedia提供了一个很好的概述:


因此,如果您想要实现分布式连接,所有参与者都必须提供一个支持XA的接口。

让我看看我是否理解您的意思。事务管理器需要链接到MySQL的客户端库,该库实现MySQL服务器期望请求使用的应用程序协议。这可以建立在TCP或UDP或任何其他基础上。它没有具体说明。SQL Server和自定义Java数据库也是如此。总共需要链接3个连接库。MySQL和SQL Server的客户端库已经实现。为Java数据库实现它是为Java数据库实现XA支持的一部分。3个连接中的每一个都提供了创建某种XA对象的方法,事务管理器可以在创建分布式事务时使用这种方法。实际上,TCP是通过UDP使用的,即使它添加了一个响应行程。你知道数据包通常是什么样子吗?具体何时发送要执行的事务语句?它们是准备信息的一部分吗?不,我不知道这些信息包是什么样子的。我想这是特定于数据库供应商的,您不必太在意。非常确定这不是在TCP/IP层上处理的。这是一个特定于应用程序的协议,ISO/OSI第5-7层。