MQCIH – CICS-MQ bridge header
The MQCIH structure describes the information that can be present at the start of a message sent to the CICS®-MQ bridge through IBM® MQ for z/OS®.
Availability
AIX, HP-UX, z/OS, Solaris, Linux, Windows, and IBM MQ clients connected to these systems.
For C++ applications, the ImqCICSBridgeHeader class encapsulates specific features of the MQCIH data structure. See IBM MQ C++ message header for the CICS-MQ bridge.
Format name
MQFMT_CICS.
Version
The current version of MQCIH is MQCIH_VERSION_2. The header, COPY, and INCLUDE files provided for the supported programming languages contain the most recent version of MQCIH, with the initial value of the Version field set to MQCIH_VERSION_2.
The fields CursorPosition, ErrorOffset, InputItem, and Reserved4 are not present if the version is less than MQCIH_VERSION_2.
Character set and encoding
- Applications that connect to the queue manager that owns the CICS-MQ bridge queue must provide an MQCIH structure that is in the character set and encoding of the queue manager, because data conversion of the MQCIH structure is not performed in this case.
- Applications that connect to other queue managers can provide an MQCIH structure that is in any of the supported character sets and encodings; the receiving message channel agent connected to the queue manager that owns the CICS-MQ bridge queue converts the MQCIH structure.
- The application message data following the MQCIH structure must be in the same character set and encoding as the MQCIH structure. You cannot use the CodedCharSetId and Encoding fields in the MQCIH structure to specify the character set and encoding of the application message data. You must provide a data-conversion exit to convert the application message data if the data is not one of the built-in formats supported by the queue manager.
Usage
If the application requires values that are the same as the initial values, and the bridge is running with AUTH=LOCAL or AUTH=IDENTIFY, you can omit the MQCIH structure from the message. In all other cases, the structure must be present.
The bridge accepts either a version-1 or a version-2 MQCIH structure, but for 3270 transactions, you must use a version-2 structure.
The application must ensure that fields documented as request fields have appropriate values in the message sent to the bridge; these fields are used as input to the bridge.
Fields documented as response fields are set by the CICS-MQ bridge in the reply message that the bridge sends to the application. Error information is returned in the ReturnCode, Function, CompCode, Reason, and AbendCode fields, but not all of them are set in all cases. The following table shows which fields are set for different values of ReturnCode.
ReturnCode |
Function |
CompCode |
Reason |
AbendCode |
|---|---|---|---|---|
| MQCRC_OK | – | – | – | – |
| MQCRC_BRIDGE_ERROR | – | – | MQFB_CICS_* | – |
| MQCRC_MQ_API_ERROR MQCRC_BRIDGE_TIMEOUT | MQ call name | MQ CompCode |
MQ Reason |
– |
| MQCRC_CICS_EXEC_ERROR MQCRC_SECURITY_ERROR MQCRC_PROGRAM_NOT_AVAILABLE MQCRC_TRANSID_NOT_AVAILABLE | CICS EIBFN | CICS EIBRESP | CICS EIBRESP2 | – |
| MQCRC_BRIDGE_ABEND MQCRC_APPLICATION_ABEND | – | – | – | CICS ABCODE |