Sql server 2012 使用SQL Server和Websphere MQ的分布式事务

Sql server 2012 使用SQL Server和Websphere MQ的分布式事务,sql-server-2012,ibm-mq,distributed-transactions,msdtc,xa,Sql Server 2012,Ibm Mq,Distributed Transactions,Msdtc,Xa,我们使用SQL server 2012作为DB服务器,使用Redhat Linux上的Websphere MQ作为MQ服务器。我们的应用程序是在ReHAT Linux服务器上,并在C++中实现。 我们需要分布式事务功能,以便事务可以跨越两种资源(DB和MQ)。分布式事务由跨资源的资源管理器工作的事务管理器管理 如果单个资源管理器(DB和MQ)提供XA操作,WMQ可以充当分布式事务管理器。 MS SQL确实有一个用于Linux的ODBC库: SQL Server库是否支持XA操作,如XA_open

我们使用SQL server 2012作为DB服务器,使用Redhat Linux上的Websphere MQ作为MQ服务器。我们的应用程序是在ReHAT Linux服务器上,并在C++中实现。 我们需要分布式事务功能,以便事务可以跨越两种资源(DB和MQ)。分布式事务由跨资源的资源管理器工作的事务管理器管理

如果单个资源管理器(DB和MQ)提供XA操作,WMQ可以充当分布式事务管理器。 MS SQL确实有一个用于Linux的ODBC库:

  • SQL Server库是否支持XA操作,如XA_open等,它可以参与WMQ管理的XA事务
  • 另一个选项是使用MS分布式事务协调器作为事务管理器

    <> LI>在Linux上运行的C++程序是否可以使用MSDTC?< /LI>
  • MSDTC是否与充当资源管理器的WMQ合作
  • 谢谢,
    Yash

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

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

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

    另一种选择是使用J2EE环境(WAS/JBoss等)。这将充当事务管理器,MS SQL&MQ将充当资源。但是,这并不能解决你在C++中编写的要求。 因此,我给您的唯一建议是:

    1) 查看MQ支持的事务管理器: 服务器和网关

    遗憾的是,我不熟悉上面选项的细节

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

    虽然不能保证它会被接受,也不能保证它最终会是哪个版本(或者什么时候!)