MQIIH (IMS information header) on IBM i
The MQIIH structure describes the information that must be present at the start of a message sent to the IMS bridge through IBM MQ for z/OS®.
Overview
Format name: FMIMS.
Character set and encoding: Special conditions apply to the character set and encoding used for the MQIIH structure and application message data:- Applications that connect to the queue manager that owns the IMS bridge queue must provide an MQIIH structure that is in the character set and encoding of the queue manager. This is because data conversion of the MQIIH structure is not performed in this case.
- Applications that connect to other queue managers can provide an MQIIH structure that is in any of the supported character sets and encodings; conversion of the MQIIH is performed by the receiving message channel agent connected to the queue manager that owns the IMS bridge queue. Note: There is one exception to this. If the queue manager that owns the IMS bridge queue is using CICS® for distributed queuing, the MQIIH must be in the character set and encoding of the queue manager that owns the IMS bridge queue.
- The application message data following the MQIIH structure must be in the same character set and encoding as the MQIIH structure. The IICSI and IIENC fields in the MQIIH structure cannot be used to specify the character set and encoding of the application message data.
A data-conversion exit must be provided by the user to convert the application message data if the data is not one of the built-in formats supported by the queue manager.
Authenticating passtickets for IMS bridge applications
It is now possible for IBM MQ administrators to specify the application name to be used for authenticating passtickets, for IMS bridge applications. To do this, the application name is specified as a new attribute PTKTAPPL for the STGCLASS object definition, as a 1 to 8 character alphanumeric string.
A blank value means that authentication occurs as with previous releases of IBM MQ, that is, no application name flows on the authentication request, and the MVSxxxx value to is used instead.
A value of 1 - 8 alphanumeric characters must follow the rules for passticket application names as described in the RACF® publications.
IBM MQ Administrators and RACF administrators must both agree on the valid application names to be used. The RACF administrator must create a profile in the PTKTDATA class giving READ access to the user IDs of all applications that are to be granted access. The IBM MQ administrator must create or alter the required STGCLASS definitions that specify the application name to be used for passticket authentication.
For related information, see the Script (MQSC) Command Reference.
Fields
The MQIIH structure contains the following fields; the fields are described in alphabetical order:
- IIAUT (8-byte character string)
-
RACF password or passticket.
This is optional; if specified, it is used with the user ID in the MQMD security context to build a UTOKEN that is sent to IMS to provide a security context. If it is not specified, the user ID is used without verification. This depends on the setting of the RACF switches, which may require an authenticator to be present.
This is ignored if the first byte is blank or null. The following special value may be used:- IAUNON
- No authentication.
The length of this field is given by LNAUTH. The initial value of this field is IAUNON.
- IICMT (1-byte character string)
-
Commit mode.
See the OTMA Reference for more information about IMS commit modes. The value must be one of the following:- ICMCTS
- Commit then send.
This mode implies double queuing of output, but shorter region occupancy times. Fast-path and conversational transactions cannot run with this mode.
- ICMSTC
- Send then commit.
The initial value of this field is ICMCTS.
- IICSI (10-digit signed integer)
-
Reserved.
This is a reserved field; its value is not significant. The initial value of this field is 0.
- IIENC (10-digit signed integer)
-
Reserved.
This is a reserved field; its value is not significant. The initial value of this field is 0.
- IIFLG (10-digit signed integer)
-
Flags.
The value must be:- IINONE
- No flags.
The initial value of this field is IINONE.
- IIFMT (8-byte character string)
-
IBM MQ format name of data that follows MQIIH.
This specifies the IBM MQ format name of the data that follows the MQIIH structure.
On the MQPUT or MQPUT1 call, the application must set this field to the value appropriate to the data. The rules for coding this field are the same as those for the MDFMT field in MQMD.
The length of this field is given by LNFMT. The initial value of this field is FMNONE.
- IILEN (10-digit signed integer)
-
Length of MQIIH structure.
The value must be:- IILEN1
- Length of IMS information header structure.
The initial value of this field is IILEN1.
- IILTO (8-byte character string)
-
Logical terminal override.
This is placed in the IO PCB field. It is optional; if it is not specified the TPIPE name is used. It is ignored if the first byte is blank, or null.
The length of this field is given by LNLTOV. The initial value of this field is 8 blank characters.
- IIMMN (8-byte character string)
-
Message format services map name.
This is placed in the IO PCB field. It is optional. On input it represents the MID, on output it represents the MOD. It is ignored if the first byte is blank or null.
The length of this field is given by LNMFMN. The initial value of this field is 8 blank characters.
- IIRFM (8-byte character string)
-
IBM MQ format name of reply message.
This is the IBM MQ format name of the reply message that will be sent in response to the current message. The rules for coding this are the same as those for the MDFMT field in MQMD.
The length of this field is given by LNFMT. The initial value of this field is FMNONE.
- IIRSV (1-byte character string)
-
Reserved.
This is a reserved field; it must be blank.
- IISEC (1-byte character string)
-
Security scope.
This indicates the required IMS security processing. The following values are defined:- ISSCHK
- Check security scope.
An ACEE is built in the control region, but not in the dependent region.
- ISSFUL
- Full security scope.
A cached ACEE is built in the control region and a non-cached ACEE is built in the dependent region. If we use ISSFUL, you must ensure that the user ID for which the ACEE is built has access to the resources used in the dependent region.
If ISSCHK and ISSFUL are not specified for this field, ISSCHK is assumed.
The initial value of this field is ISSCHK.
- IISID (4-byte character string)
-
Structure identifier.
The value must be:- IISIDV
- Identifier for IMS information header structure.
The initial value of this field is IISIDV.
- IITID (16-byte bit string)
-
Transaction instance identifier.
This field is used by output messages from IMS so is ignored on first input. If IITST is set to ITSIC, this must be provided in the next input, and all subsequent inputs, to enable IMS to correlate the messages to the correct conversation. The following special value may be used:- ITINON
- No transaction instance ID.
The length of this field is given by LNTIID. The initial value of this field is ITINON.
- IITST (1-byte character string)
-
Transaction state.
This indicates the IMS conversation state. This is ignored on first input because no conversation exists. On subsequent inputs it indicates whether a conversation is active or not. On output it is set by IMS. The value must be one of the following:- ITSIC
- In conversation.
- ITSNIC
- Not in conversation.
- ITSARC
- Return transaction state data in architected form.
This value is used only with the IMS /DISPLAY TRAN command. It causes the transaction state data to be returned in the IMS architected form instead of character form. See Writing IMS transaction programs through IBM MQ for further details.
The initial value of this field is ITSNIC.
- IIVER (10-digit signed integer)
-
Structure version number.
The value must be:- IIVER1
- Version number for IMS information header structure.
The following constant specifies the version number of the current version:
- IIVERC
- Current version of IMS information header structure.
The initial value of this field is IIVER1.
Initial values
Field name | Name of constant | Value of constant |
---|---|---|
IISID | IISIDV | 'IIH¬' |
IIVER | IIVER1 | 1 |
IILEN | IILEN1 | 84 |
IIENC | None | 0 |
IICSI | None | 0 |
IIFMT | FMNONE | Blanks |
IIFLG | IINONE | 0 |
IILTO | None | Blanks |
IIMMN | None | Blanks |
IIRFM | FMNONE | Blanks |
IIAUT | IAUNON | Blanks |
IITID | ITINON | Nulls |
IITST | ITSNIC | '' |
IICMT | ICMCTS | '0' |
IISEC | ISSCHK | 'C' |
IIRSV | None | '' |
- The symbol ¬ represents a single blank character.
RPG declaration
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* D* MQIIH Structure D* D* Structure identifier D IISID 1 4 INZ('IIH ') D* Structure version number D IIVER 5 8I 0 INZ(1) D* Length of MQIIH structure D IILEN 9 12I 0 INZ(84) D* Reserved D IIENC 13 16I 0 INZ(0) D* Reserved D IICSI 17 20I 0 INZ(0) D* MQ format name of data that followsMQIIH D IIFMT 21 28 INZ(' ') D* Flags D IIFLG 29 32I 0 INZ(0) D* Logical terminal override D IILTO 33 40 INZ D* Message format services map name D IIMMN 41 48 INZ D* MQ format name of reply message D IIRFM 49 56 INZ(' ') D* RACF password or passticket D IIAUT 57 64 INZ(' ') D* Transaction instance identifier D IITID 65 80 INZ(X'00000000000000- D 000000000000000000') D* Transaction state D IITST 81 81 INZ(' ') D* Commit mode D IICMT 82 82 INZ('0') D* Security scope D IISEC 83 83 INZ('C') D* Reserved D IIRSV 84 84 INZ