06 July 2005
Setting up WinXPSP2 for XA transactions with MQ
In a previous post, I talked about transactions without components, spanning MQ and SQL Server. The hardest part in doing that was setting up the environment. For posterity, here's what I did:
Steps:
- install Windows XPSP2 or WS2003
- install the MQ Client or Server software.
- install the MQ XA Client (aka "MQ Extended Transactional Client")
- install the latest fixpack for WMQ. For Windows v5.3, As of May 2005, this is CSD10.
- register the XA DLL in the registry.
for MQ, according to IBM, the DLL is <MQDIR>\bin\amqmtsxatm.dll but on a MQ client-only machine, it may be <MQDIR>\bin\amqmtsxatmc.dll
For MQ then, it is:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL]
Key name: amqmtsxatm.dll
Data: C:\progra~1\ibm\MQ\bin\amqmtsxatm.dll
- If you are running the app from an MQ client node, get the interim fix from IBM; I don't know which fix this is. you have to request it. It is not included in CSD10. It may be included in CSD11. If you are running the app on a MQ server node, then you do not need the interim fix.
- Turn on DTC in Windows. This is slightly different on XPSP2 and WS2003. On XPSP2, it is like this:
Control Panel--> Admin Tools --> Component Services --> My Computer --> Properties
select the MS DTC tab, click the "Security Configuration..." button.
Check the "Network DTC Access..." box.
Check the XA box.
- allow the "network service" user to read the directory in which the XA DLL resides.
Use Explorer for this. For my install of MQ, this directory is
c:\progra~1\ibm\mq\bin\
- add "network service" user to the MQM group (or other group authorized to "perform XA recovery" on MQ).
- set the NMQ_MQ_LIB variable to c:\progra~1\ibm\mq\bin\mqic32xa.dll. This is from the "Using .NET" doc.)
- Run the app
That's it.
Comment Notification
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.