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.