Syncpoint considerations in WebSphere MQ applications
Two-phase commit is supported under:
- WebSphere MQ for AIX
- MQSeries for Compaq NonStop Kernel
- MQSeries for Compaq OpenVMS Alpha
- MQSeries for Compaq Tru64 UNIX
- WebSphere MQ for iSeries
- WebSphere MQ for HP-UX
- WebSphere MQ for Linux
- MQSeries for OS/2 Warp
- WebSphere MQ for Solaris
- WebSphere MQ for Windows
- CICS for MVS/ESA 4.1
- CICS Transaction Server for z/OS
- CICS on Open Systems
- TXSeries for Windows NT
- IMS/ESA
- z/OS batch with RRS
- Other external coordinators using the X/Open XA interface
Single-phase commit is supported under:
- WebSphere MQ for iSeries
- MQSeries for OS/2 Warp
- MQSeries for Compaq NonStop Kernel
- WebSphere MQ on UNIX systems
- MQSeries for VSE/ESA
- WebSphere MQ for Windows
- CICS for OS/2
- CICS for Windows NT V2.0
- z/OS batch
- Note:
- For further details on external interfaces see Interfaces to external syncpoint managers, and the XA documentation CAE Specification Distributed Transaction Processing: The XA Specification, published by The Open Group. Transaction managers (such as CICS, IMS, Encina, and Tuxedo) can participate in two-phase commit, coordinated with other recoverable resources. This means that the queuing functions provided by WebSphere MQ can be brought within the scope of a unit of work, managed by the transaction manager.
Samples shipped with WebSphere MQ show WebSphere MQ coordinating XA-compliant databases. For further information about these samples, see Chapter 35, Sample programs (all platforms except z/OS).
In your WebSphere MQ application, you can specify on every put and get call whether you want the call to be under syncpoint control. To make a put operation operate under syncpoint control, use the MQPMO_SYNCPOINT value in the Options field of the MQPMO structure when you call MQPUT. For a get operation, use the MQGMO_SYNCPOINT value in the Options field of the MQGMO structure. If you do not explicitly choose an option, the default action depends on the platform. The syncpoint control default on z/OS and Compaq NonStop Kernel is 'yes'; for all other platforms, it is 'no'.
Except on z/OS batch with RRS, if a program issues the MQDISC call while there are uncommitted requests, an implicit syncpoint occurs. If the program ends abnormally, an implicit backout occurs. On z/OS, an implicit syncpoint occurs if the program ends normally without first calling MQDISC.
For WebSphere MQ for z/OS programs, you can use the MQGMO_MARK_SKIP_BACKOUT option to specify that a message should not be backed out if backout occurs (in order to avoid an 'MQGET-error-backout' loop). For information about using this option, see Skipping backout.
For information on committing and backing out units of work in MQSeries for VSE/ESA, see MQSeries for VSE/ESA System Management Guide.
WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.
IBM is a trademark of the IBM Corporation in the United States, other countries, or both.