MQCIH - CICS bridge header
The MQCIH structure describes the header information for a message sent to CICS® across the CICS bridge.
For any IBM® MQ supported platform you can create and transmit a message that includes the MQCIH structure, but only an IBM MQ for z/OS® queue manager can use the CICS bridge. Therefore, for the message to get to CICS from a non-z/OS queue manager, your queue manager network must include at least one z/OS queue manager through which the message can be routed.
All the CICS versions supported by IBM MQ 9.0.0, and later use the CICS supplied version of the bridge. For more information about configuring the IBM MQ CICS adapter, and the IBM MQ CICS bridge components, see the Configuring connections to MQ section of the CICS documentation.
Availability
AIX®
Linux®
Windows
z/OS
Format name
MQFMT_CICS
Version
The current version of MQCIH is MQCIH_VERSION_2. Fields that exist only in the more recent version of the structure are identified as such in the descriptions that follow.
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.
Character set and encoding
- Applications that connect to the queue manager that owns the CICS bridge queue must provide an MQCIH structure that is in the character set and encoding of the queue manager. This is 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 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
CodedCharSetIdandEncodingfields 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
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 input to the bridge.
Fields documented as response fields are set by the CICS 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 |
Fields
| Field name and description | Name of constant | Initial value (if any) of constant |
|---|---|---|
| StrucId (structure identifier) | MQCIH_STRUC_ID | 'CIH¬' |
| Version (structure version number) | MQCIH_VERSION_2 | 2 |
| StrucLength (length of MQCIH structure) | MQCIH_LENGTH_2 | 180 |
| Encoding (reserved) | None | 0 |
| CodedCharSetId (reserved) | None | 0 |
| Format (MQ format name of data that follows MQCIH) | MQFMT_NONE | Blanks |
| Flags (flags) | MQCIH_NONE | 0 |
| ReturnCode (return code from bridge) | MQCRC_OK | 0 |
| CompCode (MQ completion code or CICS EIBRESP) | MQCC_OK | 0 |
| Reason (MQ reason or feedback code, or CICS EIBRESP2) | MQRC_NONE | 0 |
| UOWControl (unit-of-work control) | MQCUOWC_ONLY | 273 |
| GetWaitInterval (wait interval for MQGET call issued by bridge task) | MQCGWI_DEFAULT | -2 |
| LinkType (link type) | MQCLT_PROGRAM | 1 |
| OutputDataLength (output COMMAREA data length) | MQCODL_AS_INPUT | -1 |
| FacilityKeepTime (bridge facility release time) | None | 0 |
| ADSDescriptor (send/receive ADS descriptor) | MQCADSD_NONE | 0 |
| ConversationalTask (whether task can be conversational) | MQCCT_NO | 0 |
| TaskEndStatus (status at end of task) | MQCTES_NOSYNC | 0 |
| Facility (bridge facility token) | MQCFAC_NONE | Nulls |
| Function (MQ call name or CICS EIBFN function) | MQCFUNC_NONE | Blanks |
| AbendCode (abend code) | None | Blanks |
| Authenticator (password or passticket) | None | Blanks |
| Reserved1 (reserved) | None | Blanks |
| ReplyToFormat (MQ format name of reply message) | MQFMT_NONE | Blanks |
| RemoteSysId (remote CICS system Id to use) | None | Blanks |
| RemoteTransId (CICS RTRANSID to use) | None | Blanks |
| TransactionId (transaction to attach) | None | Blanks |
| FacilityLike (terminal emulated attributes) | None | Blanks |
| AttentionId (AID key) | None | Blanks |
| StartCode (transaction start code) | MQCSC_NONE | Blanks |
| CancelCode (abend transaction code) | None | Blanks |
| NextTransactionId (next transaction to attach) | None | Blanks |
| Reserved2 (reserved) | None | Blanks |
| Reserved3 (reserved) | None | Blanks |
|
Note: The remaining fields are not present if
Version is less
than MQCIH_VERSION_2. |
||
| CursorPosition (cursor position) | None | 0 |
| ErrorOffset (offset of error in message) | None | 0 |
| InputItem (input item) | None | 0 |
| Reserved4 (reserved) | None | 0 |
|
Notes:
|
||
Language declarations
C declaration for MQCIH
typedef struct tagMQCIH MQCIH;
struct tagMQCIH {
MQCHAR4 StrucId; /* Structure identifier */
MQLONG Version; /* Structure version number */
MQLONG StrucLength; /* Length of MQCIH structure */
MQLONG Encoding; /* Reserved */
MQLONG CodedCharSetId; /* Reserved */
MQCHAR8 Format; /* MQ format name of data that follows
MQCIH */
MQLONG Flags; /* Flags */
MQLONG ReturnCode; /* Return code from bridge */
MQLONG CompCode; /* MQ completion code or CICS EIBRESP */
MQLONG Reason; /* MQ reason or feedback code, or CICS
EIBRESP2 */
MQLONG UOWControl; /* Unit-of-work control */
MQLONG GetWaitInterval; /* Wait interval for MQGET call issued
by bridge task */
MQLONG LinkType; /* Link type */
MQLONG OutputDataLength; /* Output COMMAREA data length */
MQLONG FacilityKeepTime; /* Bridge facility release time */
MQLONG ADSDescriptor; /* Send/receive ADS descriptor */
MQLONG ConversationalTask; /* Whether task can be conversational */
MQLONG TaskEndStatus; /* Status at end of task */
MQBYTE8 Facility; /* Bridge facility token */
MQCHAR4 Function; /* MQ call name or CICS EIBFN
function */
MQCHAR4 AbendCode; /* Abend code */
MQCHAR8 Authenticator; /* Password or passticket */
MQCHAR8 Reserved1; /* Reserved */
MQCHAR8 ReplyToFormat; /* MQ format name of reply message */
MQCHAR4 RemoteSysId; /* Reserved */
MQCHAR4 RemoteTransId; /* Reserved */
MQCHAR4 TransactionId; /* Transaction to attach */
MQCHAR4 FacilityLike; /* Terminal emulated attributes */
MQCHAR4 AttentionId; /* AID key */
MQCHAR4 StartCode; /* Transaction start code */
MQCHAR4 CancelCode; /* Abend transaction code */
MQCHAR4 NextTransactionId; /* Next transaction to attach */
MQCHAR8 Reserved2; /* Reserved */
MQCHAR8 Reserved3; /* Reserved */
MQLONG CursorPosition; /* Cursor position */
MQLONG ErrorOffset; /* Offset of error in message */
MQLONG InputItem; /* Reserved */
MQLONG Reserved4; /* Reserved */
};
COBOL declaration for MQCIH
** MQCIH structure
10 MQCIH.
** Structure identifier
15 MQCIH-STRUCID PIC X(4).
** Structure version number
15 MQCIH-VERSION PIC S9(9) BINARY.
** Length of MQCIH structure
15 MQCIH-STRUCLENGTH PIC S9(9) BINARY.
** Reserved
15 MQCIH-ENCODING PIC S9(9) BINARY.
** Reserved
15 MQCIH-CODEDCHARSETID PIC S9(9) BINARY.
** MQ format name of data that follows MQCIH
15 MQCIH-FORMAT PIC X(8).
** Flags
15 MQCIH-FLAGS PIC S9(9) BINARY.
** Return code from bridge
15 MQCIH-RETURNCODE PIC S9(9) BINARY.
** MQ completion code or CICS EIBRESP
15 MQCIH-COMPCODE PIC S9(9) BINARY.
** MQ reason or feedback code, or CICS EIBRESP2
15 MQCIH-REASON PIC S9(9) BINARY.
** Unit-of-work control
15 MQCIH-UOWCONTROL PIC S9(9) BINARY.
** Wait interval for MQGET call issued by bridge task
15 MQCIH-GETWAITINTERVAL PIC S9(9) BINARY.
** Link type
15 MQCIH-LINKTYPE PIC S9(9) BINARY.
** Output COMMAREA data length
15 MQCIH-OUTPUTDATALENGTH PIC S9(9) BINARY.
** Bridge facility release time
15 MQCIH-FACILITYKEEPTIME PIC S9(9) BINARY.
** Send/receive ADS descriptor
15 MQCIH-ADSDESCRIPTOR PIC S9(9) BINARY.
** Whether task can be conversational
15 MQCIH-CONVERSATIONALTASK PIC S9(9) BINARY.
** Status at end of task
15 MQCIH-TASKENDSTATUS PIC S9(9) BINARY.
** Bridge facility token
15 MQCIH-FACILITY PIC X(8).
** MQ call name or CICS EIBFN function
15 MQCIH-FUNCTION PIC X(4).
** Abend code
15 MQCIH-ABENDCODE PIC X(4).
** Password or passticket
15 MQCIH-AUTHENTICATOR PIC X(8).
** Reserved
15 MQCIH-RESERVED1 PIC X(8).
** MQ format name of reply message
15 MQCIH-REPLYTOFORMAT PIC X(8).
** Reserved
15 MQCIH-REMOTESYSID PIC X(4).
** Reserved
15 MQCIH-REMOTETRANSID PIC X(4).
** Transaction to attach
15 MQCIH-TRANSACTIONID PIC X(4).
** Terminal emulated attributes
15 MQCIH-FACILITYLIKE PIC X(4).
** AID key
15 MQCIH-ATTENTIONID PIC X(4).
** Transaction start code
15 MQCIH-STARTCODE PIC X(4).
** Abend transaction code
15 MQCIH-CANCELCODE PIC X(4).
** Next transaction to attach
15 MQCIH-NEXTTRANSACTIONID PIC X(4).
** Reserved
15 MQCIH-RESERVED2 PIC X(8).
** Reserved
15 MQCIH-RESERVED3 PIC X(8).
** Cursor position
15 MQCIH-CURSORPOSITION PIC S9(9) BINARY.
** Offset of error in message
15 MQCIH-ERROROFFSET PIC S9(9) BINARY.
** Reserved
15 MQCIH-INPUTITEM PIC S9(9) BINARY.
** Reserved
15 MQCIH-RESERVED4 PIC S9(9) BINARY.
PL/I declaration for MQCIH
dcl
1 MQCIH based,
3 StrucId char(4), /* Structure identifier */
3 Version fixed bin(31), /* Structure version number */
3 StrucLength fixed bin(31), /* Length of MQCIH structure */
3 Encoding fixed bin(31), /* Reserved */
3 CodedCharSetId fixed bin(31), /* Reserved */
3 Format char(8), /* MQ format name of data that
follows MQCIH */
3 Flags fixed bin(31), /* Flags */
3 ReturnCode fixed bin(31), /* Return code from bridge */
3 CompCode fixed bin(31), /* MQ completion code or CICS
EIBRESP */
3 Reason fixed bin(31), /* MQ reason or feedback code, or
CICS EIBRESP2 */
3 UOWControl fixed bin(31), /* Unit-of-work control */
3 GetWaitInterval fixed bin(31), /* Wait interval for MQGET call
issued by bridge task */
3 LinkType fixed bin(31), /* Link type */
3 OutputDataLength fixed bin(31), /* Output COMMAREA data length */
3 FacilityKeepTime fixed bin(31), /* Bridge facility release time */
3 ADSDescriptor fixed bin(31), /* Send/receive ADS descriptor */
3 ConversationalTask fixed bin(31), /* Whether task can be
conversational */
3 TaskEndStatus fixed bin(31), /* Status at end of task */
3 Facility char(8), /* Bridge facility token */
3 Function char(4), /* MQ call name or CICS EIBFN
function */
3 AbendCode char(4), /* Abend code */
3 Authenticator char(8), /* Password or passticket */
3 Reserved1 char(8), /* Reserved */
3 ReplyToFormat char(8), /* MQ format name of reply
message */
3 RemoteSysId char(4), /* Reserved */
3 RemoteTransId char(4), /* Reserved */
3 TransactionId char(4), /* Transaction to attach */
3 FacilityLike char(4), /* Terminal emulated attributes */
3 AttentionId char(4), /* AID key */
3 StartCode char(4), /* Transaction start code */
3 CancelCode char(4), /* Abend transaction code */
3 NextTransactionId char(4), /* Next transaction to attach */
3 Reserved2 char(8), /* Reserved */
3 Reserved3 char(8), /* Reserved */
3 CursorPosition fixed bin(31), /* Cursor position */
3 ErrorOffset fixed bin(31), /* Offset of error in message */
3 InputItem fixed bin(31), /* Reserved */
3 Reserved4 fixed bin(31); /* Reserved */
High Level Assembler declaration for MQCIH
MQCIH DSECT
MQCIH_STRUCID DS CL4 Structure identifier
MQCIH_VERSION DS F Structure version number
MQCIH_STRUCLENGTH DS F Length of MQCIH structure
MQCIH_ENCODING DS F Reserved
MQCIH_CODEDCHARSETID DS F Reserved
MQCIH_FORMAT DS CL8 MQ format name of data that follows
* MQCIH
MQCIH_FLAGS DS F Flags
MQCIH_RETURNCODE DS F Return code from bridge
MQCIH_COMPCODE DS F MQ completion code or CICS EIBRESP
MQCIH_REASON DS F MQ reason or feedback code, or CICS
* EIBRESP2
MQCIH_UOWCONTROL DS F Unit-of-work control
MQCIH_GETWAITINTERVAL DS F Wait interval for MQGET call issued
* by bridge task
MQCIH_LINKTYPE DS F Link type
MQCIH_OUTPUTDATALENGTH DS F Output COMMAREA data length
MQCIH_FACILITYKEEPTIME DS F Bridge facility release time
MQCIH_ADSDESCRIPTOR DS F Send/receive ADS descriptor
MQCIH_CONVERSATIONALTASK DS F Whether task can be conversational
MQCIH_TASKENDSTATUS DS F Status at end of task
MQCIH_FACILITY DS XL8 Bridge facility token
MQCIH_FUNCTION DS CL4 MQ call name or CICS EIBFN function
MQCIH_ABENDCODE DS CL4 Abend code
MQCIH_AUTHENTICATOR DS CL8 Password or passticket
MQCIH_RESERVED1 DS CL8 Reserved
MQCIH_REPLYTOFORMAT DS CL8 MQ format name of reply message
MQCIH_REMOTESYSID DS CL4 Reserved
MQCIH_REMOTETRANSID DS CL4 Reserved
MQCIH_TRANSACTIONID DS CL4 Transaction to attach
MQCIH_FACILITYLIKE DS CL4 Terminal emulated attributes
MQCIH_ATTENTIONID DS CL4 AID key
MQCIH_STARTCODE DS CL4 Transaction start code
MQCIH_CANCELCODE DS CL4 Abend transaction code
MQCIH_NEXTTRANSACTIONID DS CL4 Next transaction to attach
MQCIH_RESERVED2 DS CL8 Reserved
MQCIH_RESERVED3 DS CL8 Reserved
MQCIH_CURSORPOSITION DS F Cursor position
MQCIH_ERROROFFSET DS F Offset of error in message
MQCIH_INPUTITEM DS F Reserved
MQCIH_RESERVED4 DS F Reserved
*
MQCIH_LENGTH EQU *-MQCIH
ORG MQCIH
MQCIH_AREA DS CL(MQCIH_LENGTH)
Visual Basic declaration for MQCIH
Type MQCIH
StrucId As String*4 'Structure identifier'
Version As Long 'Structure version number'
StrucLength As Long 'Length of MQCIH structure'
Encoding As Long 'Reserved'
CodedCharSetId As Long 'Reserved'
Format As String*8 'MQ format name of data that follows'
'MQCIH'
Flags As Long 'Flags'
ReturnCode As Long 'Return code from bridge'
CompCode As Long 'MQ completion code or CICS EIBRESP'
Reason As Long 'MQ reason or feedback code, or CICS'
'EIBRESP2'
UOWControl As Long 'Unit-of-work control'
GetWaitInterval As Long 'Wait interval for MQGET call issued'
'by bridge task'
LinkType As Long 'Link type'
OutputDataLength As Long 'Output COMMAREA data length'
FacilityKeepTime As Long 'Bridge facility release time'
ADSDescriptor As Long 'Send/receive ADS descriptor'
ConversationalTask As Long 'Whether task can be conversational'
TaskEndStatus As Long 'Status at end of task'
Facility As MQBYTE8 'Bridge facility token'
Function As String*4 'MQ call name or CICS EIBFN function'
AbendCode As String*4 'Abend code'
Authenticator As String*8 'Password or passticket'
Reserved1 As String*8 'Reserved'
ReplyToFormat As String*8 'MQ format name of reply message'
RemoteSysId As String*4 'Reserved'
RemoteTransId As String*4 'Reserved'
TransactionId As String*4 'Transaction to attach'
FacilityLike As String*4 'Terminal emulated attributes'
AttentionId As String*4 'AID key'
StartCode As String*4 'Transaction start code'
CancelCode As String*4 'Abend transaction code'
NextTransactionId As String*4 'Next transaction to attach'
Reserved2 As String*8 'Reserved'
Reserved3 As String*8 'Reserved'
CursorPosition As Long 'Cursor position'
ErrorOffset As Long 'Offset of error in message'
InputItem As Long 'Reserved'
Reserved4 As Long 'Reserved'
End Type