MQCD - Channel definition
The MQCD structure contains the parameters which control execution of a channel. It is passed to each channel exit that is called from a Message Channel Agent (MCA).
For more information about channel exits, see MQ_CHANNEL_EXIT - Channel exit. The description in this topic relates both to message channels and to MQI channels.
Exit name fields
When an exit is called, the relevant field from SecurityExit, MsgExit, SendExit, ReceiveExit, and MsgRetryExit contains the name of the exit currently being invoked. The meaning of the name in these fields depends on the environment in which the MCA is running. Except where noted, the name is left-aligned within the field, with no embedded blanks; the name is padded with blanks to the length of the field. In the descriptions that follow, square brackets ([ ]) denote optional information:
- UNIX
- The exit name is the name of a dynamically loadable module or library, suffixed with the name of a function residing in that library. The function name must be enclosed in parentheses. The library name can optionally be prefixed with a directory path:
[ path ] library ( function )
The name is limited to a maximum of 128 characters.
- z/OS
- The exit name is the name of a load module that is valid for specification on the EP parameter of the LINK or LOAD macro. The name is limited to a maximum of eight characters.
- Windows
- The exit name is the name of a dynamic-link library, suffixed with the name of a function residing in that library. The function name must be enclosed in parentheses. The library name can optionally be prefixed with a directory path and drive:
[d:][ path ] library ( function )
The name is limited to a maximum of 128 characters.
- IBM i
- The exit name is a 10 byte program name followed by a 10 byte library name. If the names are less than 10 bytes long, each name is padded with blanks to make it 10 bytes. The library name can be *LIBL except when calling a channel auto-definition exit, in which case a fully qualified name is required.
Change MQCD fields in a channel exit
A channel exit can change fields in the MQCD. The changed value remains in the MQCD and is passed to any remaining exits in an exit chain and to any conversation sharing the channel instance. The changed MQCD is also used by the MCA for its normal processing during the continuing lifetime of the channel.
The following MQCD fields must not be altered by the exit:- ChannelName
- ChannelType
- StrucLength
- Version
- Fields
This topic lists all the fields in the MQCD structure and describes each field. - C declaration
This declaration is the C declaration for the MQCD structure. - COBOL declaration
This declaration is the COBOL declaration for the MQCD structure. - RPG declaration (ILE)
This declaration is the RPG declaration for the MQCD structure. - System/390 assembler declaration
This declaration is the System/390 assembler declaration for the MQCD structure. - Visual Basic declaration
This declaration is the Visual Basic declaration of the MQCD structure. - Change MQCD fields in a channel exit
A channel exit can change fields in the MQCD. However, these changes are not typically acted on, except in the circumstances listed.
Parent topic: Channel-exit calls and data structures
Related reference
- Fields
- C declaration
- COBOL declaration
- RPG declaration (ILE)
- System/390 assembler declaration
- Visual Basic declaration
- Change MQCD fields in a channel exit