Reputation: 1018
We have SQL server 2012 as the DB server and Websphere MQ on Redhat Linux as the MQ server. Our applications are on a Redhat Linux server and implemented in C++.
We need distributed transaction capability so that transactions can span both the resources (DB and MQ). A distributed transaction is managed by a Transaction Manager working across Resource Managers of the resources.
WMQ has the ability to act as a Distributed Transaction Manager if the individual Resource Managers(DB and MQ) provide XA operations. MS SQL does have a ODBC library for Linux: http://www.microsoft.com/en-us/download/details.aspx?id=28160.
Other option is to use MS Distributed Transaction Coordinator as the Transaction Manager.
Thanks, Yash
Upvotes: 4
Views: 1367
Reputation: 956
I wish I had better news for you...
Assuming you're talking about V8 (although other releases are similar), there is no support for MS SQL Server at all when using MQ as the transaction manager. You can see this in the 'databases' section of the MQ SOE:
MSDTC can be used, but only by clients running in Windows as far as I'm aware - I don't see how you could make it work for your scenario.
Another option is to use a J2EE environment (WAS/JBoss etc). This will act as the transaction manager, and MS SQL & MQ will work as resources. Still, this doesn't solve your requirement to write in C++.
The only suggestions I have for you that really work therefore are:
1) Review the transaction managers MQ does support: http://www-969.ibm.com/software/reports/compatibility/clarity-reports/report/html/softwareReqsForProduct?deliverableId=1350550241693&osPlatform=Linux#sw-Transaction Servers and Gateways
Sadly I'm not familiar with the details of the options on there.
2) Raise an 'RFE' with IBM as their customer. This is the mechanism they provide to allow customers/external parties to request new function:
http://www.ibm.com/developerworks/rfe/
Although there's no guarantee it will be accepted, or which version it might end up in (or when!).
Upvotes: 2