xa_complete - XA_COMPLETE_EXIT

XA_COMPLETE_EXIT provides an xa_complete exit function to perform before and after xa_complete processing. Use function identifier MQXF_XACOMPLETE with exit reasons MQXR_BEFORE and MQXR_AFTER to register the before and after xa_complete call exit functions.

The interface to this function is:
XA_COMPLETE_EXIT (&ExitParms, &ExitContext, &Hconn, &pHandle, &pRetval, &Rmid, &Flags, &XARetCode)
where the parameters are:

    ExitParms (MQAXP) - input/output
    Exit parameter structure.

    ExitContext (MQAXC) - input/output
    Exit context structure.

    Hconn (MQHCONN) - input
    Connection handle.

    pHandle (PMQLONG) - input/output
    Pointer to asynchronous operation.

    pRetVal (PMQLONG) - input/output
    Return value of asynchronous operation.

    Rmid (MQLONG) - input/output
    Resource manager identifier.

    Flags (MQLONG) - input/output
    Resource manager options.

    XARetCode (MQLONG) - input/output
    Response from XA call.


C language invocation

The queue manager logically defines the following variables:
     MQAXP   ExitParms;   /* Exit parameter structure */
     MQAXC   ExitContext; /* Exit context structure */
     MQHCONN Hconn;       /* Connection handle */
     PMQLONG pHandle;     /* Ptr to asynchronous op */
     PMQLONG pRetval;     /* Return value of async op */
     MQLONG  Rmid;        /* Resource manager identifier */
     MQLONG  Flags;       /* Resource manager options*/
     MQLONG  XARetCode;   /* Response from XA call */
The queue manager then logically calls the exit as follows:
XA_COMPLETE_EXIT (&ExitParms, &ExitContext, &Hconn, &pHandle, &pRetval, &Rmid, &Flags, &XARetCode);
Your exit must match the following C function prototype:
typedef void MQENTRY XA_COMPLETE_EXIT (
     PMQAXP   pExitParms,   /* Address of exit parameter structure */
     PMQAXC   pExitContext, /* Address of exit context structure */
     PMQHCONN pHconn,       /* Address of connection handle */
     PPMQLONG ppHandle,     /* Address of ptr to asynchronous op */
     PPMQLONG ppRetval,     /* Address of return value of async op */
     PMQLONG  pRmid,        /* Address of resource manager identifier */
     PMQLONG  pFlags,       /* Address of resource manager options*/
     PMQLONG  pXARetCode);  /* Address of response from XA call */
Parent topic: Exit functions