Inquire - MQ_INQ_EXIT
MQ_INQ_EXIT provides an inquire exit function to perform before and after MQINQ call processing. Use function identifier MQXF_INQ with exit reasons MQXR_BEFORE and MQXR_AFTER to register before and after MQINQ call exit functions.
The interface to this function is:
MQ_INQ_EXIT (&ExitParms, &ExitContext, &Hconn, &Hobj, &SelectorCount,
&pSelectors, &IntAttrCount, &pIntAttrs, &CharAttrLength,
&pCharAttrs, &CompCode, &Reason)
where the parameters are:
- ExitParms (MQAXP) - input/output
- Exit parameter structure.
- ExitContext (MQAXC) - input/output
- Exit context structure.
- Hconn (MQHCONN) - input
- Connection handle.
- Hobj (MQHOBJ) - input
- Object handle.
- SelectorCount (MQLONG) - input
- Count of selectors
- pSelectors (PMQLONG) - input/output
- Pointer to array of selector values.
- IntAttrCount (MQLONG) - input
- Count of integer attributes.
- pIntAttrs (PMQLONG) - input/output
- Pointer to array of integer attribute values.
- CharAttrLength (MQLONG) - input/output
- Character attributes array length.
- pCharAttrs (PMQCHAR) - input/output
- Pointer to character attributes array.
- CompCode (MQLONG) - input/output
- Completion code, valid values for which are:
- MQCC_OK
- Successful completion.
- MQCC_WARNING
- Partial completion.
- MQCC_FAILED
- Call failed
- Reason (MQLONG) - input/output
- Reason code qualifying the completion code.
If the completion code is MQCC_OK, the only valid value is:
- MQRC_NONE
- (0, x'000') No reason to report.
If the completion code is MQCC_FAILED or MQCC_WARNING, the exit function can set the reason code field to any valid MQRC_* value.
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 */
MQHOBJ Hobj; /* Object handle */
MQLONG SelectorCount; /* Count of selectors */
PMQLONG pSelectors; /* Ptr to array of attribute selectors */
MQLONG IntAttrCount; /* Count of integer attributes */
PMQLONG pIntAttrs; /* Ptr to array of integer attributes */
MQLONG CharAttrLength; /* Length of char attributes array */
PMQCHAR pCharAttrs; /* Ptr to character attributes */
MQLONG CompCode; /* Completion code */
MQLONG Reason; /* Reason code qualifying completion code */
The queue manager then logically calls the exit as follows:
MQ_INQ_EXIT (&ExitParms, &ExitContext, &Hconn, &Hobj, &SelectorCount,
&pSelectors, &IntAttrCount, &pIntAttrs, &CharAttrLength,
&pCharAttrs, &CompCode, &Reason)
Your exit must match the following C function prototype:
void MQENTRY MQ_INQ_EXIT (
PMQAXP pExitParms, /* Address of exit parameter structure */
PMQAXC pExitContext, /* Address of exit context structure */
PMQHCONN pHconn, /* Address of connection handle */
PMQHOBJ pHobj, /* Address of object handle */
PMQLONG pSelectorCount, /* Address of selector count */
PPMQLONG ppSelectors, /* Address of ptr to array of selectors */
PMQLONG pIntAttrCount; /* Address of count of integer attributes */
PPMQLONG ppIntAttrs, /* Address of ptr to array of integer attributes */
PMQLONG pCharAttrLength, /* Address of character attribute length */
PPMQCHAR ppCharAttrs, /* Address of ptr to character attributes array */
PMQLONG pCompCode, /* Address of completion code */
PMQLONG pReason); /* Address of reason code qualifying completion
code */
Parent topic: Exit functions