Home

 

Summarizing XA calls

 

Table 1 lists the calls that are made to the XA functions in a database client library as a result of the various MQI calls that control global units of work. This is not a complete description of the protocol described in the XA specification; we have provided it as a brief overview.

Note that xa_start and xa_end calls are always called by WebSphere MQ code in the application process, whereas xa_prepare, xa_commit, and xa_rollback are always called from the queue manager agent process, amqzlaa0.

The xa_open and xa_close calls shown in this table are all made from the application process. The queue manager agent process calls xa_open in the circumstances described in Error conditions.

Summary of XA function calls
MQI call XA calls made with dynamic registration XA calls made without dynamic registration
First MQBEGIN
xa_open
xa_open
xa_start
Subsequent MQBEGIN No XA calls
xa_start
MQCMIT (without ax_reg being called during the current global unit of work) No XA calls
xa_end
xa_prepare
xa_commit
xa_rollback
MQCMIT (with ax_reg being called during the current global unit of work)
xa_end
xa_prepare
xa_commit
xa_rollback
Not applicable. No calls are made to ax_reg in non-dynamic mode.
MQBACK (without ax_reg being called during the current global unit of work) No XA calls
xa_end
xa_rollback
MQBACK (with ax_reg being called during the current global unit of work)
xa_end
xa_rollback
Not applicable. No calls are made to ax_reg in non-dynamic mode.
MQDISC, where MQCMIT or MQBACK was called first. If they were not, MQCMIT processing is first done during MQDISC.
xa_close
xa_close
Notes:

  1. For MQCMIT, xa_commit is called if xa_prepare is successful. Otherwise, xa_rollback is called.

 

Parent topic:

XA dynamic registration


fa13890_


 

Home