【问题标题】:Distributed Transaction with SQL Server and Websphere MQ使用 SQL Server 和 Websphere MQ 进行分布式事务
【发布时间】:2014-10-07 22:46:03
【问题描述】:

我们将 SQL Server 2012 作为数据库服务器,将 Redhat Linux 上的 Websphere MQ 作为 MQ 服务器。我们的应用程序位于 Redhat Linux 服务器上,并使用 C++ 实现。

我们需要分布式事务能力,以便事务可以跨越两种资源(DB 和 MQ)。分布式事务由跨资源的资源管理器工作的事务管理器管理。

如果单个资源管理器(DB 和 MQ)提供 XA 操作,WMQ 可以充当分布式事务管理器。 MS SQL 确实有一个适用于 Linux 的 ODBC 库:http://www.microsoft.com/en-us/download/details.aspx?id=28160

  1. SQL Server 库是否支持 xa_open 等 XA 操作,可以让它参与 WMQ 管理的 XA 事务?

其他选项是使用 MS 分布式事务协调器作为事务管理器。

  1. 是否可以通过在 Linux 上运行的 C++ 程序使用 MSDTC?
  2. MSDTC 是否与充当资源管理器的 WMQ 一起使用?

谢谢, 亚什

【问题讨论】:

    标签: sql-server-2012 ibm-mq distributed-transactions msdtc xa


    【解决方案1】:

    我希望我有更好的消息告诉你...

    假设您说的是 V8(尽管其他版本类似),当使用 MQ 作为事务管理器时,根本不支持 MS SQL Server。您可以在 MQ SOE 的“数据库”部分看到这一点:

    http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1350550241693&osPlatform=Linux#sw-Databases

    MSDTC 可以使用,但据我所知,只能由在 Windows 中运行的客户端使用 - 我不知道您如何使其适用于您的场景。

    另一个选择是使用 J2EE 环境(WAS/JBoss 等)。这将充当事务管理器,MS SQL 和 MQ 将充当资源。不过,这并不能解决您用 C++ 编写的要求。

    因此,我给你的唯一真正有效的建议是:

    1) 查看事务管理器 MQ 是否 支持: http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1350550241693&osPlatform=Linux#sw-Transaction 服务器和网关

    遗憾的是,我不熟悉那里的选项的详细信息。

    2) 以 IBM 作为他们的客户提出“RFE”。这是他们提供的允许客户/外部方请求新功能的机制:

    http://www.ibm.com/developerworks/rfe/

    虽然不能保证它会被接受,或者它最终会出现在哪个版本(或何时!)。

    【讨论】:

      猜你喜欢
      • 2015-10-04
      • 2012-08-14
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多