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

我们将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.

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

其他选项是使用MS Distributed Transaction Coordinator作为事务管理器.

>是否可以在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/

虽然不能保证它会被接受,或者它可能会以哪个版本结束(或何时!).

点赞