sql-server-2012 - SQL Server 和 Websphere MQ 的分布式事务

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

我们将 SQL server 2012 作为 DB 服务器,将 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 .

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

  • 另一种选择是使用 MS 分布式事务协调器作为事务管理器。
  • 是否可以在 Linux 上运行的 C++ 程序中使用 MSDTC?
  • MSDTC 是否与作为资源管理器的 WMQ 一起使用?

  • 谢谢,
    亚什

    最佳答案

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

    假设您在谈论 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/

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

    关于sql-server-2012 - SQL Server 和 Websphere MQ 的分布式事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25305403/

    相关文章:

    sql - 将 SQL Server 中的计数器分配给具有连续日期的记录,并且仅在日期不连续时递增

    sql-server - SQL Server 2012 卸载错误

    java - 在 WAS 应用程序中配置/访问 MQQueueConnectionFactory

    .net - 使用 Websphere MQ 主题 .NET API

    java - 有没有java类似的supervisord

    php - 在插入时获取一张表的 auto_increment 值的最佳方法

    sql - CHOOSE() 未按预期工作

    sql - 为什么SQL函数总是返回空结果集?

    python - 如何使用 CCDT 文件、用户 ID 和密码在 Python 中连接到 IBM MQ

    Java - 启发式异常