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). See MQ_CHANNEL_EXIT .
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 below, the name is left-justified 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:
[path]library(function)
The name is limited to a maximum of 128 characters.
[d:][path]library(function)
The name is limited to a maximum of 128 characters.
Channel definition name.
There must be a channel definition of the same name at the remote machine to be able to communicate.
The name must use only the characters:
and be padded to the right with blanks. Leading or embedded blanks are not allowed.
The length of this field is given by MQ_CHANNEL_NAME_LENGTH.
Structure version number.
The value depends on the environment:
The field has this value on WebSphere MQ for z/OS when CICS is used for distributed queuing. Note, however, that the MQCD passed to the exit is in fact a version-2 structure.
This value is not used by any current WebSphere MQ product.
The field has this value on MQSeries Version 2 in the following environments: Compaq OpenVMS Alpha, Compaq NonStop Kernel, UNIX systems not listed elsewhere, Windows systems.
The field has this value on MQSeries Version 5 Release 0 in the following environments: AIX, HP-UX, OS/2, Solaris, Windows, and on MQSeries for MVS/ESA V1.2 when CICS is not used for distributed queuing.
The field has this value on MQSeries for OS/390 Version 2 Release 1 and Version 5 Release 2 when CICS is not used for distributed queuing.
The field has this value on MQSeries Version 5 Release 1 and Version 5 Release 2 in the following environments: AIX, HP-UX, OS/2, OS/400, Solaris, Windows, plus WebSphere MQ clients connected to these systems.
The field has this value on Websphere MQ Version 5 Release 3 in the following environments: AIX, HP-UX, Solaris, Windows, and on Websphere MQ for z/OS Version 5 Release 3 when CICS is not used for distributed queuing.
Fields that exist only in the more-recent versions of the structure are identified as such in the descriptions of the fields. The following constant specifies the version number of the current version:
The value of this constant depends on the environment (see above).
Channel type.
Transport type.
Transmission protocol to be used.
Note that the value will not have been checked if the channel was initiated from the other end.
The value is one of the following:
This value is supported in the following environments: OS/2, Windows.
This value is supported in the following environments: OS/2, Windows, plus WebSphere MQ clients connected to these systems.
This value is supported in the following environment: Compaq OpenVMS Alpha.
This value is supported in the following environments: AIX.
Channel description.
This is a field that may be used for descriptive commentary. The content of the field is of no significance to Message Channel Agents. However, it should contain only characters that can be displayed. It cannot contain any null characters; if necessary, it is padded to the right with blanks. In a DBCS installation, the field can contain DBCS characters (subject to a maximum field length of 64 bytes).
The length of this field is given by MQ_CHANNEL_DESC_LENGTH.
Queue-manager name.
For channels with a ChannelType other than MQCHT_CLNTCONN, this is the name of the queue manager that an exit can connect to, which on OS/2, UNIX systems, and Windows NT, is always nonblank.
The length of this field is given by MQ_Q_MGR_NAME_LENGTH.
Transmission queue name.
The name of the transmission queue from which messages are retrieved.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER or MQCHT_SERVER.
The length of this field is given by MQ_Q_NAME_LENGTH.
First 20 bytes of connection name.
If the Version field is MQCD_VERSION_1, ShortConnectionName contains the full connection name.
If the Version field is MQCD_VERSION_2 or greater, ShortConnectionName contains the first 20 characters of the connection name. The full connection name is given by the ConnectionName field; ShortConnectionName and the first 20 characters of ConnectionName are identical.
See ConnectionName for details of the contents of this field.
The length of this field is given by MQ_SHORT_CONN_NAME_LENGTH.
Reserved.
This is a reserved field; its value is blank.
The length of this field is given by MQ_MCA_NAME_LENGTH.
LU 6.2 Mode name.
This field is relevant only if the transmission protocol (TransportType) is MQXPT_LU62, and the ChannelType is not MQCHT_SVRCONN or MQCHT_RECEIVER.
On iSeries, z/OS without CICS, UNIX systems, and MQSeries for Windows, this field is always blank. The information is contained in the communications Side Object instead.
The length of this field is given by MQ_MODE_NAME_LENGTH.
LU 6.2 transaction program name.
This field is relevant only if the transmission protocol (TransportType) is MQXPT_LU62, and the ChannelType is not MQCHT_SVRCONN or MQCHT_RECEIVER.
On OS/400, z/OS without CICS, UNIX systems, and MQSeries for Windows, this field is always blank. The information is contained in the communications Side Object instead.
The length of this field is given by MQ_TP_NAME_LENGTH.
Batch size.
The maximum number of messages that can be sent through a channel before synchronizing the channel.
This field is not relevant for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_CLNTCONN.
Disconnect interval.
The maximum time in seconds for which the channel waits for a message to arrive on the transmission queue, before terminating the channel. A value of zero causes the MCA to wait indefinitely.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
Short retry count.
This is the maximum number of attempts that are made to connect to the remote machine, at intervals specified by ShortRetryInterval, before the (normally longer) LongRetryCount and LongRetryInterval are used.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER (only for WebSphere MQ for z/OS using CICS distributed queuing), MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
Short retry wait interval.
This is the maximum number of seconds to wait before reattempting connection to the remote machine. Note that the interval between retries may be extended if the channel has to wait to become active.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER (only for WebSphere MQ for z/OS using CICS distributed queuing), MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
Long retry count.
This count is used after the count specified by ShortRetryCount has been exhausted. It specifies the maximum number of further attempts that are made to connect to the remote machine, at intervals specified by LongRetryInterval, before logging an error to the operator.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER (only for WebSphere MQ for z/OS using CICS distributed queuing), MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
Long retry wait interval.
This is the maximum number of seconds to wait before reattempting connection to the remote machine. Note that the interval between retries may be extended if the channel has to wait to become active.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER (only for WebSphere MQ for z/OS using CICS distributed queuing), MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
Channel security exit name.
If this name is nonblank, the exit is called at the following times:
Before any messages are transferred, the exit is given the opportunity to instigate security flows to validate connection authorization.
Any security message flows received from the remote processor on the remote machine are given to the exit.
SeeExit name fields for a description of the content of this field in various environments.
The length of this field is given by MQ_EXIT_NAME_LENGTH.
Channel message exit name.
If this name is nonblank, the exit is called at the following times:
The exit is given the entire application message and transmission queue header for modification.
This field is not relevant for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_CLNTCONN; a message exit is never invoked for such channels.
See Exit name fields for a description of the content of this field in various environments.
The length of this field is given by MQ_EXIT_NAME_LENGTH.
Channel send exit name.
If this name is nonblank, the exit is called at the following times:
The exit is given the complete transmission buffer before it is transmitted. The contents of the buffer can be modified as required.
See Exit name fields for a description of the content of this field in various environments.
The length of this field is given by MQ_EXIT_NAME_LENGTH.
Channel receive exit name.
If this name is nonblank, the exit is called at the following times:
The exit is given the complete transmission buffer as received. The contents of the buffer can be modified as required.
See Exit name fields for a description of the content of this field in various environments.
The length of this field is given by MQ_EXIT_NAME_LENGTH.
Highest allowable message sequence number.
When this value is reached, sequence numbers wrap to start again at 1.
This value is non-negotiable and must match in both the local and remote channel definitions.
This field is not relevant for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_CLNTCONN.
Maximum message length.
Specifies the maximum message length that can be transmitted on the channel. This is compared with the value for the remote channel and the actual maximum is the lower of the two values.
Put authority.
Specifies whether the user identifier in the context information associated with a message should be used to establish authority to put the message to the destination queue.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER, MQCHT_RECEIVER, or MQCHT_CLUSRCVR. It is one of the following:
Data conversion.
This specifies whether the sending message channel agent should attempt conversion of the application message data if the receiving message channel agent is unable to perform this conversion. This applies only to messages that are not segments of logical messages; the MCA never attempts to convert messages which are segments.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR. It is one of the following:
Channel security exit user data.
This is passed to the channel security exit in the ExitData field of the ChannelExitParms parameter (see MQ_CHANNEL_EXIT ).
This field initially contains the data that was set in the channel definition. However, during the lifetime of this MCA instance, any changes made to the contents of this field by an exit of any type are preserved by the MCA, and made visible to subsequent invocations of exits (regardless of type) for this MCA instance. Such changes have no effect on the channel definition used by other MCA instances. Any characters (including binary data) can be used.
The length of this field is given by MQ_EXIT_DATA_LENGTH.
Channel message exit user data.
This is passed to the channel message exit in the ExitData field of the ChannelExitParms parameter (see MQ_CHANNEL_EXIT ).
This field initially contains the data that was set in the channel definition. However, during the lifetime of this MCA instance, any changes made to the contents of this field by an exit of any type are preserved by the MCA, and made visible to subsequent invocations of exits (regardless of type) for this MCA instance. Such changes have no effect on the channel definition used by other MCA instances. Any characters (including binary data) can be used.
The length of this field is given by MQ_EXIT_DATA_LENGTH.
Channel send exit user data.
This is passed to the channel send exit in the ExitData field of the ChannelExitParms parameter (see MQ_CHANNEL_EXIT ).
This field initially contains the data that was set in the channel definition. However, during the lifetime of this MCA instance, any changes made to the contents of this field by an exit of any type are preserved by the MCA, and made visible to subsequent invocations of exits (regardless of type) for this MCA instance. Such changes have no effect on the channel definition used by other MCA instances. Any characters (including binary data) can be used.
The length of this field is given by MQ_EXIT_DATA_LENGTH.
Channel receive exit user data.
This is passed to the channel receive exit in the ExitData field of the ChannelExitParms parameter (see MQ_CHANNEL_EXIT ).
This field initially contains the data that was set in the channel definition. However, during the lifetime of this MCA instance, any changes made to the contents of this field by an exit of any type are preserved by the MCA, and made visible to subsequent invocations of exits (regardless of type) for this MCA instance. Such changes have no effect on the channel definition used by other MCA instances. Any characters (including binary data) can be used.
The length of this field is given by MQ_EXIT_DATA_LENGTH.
The following fields in this structure are not present if Version is less than MQCD_VERSION_2.
User identifier.
This is used by the message channel agent when attempting to initiate a secure SNA session with a remote message channel agent.
This field can be nonblank only on OS/2, UNIX systems, and Windows, and is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER or MQCHT_CLNTCONN. On z/OS this field is not relevant.
The length of this field is given by MQ_USER_ID_LENGTH, however only the first 10 characters are used.
This field is not present when Version is less than MQCD_VERSION_2.
Password.
This is used by the message channel agent when attempting to initiate a secure SNA session with a remote message channel agent.
This field can be nonblank only on OS/2, UNIX systems, and Windows, and is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER or MQCHT_CLNTCONN. On z/OS this field is not relevant.
The length of this field is given by MQ_PASSWORD_LENGTH, however only the first 10 characters are used.
This field is not present if Version is less than MQCD_VERSION_2.
First 12 bytes of MCA user identifier.
There are two fields that contain the MCA user identifier:
If the MCA user identifier is nonblank, it specifies the user identifier to be used by the message channel agent for authorization to access WebSphere MQ resources, including (if PutAuthority is MQPA_DEFAULT) authorization to put the message to the destination queue for receiver or requester channels.
If the MCA user identifier is blank, the message channel agent uses its default user identifier.
The MCA user identifier can be set by a security exit to indicate the user identifier that the message channel agent should use. The exit can change either MCAUserIdentifier, or the string pointed at by LongMCAUserIdPtr. If both are changed but differ from each other, the MCA uses LongMCAUserIdPtr in preference to MCAUserIdentifier. If the exit changes the length of the string addressed by LongMCAUserIdPtr, LongMCAUserIdLength must be set correspondingly. If the exit wishes to increase the length of the identifier, the exit must allocate storage of the required length, set that storage to the required identifier, and place the address of that storage in LongMCAUserIdPtr. The exit is responsible for freeing that storage when the exit is later invoked with the MQXR_TERM reason.
For channels with a ChannelType of MQCHT_SVRCONN, if MCAUserIdentifier in the channel definition is blank, any user identifier transferred from the client is copied into it. This user identifier (after any modification by the security exit at the server) is the one which the client application is assumed to be running under.
The MCA user identifier is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.
This is an input/output field to the exit. The length of this field is given by MQ_USER_ID_LENGTH. This field is not present when Version is less than MQCD_VERSION_2.
Message channel agent type.
This is the type of the message channel agent program.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
The value is one of the following:
The message channel agent runs as a separate process.
The message channel agent runs as a separate thread.
This value is supported in the following environments: OS/2, Windows.
This field is not present when Version is less than MQCD_VERSION_2.
Connection name.
This is the full connection name of the partner. The type of name depends on the transmission protocol (TransportType) to be used:
When defining a channel, this field is not relevant for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_RECEIVER. However, when the channel definition is passed to an exit, this field contains the address of the partner, whatever the channel type.
The length of this field is given by MQ_CONN_NAME_LENGTH. This field is not present if Version is less than MQCD_VERSION_2.
First 12 bytes of user identifier from partner.
There are two fields that contain the remote user identifier:
LongRemoteUserIdPtr is not present if Version is less than MQCD_VERSION_6.
The remote user identifier is relevant only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN.
If there is a security exit at the client, then this information can be obtained in a security flow from the client.
The length of this field is given by MQ_USER_ID_LENGTH. This field is not present if Version is less than MQCD_VERSION_2.
Password from partner.
This field contains valid information only if ChannelType is MQCHT_CLNTCONN or MQCHT_SVRCONN.
If there is a security exit at the client, then this information can be obtained in a security flow from the client.
The length of this field is given by MQ_PASSWORD_LENGTH. This field is not present if Version is less than MQCD_VERSION_2.
The following fields in this structure are not present if Version is less than MQCD_VERSION_3.
Channel message retry exit name.
The message retry exit is an exit that is invoked by the MCA when the MCA receives a completion code of MQCC_FAILED from an MQOPEN or MQPUT call. The purpose of the exit is to specify a time interval for which the MCA should wait before retrying the MQOPEN or MQPUT operation. Alternatively, the exit can decide that the operation should not be retried.
The exit is invoked for all reason codes that have a completion code of MQCC_FAILED -- it is up to the exit to decide which reason codes it wants the MCA to retry, for how many attempts, and at what time intervals.
When the exit decides that the operation should not be retried any more, the MCA performs its normal failure processing; this includes generating an exception report message (if specified by the sender), and either placing the original message on the dead-letter queue or discarding the message (according to whether the sender specified MQRO_DEAD_LETTER_Q or MQRO_DISCARD_MSG, respectively). Note that failures involving the dead-letter queue (for example, dead-letter queue full) do not cause the message-retry exit to be invoked.
If the exit name is nonblank, the exit is called at the following times:
See Exit name fields for a description of the content of this field in various environments.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER, MQCHT_RECEIVER, or MQCHT_CLUSRCVR.
The length of this field is given by MQ_EXIT_NAME_LENGTH.
Notes:
This field is not present when Version is less than MQCD_VERSION_3.
Channel message retry exit user data.
This is passed to the channel message-retry exit in the ExitData field of the ChannelExitParms parameter (see MQ_CHANNEL_EXIT ).
This field initially contains the data that was set in the channel definition. However, during the lifetime of this MCA instance, any changes made to the contents of this field by an exit of any type are preserved by the MCA, and made visible to subsequent invocations of exits (regardless of type) for this MCA instance. Such changes have no effect on the channel definition used by other MCA instances. Any characters (including binary data) can be used.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER, MQCHT_RECEIVER, or MQCHT_CLUSRCVR.
The length of this field is given by MQ_EXIT_DATA_LENGTH. This field is not present when Version is less than MQCD_VERSION_3.
On z/OS this field is always blank.
Number of times MCA will try to put the message, after the first attempt has failed.
This indicates the number of times that the MCA will retry the open or put operation, if the first MQOPEN or MQPUT fails with completion code MQCC_FAILED. The effect of this attribute depends on whether MsgRetryExit is blank or nonblank:
Retries are attempted only for the following reason codes:
For other reason codes, the MCA proceeds immediately to its normal failure processing, without retrying the failing message.
The MsgRetryCount attribute is made available to the exit in the MQCD structure, but the exit it not required to honor it -- retries continue indefinitely until the exit returns MQXCC_SUPPRESS_FUNCTION in the ExitResponse field of MQCXP.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER, MQCHT_RECEIVER, or MQCHT_CLUSRCVR.
This field is not present when Version is less than MQCD_VERSION_3.
On z/OS this field is always zero.
Minimum interval in milliseconds after which the open or put operation will be retried.
The effect of this attribute depends on whether MsgRetryExit is blank or nonblank:
This attribute is also used as the wait time if the message-retry exit returns an invalid value in the MsgRetryInterval field in MQCXP.
The value is in the range 0 through 999 999 999.
This field is relevant only for channels with a ChannelType of MQCHT_REQUESTER, MQCHT_RECEIVER, or MQCHT_CLUSRCVR.
This field is not present when Version is less than MQCD_VERSION_3.
On z/OS this field is always zero.
The following fields in this structure are not present if Version is less than MQCD_VERSION_4.
Time in seconds between heartbeat flows.
The interpretation of this field depends on the channel type, as follows:
This type of heartbeat is supported in the following environments: AIX, HP-UX, Linux, z/OS, OS/2, iSeries, Solaris, Windows.
This type of heartbeat is supported in the following environments: AIX, HP-UX, Linux, OS/2, iSeries, Solaris, Windows.
The value is in the range 0 through 999 999. A value of 0 means that no heartbeat exchange occurs. The value that is actually used is the larger of the values specified at the sending side and receiving side.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Batch duration.
This is the approximate time in milliseconds that a channel will keep a batch open, if fewer than BatchSize messages have been transmitted in the current batch.
If BatchInterval is greater than zero, the batch is terminated by whichever of the following occurs first:
If BatchInterval is zero, the batch is terminated by whichever of the following occurs first:
BatchInterval must be in the range zero through 999 999 999.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
This is an input field to the exit. The field is not present when Version is less than MQCD_VERSION_4.
Speed at which nonpersistent messages are sent.
This specifies the speed at which nonpersistent messages travel through the channel.
This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_RECEIVER, MQCHT_REQUESTER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
The value is one of the following:
If a channel is defined to be MQNPMS_NORMAL, nonpersistent messages travel through the channel at normal speed. This has the advantage that these messages will not be lost if there is a channel failure. Also, persistent and nonpersistent messages on the same transmission queue maintain their order relative to each other.
If a channel is defined to be MQNPMS_FAST, nonpersistent messages travel through the channel at fast speed. This improves the throughput of the channel, but means that nonpersistent messages will be lost if there is a channel failure. Also, it is possible for nonpersistent messages to jump ahead of persistent messages waiting on the same transmission queue, that is, the order of nonpersistent messages is not maintained relative to persistent messages. However the order of nonpersistent messages relative to each other is maintained. Similarly, the order of persistent messages relative to each other is maintained.
Length of MQCD structure.
This is the length in bytes of the MQCD structure. The length does not include any of the strings addressed by pointer fields contained within the structure. The value is one of the following:
The following constant specifies the length of the current version:
The field is not present if Version is less than MQCD_VERSION_4.
Length of exit name.
This is the length in bytes of each of the names in the lists of exit names addressed by the MsgExitPtr, SendExitPtr, and ReceiveExitPtr fields. This length is not necessarily the same as MQ_EXIT_NAME_LENGTH.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Length of exit user data.
This is the length in bytes of each of the user data items in the lists of exit user data items addressed by the MsgUserDataPtr, SendUserDataPtr, and ReceiveUserDataPtr fields. This length is not necessarily the same as MQ_EXIT_DATA_LENGTH.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Number of message exits defined.
This is the number of channel message exits in the chain. It is greater than or equal to zero.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Number of send exits defined.
This is the number of channel send exits in the chain. It is greater than or equal to zero.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Number of receive exits defined.
This is the number of channel receive exits in the chain. It is greater than or equal to zero.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first MsgExit field.
If MsgExitsDefined is greater than zero, this is the address of the list of names of each channel message exit in the chain.
Each name is in a field of length ExitNameLength, padded to the right with blanks. There are MsgExitsDefined fields adjoining one another - one for each exit.
Any changes made to these names by an exit are preserved, although the message channel exit takes no explicit action - it does not change which exits are invoked.
If MsgExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first MsgUserData field.
If MsgExitsDefined is greater than zero, this is the address of the list of user data items for each channel message exit in the chain.
Each user data item is in a field of length ExitDataLength, padded to the right with blanks. There are MsgExitsDefined fields adjoining one another - one for each exit. If the number of user data items defined is less than the number of exit names, undefined user data items are set to blanks. Conversely, if the number of user data items defined is greater than the number of exit names, the excess user data items are ignored and not presented to the exit.
Any changes made to these values by an exit are preserved. This allows one exit to pass information to another exit. No validation is carried out on any changes so, for example, binary data can be written to these fields if required.
If MsgExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first SendExit field.
If SendExitsDefined is greater than zero, this is the address of the list of names of each channel send exit in the chain.
Each name is in a field of length ExitNameLength, padded to the right with blanks. There are SendExitsDefined fields adjoining one another - one for each exit.
Any changes made to these names by an exit are preserved, although the message send exit takes no explicit action - it does not change which exits are invoked.
If SendExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first SendUserData field.
If SendExitsDefined is greater than zero, this is the address of the list of user data items for each channel message exit in the chain.
Each user data item is in a field of length ExitDataLength, padded to the right with blanks. There are MsgExitsDefined fields adjoining one another - one for each exit. If the number of user data items defined is less than the number of exit names, undefined user data items are set to blanks. Conversely, if the number of user data items defined is greater than the number of exit names, the excess user data items are ignored and not presented to the exit.
Any changes made to these values by an exit are preserved. This allows one exit to pass information to another exit. No validation is carried out on any changes so, for example, binary data can be written to these fields if required.
If SendExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first ReceiveExit field.
If ReceiveExitsDefined is greater than zero, this is the address of the list of names of each channel receive exit in the chain.
Each name is in a field of length ExitNameLength, padded to the right with blanks. There are ReceiveExitsDefined fields adjoining one another - one for each exit.
Any changes made to these names by an exit are preserved, although the message channel exit takes no explicit action - it does not change which exits are invoked.
If ReceiveExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
Address of first ReceiveUserData field.
If ReceiveExitsDefined is greater than zero, this is the address of the list of user data item for each channel receive exit in the chain.
Each user data item is in a field of length ExitDataLength, padded to the right with blanks. There are ReceiveExitsDefined fields adjoining one another - one for each exit. If the number of user data items defined is less than the number of exit names, undefined user data items are set to blanks. Conversely, if the number of user data items defined is greater than the number of exit names, the excess user data items are ignored and not presented to the exit.
Any changes made to these values by an exit are preserved. This allows one exit to pass information to another exit. No validation is carried out on any changes so, for example, binary data can be written to these fields if required.
If ReceiveExitsDefined is zero, this field is the null pointer.
On platforms where the programming language does not support the pointer data type, this field is declared as a byte string of the appropriate length.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_4.
The following fields in this structure are not present if
Version is less than MQCD_VERSION_5.
Address of a list of cluster names.
If ClustersDefined is greater than zero, this is the
address of a list of cluster names.
The channel belongs to each cluster listed.
This field is relevant only for channels with a
ChannelType of MQCHT_CLUSSDR or MQCHT_CLUSRCVR.
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_5. Number of clusters to which the channel belongs.
This is the number of cluster names pointed to by
ClusterPtr.
It is zero or greater.
This field is relevant only for channels with a
ChannelType of MQCHT_CLUSSDR or MQCHT_CLUSRCVR.
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_5.ClusterPtr (MQPTR)
ClustersDefined (MQLONG)
Network priority.
This is the priority of the network connection for this channel. When multiple paths to a particular destination are available, the path with the highest priority is chosen. The value is in the range 0 through 9; 0 is the lowest priority.
This field is relevant only for channels with a ChannelType of MQCHT_CLUSSDR or MQCHT_CLUSRCVR.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_5.
The following fields in this structure are not present if Version is less than MQCD_VERSION_6.
Length of long MCA user identifier.
This is the length in bytes of the full MCA user identifier pointed to by LongMCAUserIdPtr.
This field is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.
This is an input/output field to the exit. The field is not present if Version is less than MQCD_VERSION_6.
Length of long remote user identifier.
This is the length in bytes of the full remote user identifier pointed to by LongRemoteUserIdPtr.
This field is relevant only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_6.
Address of long MCA user identifier.
If LongMCAUserIdLength is greater than zero, this is the address of the full MCA user identifier. The length of the full identifier is given by LongMCAUserIdLength. The first 12 bytes of the MCA user identifier are also contained in the field MCAUserIdentifier.
See the description of the MCAUserIdentifier field for details of the MCA user identifier.
This field is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.
This is an input/output field to the exit. The field is not present if Version is less than MQCD_VERSION_6.
Address of long remote user identifier.
If LongRemoteUserIdLength is greater than zero, this is the address of the full remote user identifier. The length of the full identifier is given by LongRemoteUserIdLength. The first 12 bytes of the remote user identifier are also contained in the field RemoteUserIdentifier.
See the description of the RemoteUserIdentifier field for details of the remote user identifier.
This field is relevant only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN.
This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_6.
MCA security identifier.
This is the security identifier for the MCA.
This field is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.
The following special value indicates that there is no security identifier:
The value is binary zero for the length of the field.
For the C programming language, the constant MQSID_NONE_ARRAY is also defined; this has the same value as MQSID_NONE, but is an array of characters instead of a string.
This is an input/output field to the exit. The length of this field is given by MQ_SECURITY_ID_LENGTH. This field is not present if Version is less than MQCD_VERSION_6.
Remote security identifier.
This is the security identifier for the remote user.
This field is relevant only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN.
The following special value indicates that there is no security identifier:
The value is binary zero for the length of the field.
For the C programming language, the constant MQSID_NONE_ARRAY is also defined; this has the same value as MQSID_NONE, but is an array of characters instead of a string.
This is an input field to the exit. The length of this field is given by MQ_SECURITY_ID_LENGTH. This field is not present if Version is less than MQCD_VERSION_6.
The following fields in this structure are not present if
Version is less than MQCD_VERSION_7.
SSL CipherSpec is an optional field.
This parameter is valid for all channel types. It is supported on
AIX, HP-UX, Linux, iSeries, Solaris, Windows, and z/OS. It is valid
only for channel types of a transport type (TRPTYPE) of TCP.
This is an input field to the exit. The length of this field is
given by MQ_SSL_CIPHER_SPEC_LENGTH. The field is not present if
Version is less than MQCD_VERSION_7. This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_7. Length of SSL peer name.
This is the length in bytes of SSL peer name pointed to by
SSLPeerNamePtr.
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_7. Determines whether SSL client authentication is required.
The value is one of the following:
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_7. Keepalive interval.
This is the value passed to the communications stack for keepalive timing
for the channel.
The value is applicable for the TCP/IP and SPX communications protocols,
though not all implementations support this parameter.
The value is in the range 0 through 99 999; the units are
seconds. A value of zero indicates that channel keepalive is not
enabled, although keepalive may still occur if TCP/IP keepalive (rather than
channel keepalive) is enabled. The following special value is also
valid:
This indicates that the keepalive interval is calculated from the
negotiated heartbeat interval, as follows:
This field is relevant only for channels that have a
TransportType of MQXPT_TCP or MQXPT_SPX.
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_7. Local communications address.
This is the local TCP/IP address defined for the channel for outbound
communications, or blank if no specific address is defined for outbound
communications.
The address can optionally include a port number or range of port
numbers. The format of this address is:
where square brackets ([ ]) denote optional information,
ip-addr is specified in dotted decimal or alphanumeric form, and
low-port and high-port are port numbers enclosed in
parentheses. All are optional.
A specific IP address, port, or port range for outbound communications is
useful in recovery scenarios where a channel is restarted on a different
TCP/IP stack.
LocalAddress is similar in form to
ConnectionName, but should not be confused with it.
LocalAddress specifies the characteristics of the local
communciations, whereas ConnectionName specifies how to
reach a remote queue manager.
This field is relevant only for channels with a
TransportType of MQXPT_TCP, and a
ChannelType of MQCHT_SENDER, MQCHT_SERVER,
MQCHT_REQUESTER, MQCHT_CLNTCONN, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
The length of this field is given by MQ_LOCAL_ADDRESS_LENGTH. This
field is not present if Version is less than
MQCD_VERSION_7. Batch heartbeat interval.
This specifies the time interval that is used to trigger a batch heartbeat
for the channel.
Batch hearbeating allows sender channels to determine whether the remote
channel instance is still active before going indoubt. A batch heatbeat
occurs if a sender channel has not communicated with the remote channel
instance within the specified time interval.
The value is in the range 0 through 999 999; the units are
milliseconds. A value of zero indicates that batch heartbeating is not
enabled.
This field is relevant only for channels that have a
ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR,
or MQCHT_CLUSRCVR.
This is an input field to the exit. The field is not present if
Version is less than MQCD_VERSION_7.SSLCipherSpec (MQCHAR32)
SSLPeerNamePtr (MQPTR)
SSLPeerNameLength (MQLONG)
SSLClientAuth (MQLONG)
KeepAliveInterval (MQLONG)
LocalAddress (MQCHAR48)
[ip-addr][(low-port[,high-port])]
BatchHeartbeat (MQLONG)
typedef struct tagMQCD MQCD; struct tagMQCD { MQCHAR ChannelName[20]; /* Channel definition name */ MQLONG Version; /* Structure version number */ MQLONG ChannelType; /* Channel type */ MQLONG TransportType; /* Transport type */ MQCHAR Desc[64]; /* Channel description */ MQCHAR QMgrName[48]; /* Queue-manager name */ MQCHAR XmitQName[48]; /* Transmission queue name */ MQCHAR ShortConnectionName[20]; /* First 20 bytes of connection name */ MQCHAR MCAName[20]; /* Reserved */ MQCHAR ModeName[8]; /* LU 6.2 Mode name */ MQCHAR TpName[64]; /* LU 6.2 transaction program name */ MQLONG BatchSize; /* Batch size */ MQLONG DiscInterval; /* Disconnect interval */ MQLONG ShortRetryCount; /* Short retry count */ MQLONG ShortRetryInterval; /* Short retry wait interval */ MQLONG LongRetryCount; /* Long retry count */ MQLONG LongRetryInterval; /* Long retry wait interval */ MQCHAR SecurityExit[n]; /* Channel security exit name */ MQCHAR MsgExit[n]; /* Channel message exit name */ MQCHAR SendExit[n]; /* Channel send exit name */ MQCHAR ReceiveExit[n]; /* Channel receive exit name */ MQLONG SeqNumberWrap; /* Highest allowable message sequence number */ MQLONG MaxMsgLength; /* Maximum message length */ MQLONG PutAuthority; /* Put authority */ MQLONG DataConversion; /* Data conversion */ MQCHAR SecurityUserData[32]; /* Channel security exit user data */ MQCHAR MsgUserData[32]; /* Channel message exit user data */ MQCHAR SendUserData[32]; /* Channel send exit user data */ MQCHAR ReceiveUserData[32]; /* Channel receive exit user data */ MQCHAR UserIdentifier[12]; /* User identifier */ MQCHAR Password[12]; /* Password */ MQCHAR MCAUserIdentifier[12]; /* First 12 bytes of MCA user identifier */ MQLONG MCAType; /* Message channel agent type */ MQCHAR ConnectionName[264]; /* Connection name */ MQCHAR RemoteUserIdentifier[12]; /* First 12 bytes of user identifier from partner */ MQCHAR RemotePassword[12]; /* Password from partner */ MQCHAR MsgRetryExit[n]; /* Channel message retry exit name */ MQCHAR MsgRetryUserData[32]; /* Channel message retry exit user data */ MQLONG MsgRetryCount; /* Number of times MCA will try to put the message, after the first attempt has failed */ MQLONG MsgRetryInterval; /* Minimum interval in milliseconds after which the open or put operation will be retried */ MQLONG HeartbeatInterval; /* Time in seconds between heartbeat flows */ MQLONG BatchInterval; /* Batch duration */ MQLONG NonPersistentMsgSpeed; /* Speed at which nonpersistent messages are sent */ MQLONG StrucLength; /* Length of MQCD structure */ MQLONG ExitNameLength; /* Length of exit name */ MQLONG ExitDataLength; /* Length of exit user data */ MQLONG MsgExitsDefined; /* Number of message exits defined */ MQLONG SendExitsDefined; /* Number of send exits defined */ MQLONG ReceiveExitsDefined; /* Number of receive exits defined */ MQPTR MsgExitPtr; /* Address of first MsgExit field */ MQPTR MsgUserDataPtr; /* Address of first MsgUserData field */ MQPTR SendExitPtr; /* Address of first SendExit field */ MQPTR SendUserDataPtr; /* Address of first SendUserData field */ MQPTR ReceiveExitPtr; /* Address of first ReceiveExit field */ MQPTR ReceiveUserDataPtr; /* Address of first ReceiveUserData field */ MQPTR ClusterPtr; /* Address of a list of cluster names */ MQLONG ClustersDefined; /* Number of clusters to which the channel belongs */ MQLONG NetworkPriority; /* Network priority */ MQLONG LongMCAUserIdLength; /* Length of long MCA user identifier */ MQLONG LongRemoteUserIdLength; /* Length of long remote user identifier */ MQPTR LongMCAUserIdPtr; /* Address of long MCA user identifier */ MQPTR LongRemoteUserIdPtr; /* Address of long remote user identifier */ MQBYTE40 MCASecurityId; /* MCA security identifier */ MQBYTE40 RemoteSecurityId; /* Remote security identifier */ MQCHAR SSLCipherSpec[32]; /* SSL CipherSpec */ MQPTR SSLPeerNamePtr; /* Address of SSL peer name */ MQLONG SSLPeerNameLength; /* Length of SSL peer name */ MQLONG SSLClientAuth; /* Whether SSL client authentication is required */ MQLONG KeepAliveInterval; /* Keepalive interval */ MQCHAR LocalAddress[48]; /* Local communications address */ MQLONG BatchHeartbeat; /* Batch heartbeat interval */ };
** MQCD structure 10 MQCD. ** Channel definition name 15 MQCD-CHANNELNAME PIC X(20). ** Structure version number 15 MQCD-VERSION PIC S9(9) BINARY. ** Channel type 15 MQCD-CHANNELTYPE PIC S9(9) BINARY. ** Transport type 15 MQCD-TRANSPORTTYPE PIC S9(9) BINARY. ** Channel description 15 MQCD-DESC PIC X(64). ** Queue-manager name 15 MQCD-QMGRNAME PIC X(48). ** Transmission queue name 15 MQCD-XMITQNAME PIC X(48). ** First 20 bytes of connection name 15 MQCD-SHORTCONNECTIONNAME PIC X(20). ** Reserved 15 MQCD-MCANAME PIC X(20). ** LU 6.2 Mode name 15 MQCD-MODENAME PIC X(8). ** LU 6.2 transaction program name 15 MQCD-TPNAME PIC X(64). ** Batch size 15 MQCD-BATCHSIZE PIC S9(9) BINARY. ** Disconnect interval 15 MQCD-DISCINTERVAL PIC S9(9) BINARY. ** Short retry count 15 MQCD-SHORTRETRYCOUNT PIC S9(9) BINARY. ** Short retry wait interval 15 MQCD-SHORTRETRYINTERVAL PIC S9(9) BINARY. ** Long retry count 15 MQCD-LONGRETRYCOUNT PIC S9(9) BINARY. ** Long retry wait interval 15 MQCD-LONGRETRYINTERVAL PIC S9(9) BINARY. ** Channel security exit name 15 MQCD-SECURITYEXIT PIC X(n). ** Channel message exit name 15 MQCD-MSGEXIT PIC X(n). ** Channel send exit name 15 MQCD-SENDEXIT PIC X(n). ** Channel receive exit name 15 MQCD-RECEIVEEXIT PIC X(n). ** Highest allowable message sequence number 15 MQCD-SEQNUMBERWRAP PIC S9(9) BINARY. ** Maximum message length 15 MQCD-MAXMSGLENGTH PIC S9(9) BINARY. ** Put authority 15 MQCD-PUTAUTHORITY PIC S9(9) BINARY. ** Data conversion 15 MQCD-DATACONVERSION PIC S9(9) BINARY. ** Channel security exit user data 15 MQCD-SECURITYUSERDATA PIC X(32). ** Channel message exit user data 15 MQCD-MSGUSERDATA PIC X(32). ** Channel send exit user data 15 MQCD-SENDUSERDATA PIC X(32). ** Channel receive exit user data 15 MQCD-RECEIVEUSERDATA PIC X(32). ** User identifier 15 MQCD-USERIDENTIFIER PIC X(12). ** Password 15 MQCD-PASSWORD PIC X(12). ** First 12 bytes of MCA user identifier 15 MQCD-MCAUSERIDENTIFIER PIC X(12). ** Message channel agent type 15 MQCD-MCATYPE PIC S9(9) BINARY. ** Connection name 15 MQCD-CONNECTIONNAME PIC X(264). ** First 12 bytes of user identifier from partner 15 MQCD-REMOTEUSERIDENTIFIER PIC X(12). ** Password from partner 15 MQCD-REMOTEPASSWORD PIC X(12). ** Channel message retry exit name 15 MQCD-MSGRETRYEXIT PIC X(n). ** Channel message retry exit user data 15 MQCD-MSGRETRYUSERDATA PIC X(32). ** Number of times MCA will try to put the message, after the first ** attempt has failed 15 MQCD-MSGRETRYCOUNT PIC S9(9) BINARY. ** Minimum interval in milliseconds after which the open or put ** operation will be retried 15 MQCD-MSGRETRYINTERVAL PIC S9(9) BINARY. ** Time in seconds between heartbeat flows 15 MQCD-HEARTBEATINTERVAL PIC S9(9) BINARY. ** Batch duration 15 MQCD-BATCHINTERVAL PIC S9(9) BINARY. ** Speed at which nonpersistent messages are sent 15 MQCD-NONPERSISTENTMSGSPEED PIC S9(9) BINARY. ** Length of MQCD structure 15 MQCD-STRUCLENGTH PIC S9(9) BINARY. ** Length of exit name 15 MQCD-EXITNAMELENGTH PIC S9(9) BINARY. ** Length of exit user data 15 MQCD-EXITDATALENGTH PIC S9(9) BINARY. ** Number of message exits defined 15 MQCD-MSGEXITSDEFINED PIC S9(9) BINARY. ** Number of send exits defined 15 MQCD-SENDEXITSDEFINED PIC S9(9) BINARY. ** Number of receive exits defined 15 MQCD-RECEIVEEXITSDEFINED PIC S9(9) BINARY. ** Address of first MSGEXIT field 15 MQCD-MSGEXITPTR POINTER. ** Address of first MSGUSERDATA field 15 MQCD-MSGUSERDATAPTR POINTER. ** Address of first SENDEXIT field 15 MQCD-SENDEXITPTR POINTER. ** Address of first SENDUSERDATA field 15 MQCD-SENDUSERDATAPTR POINTER. ** Address of first RECEIVEEXIT field 15 MQCD-RECEIVEEXITPTR POINTER. ** Address of first RECEIVEUSERDATA field 15 MQCD-RECEIVEUSERDATAPTR POINTER. ** Address of a list of cluster names 15 MQCD-CLUSTERPTR POINTER. ** Number of clusters to which the channel belongs 15 MQCD-CLUSTERSDEFINED PIC S9(9) BINARY. ** Network priority 15 MQCD-NETWORKPRIORITY PIC S9(9) BINARY. ** Length of long MCA user identifier 15 MQCD-LONGMCAUSERIDLENGTH PIC S9(9) BINARY. ** Length of long remote user identifier 15 MQCD-LONGREMOTEUSERIDLENGTH PIC S9(9) BINARY. ** Address of long MCA user identifier 15 MQCD-LONGMCAUSERIDPTR POINTER. ** Address of long remote user identifier 15 MQCD-LONGREMOTEUSERIDPTR POINTER. ** MCA security identifier 15 MQCD-MCASECURITYID PIC X(40). ** Remote security identifier 15 MQCD-REMOTESECURITYID PIC X(40). ** SSL CipherSpec 15 MQCD-SSLCIPHERSPEC PIC X(32). ** Address of SSL peer name 15 MQCD-SSLPEERNAMEPTR POINTER. ** Length of SSL peer name 15 MQCD-SSLPEERNAMELENGTH PIC S9(9) BINARY. ** Whether SSL client authentication is required 15 MQCD-SSLCLIENTAUTH PIC S9(9) BINARY. ** Keepalive interval 15 MQCD-KEEPALIVEINTERVAL PIC S9(9) BINARY. ** Local communications address 15 MQCD-LOCALADDRESS PIC X(48). ** Batch heartbeat interval 15 MQCD-BATCHHEARTBEAT PIC S9(9) BINARY.
dcl 1 MQCD based, 3 ChannelName char(20), /* Channel definition name */ 3 Version fixed bin(31), /* Structure version number */ 3 ChannelType fixed bin(31), /* Channel type */ 3 TransportType fixed bin(31), /* Transport type */ 3 Desc char(64), /* Channel description */ 3 QMgrName char(48), /* Queue-manager name */ 3 XmitQName char(48), /* Transmission queue name */ 3 ShortConnectionName char(20), /* First 20 bytes of connection name */ 3 MCAName char(20), /* Reserved */ 3 ModeName char(8), /* LU 6.2 Mode name */ 3 TpName char(64), /* LU 6.2 transaction program name */ 3 BatchSize fixed bin(31), /* Batch size */ 3 DiscInterval fixed bin(31), /* Disconnect interval */ 3 ShortRetryCount fixed bin(31), /* Short retry count */ 3 ShortRetryInterval fixed bin(31), /* Short retry wait interval */ 3 LongRetryCount fixed bin(31), /* Long retry count */ 3 LongRetryInterval fixed bin(31), /* Long retry wait interval */ 3 SecurityExit char(n), /* Channel security exit name */ 3 MsgExit char(n), /* Channel message exit name */ 3 SendExit char(n), /* Channel send exit name */ 3 ReceiveExit char(n), /* Channel receive exit name */ 3 SeqNumberWrap fixed bin(31), /* Highest allowable message sequence number */ 3 MaxMsgLength fixed bin(31), /* Maximum message length */ 3 PutAuthority fixed bin(31), /* Put authority */ 3 DataConversion fixed bin(31), /* Data conversion */ 3 SecurityUserData char(32), /* Channel security exit user data */ 3 MsgUserData char(32), /* Channel message exit user data */ 3 SendUserData char(32), /* Channel send exit user data */ 3 ReceiveUserData char(32), /* Channel receive exit user data */ 3 UserIdentifier char(12), /* User identifier */ 3 Password char(12), /* Password */ 3 MCAUserIdentifier char(12), /* First 12 bytes of MCA user identifier */ 3 MCAType fixed bin(31), /* Message channel agent type */ 3 ConnectionName char(264), /* Connection name */ 3 RemoteUserIdentifier char(12), /* First 12 bytes of user identifier from partner */ 3 RemotePassword char(12), /* Password from partner */ 3 MsgRetryExit char(n), /* Channel message retry exit name */ 3 MsgRetryUserData char(32), /* Channel message retry exit user data */ 3 MsgRetryCount fixed bin(31), /* Number of times MCA will try to put the message, after the first attempt has failed */ 3 MsgRetryInterval fixed bin(31), /* Minimum interval in milliseconds after which the open or put operation will be retried */ 3 HeartbeatInterval fixed bin(31), /* Time in seconds between heartbeat flows */ 3 BatchInterval fixed bin(31), /* Batch duration */ 3 NonPersistentMsgSpeed fixed bin(31), /* Speed at which nonpersistent messages are sent */ 3 StrucLength fixed bin(31), /* Length of MQCD structure */ 3 ExitNameLength fixed bin(31), /* Length of exit name */ 3 ExitDataLength fixed bin(31), /* Length of exit user data */ 3 MsgExitsDefined fixed bin(31), /* Number of message exits defined */ 3 SendExitsDefined fixed bin(31), /* Number of send exits defined */ 3 ReceiveExitsDefined fixed bin(31), /* Number of receive exits defined */ 3 MsgExitPtr pointer, /* Address of first MsgExit field */ 3 MsgUserDataPtr pointer, /* Address of first MsgUserData field */ 3 SendExitPtr pointer, /* Address of first SendExit field */ 3 SendUserDataPtr pointer, /* Address of first SendUserData field */ 3 ReceiveExitPtr pointer, /* Address of first ReceiveExit field */ 3 ReceiveUserDataPtr pointer, /* Address of first ReceiveUserData field */ 3 ClusterPtr pointer, /* Address of a list of cluster names */ 3 ClustersDefined fixed bin(31), /* Number of clusters to which the channel belongs */ 3 NetworkPriority fixed bin(31), /* Network priority */ 3 LongMCAUserIdLength fixed bin(31), /* Length of long MCA user identifier */ 3 LongRemoteUserIdLength fixed bin(31), /* Length of long remote user identifier */ 3 LongMCAUserIdPtr pointer, /* Address of long MCA user identifier */ 3 LongRemoteUserIdPtr pointer, /* Address of long remote user identifier */ 3 MCASecurityId char(40), /* MCA security identifier */ 3 RemoteSecurityId char(40), /* Remote security identifier */ 3 SSLCipherSpec char(32), /* SSL CipherSpec */ 3 SSLPeerNamePtr pointer, /* Address of SSL peer name */ 3 SSLPeerNameLength fixed bin(31), /* Length of SSL peer name */ 3 SSLClientAuth fixed bin(31), /* Whether SSL client authentication is required */ 3 KeepAliveInterval fixed bin(31), /* Keepalive interval */ 3 LocalAddress char(48), /* Local communications address */ 3 BatchHeartbeat fixed bin(31); /* Batch heartbeat interval */
D*..1....:....2....:....3....:....4....:....5....:....6....:....7.. D* MQCD Structure D* D* Channel definition name D CDCHN 1 20 D* Structure version number D CDVER 21 24I 0 D* Channel type D CDCHT 25 28I 0 D* Transport type D CDTRT 29 32I 0 D* Channel description D CDDES 33 96 D* Queue-manager name D CDQM 97 144 D* Transmission queue name D CDXQ 145 192 D* First 20 bytes of connection name D CDSCN 193 212 D* Reserved D CDMCA 213 232 D* LU 6.2 Mode name D CDMOD 233 240 D* LU 6.2 transaction program name D CDTP 241 304 D* Batch size D CDBS 305 308I 0 D* Disconnect interval D CDDI 309 312I 0 D* Short retry count D CDSRC 313 316I 0 D* Short retry wait interval D CDSRI 317 320I 0 D* Long retry count D CDLRC 321 324I 0 D* Long retry wait interval D CDLRI 325 328I 0 D* Channel security exit name D CDSCX 329 348 D* Channel message exit name D CDMSX 349 368 D* Channel send exit name D CDSNX 369 388 D* Channel receive exit name D CDRCX 389 408 D* Highest allowable message sequence number D CDSNW 409 412I 0 D* Maximum message length D CDMML 413 416I 0 D* Put authority D CDPA 417 420I 0 D* Data conversion D CDDC 421 424I 0 D* Channel security exit user data D CDSCD 425 456 D* Channel message exit user data D CDMSD 457 488 D* Channel send exit user data D CDSND 489 520 D* Channel receive exit user data D CDRCD 521 552 D* User identifier D CDUID 553 564 D* Password D CDPW 565 576 D* First 12 bytes of MCA user identifier D CDAUI 577 588 D* Message channel agent type D CDCAT 589 592I 0 D* Connection name (characters 1 through 256) D CDCON 593 848 D* Connection name (characters 257 through 264) D CDCN2 849 856 D* First 12 bytes of user identifier from partner D CDRUI 857 868 D* Password from partner D CDRPW 869 880 D* Channel message retry exit name D CDMRX 881 900 D* Channel message retry exit user data D CDMRD 901 932 D* Number of times MCA will try to put the message, after the first D* attempt has failed D CDMRC 933 936I 0 D* Minimum interval in milliseconds after which the open or put D* operation will be retried D CDMRI 937 940I 0 D* Time in seconds between heartbeat flows D CDHBI 941 944I 0 D* Batch duration D CDBI 945 948I 0 D* Speed at which nonpersistent messages are sent D CDNPM 949 952I 0 D* Length of MQCD structure D CDLEN 953 956I 0 D* Length of exit name D CDXNL 957 960I 0 D* Length of exit user data D CDXDL 961 964I 0 D* Number of message exits defined D CDMXD 965 968I 0 D* Number of send exits defined D CDSXD 969 972I 0 D* Number of receive exits defined D CDRXD 973 976I 0 D* Address of first CDMSX field D CDMXP 977 992* D* Address of first CDMSD field D CDMUP 993 1008* D* Address of first CDSNX field D CDSXP 1009 1024* D* Address of first CDSND field D CDSUP 1025 1040* D* Address of first CDRCX field D CDRXP 1041 1056* D* Address of first CDRCD field D CDRUP 1057 1072* D* Address of a list of cluster names D CDCLP 1073 1088* D* Number of clusters to which the channel belongs D CDCLD 1089 1092I 0 D* Network priority D CDNP 1093 1096I 0 D* Length of long MCA user identifier D CDLML 1097 1100I 0 D* Length of long remote user identifier D CDLRL 1101 1104I 0 D* Address of long MCA user identifier D CDLMP 1105 1120* D* Address of long remote user identifier D CDLRP 1121 1136* D* MCA security identifier D CDMSI 1137 1176 D* Remote security identifier D CDRSI 1177 1216 D* SSL CipherSpec D CDSCS 1217 1248 D* Address of SSL peer name D CDSPP 1249 1264* D* Length of SSL peer name D CDSPL 1265 1268I 0 D* Whether SSL client authentication is required D CDSCA 1269 1272I 0 D* Keepalive interval D CDKAI 1273 1276I 0 D* Local communications address D CDLAD 1277 1324 D* Batch heartbeat interval D CDBHB 1325 1328I 0
I*..1....:....2....:....3....:....4....:....5....:....6....:....7.. I* MQCD Structure I* I* Channel definition name I 1 20 CDCHN I* Structure version number I B 21 240CDVER I* Channel type I B 25 280CDCHT I* Transport type I B 29 320CDTRT I* Channel description I 33 96 CDDES I* Queue-manager name I 97 144 CDQM I* Transmission queue name I 145 192 CDXQ I* First 20 bytes of connection name I 193 212 CDSCN I* Reserved I 213 232 CDMCA I* LU 6.2 Mode name I 233 240 CDMOD I* LU 6.2 transaction program name I 241 304 CDTP I* Batch size I B 305 3080CDBS I* Disconnect interval I B 309 3120CDDI I* Short retry count I B 313 3160CDSRC I* Short retry wait interval I B 317 3200CDSRI I* Long retry count I B 321 3240CDLRC I* Long retry wait interval I B 325 3280CDLRI I* Channel security exit name I 329 348 CDSCX I* Channel message exit name I 349 368 CDMSX I* Channel send exit name I 369 388 CDSNX I* Channel receive exit name I 389 408 CDRCX I* Highest allowable message sequence number I B 409 4120CDSNW I* Maximum message length I B 413 4160CDMML I* Put authority I B 417 4200CDPA I* Data conversion I B 421 4240CDDC I* Channel security exit user data I 425 456 CDSCD I* Channel message exit user data I 457 488 CDMSD I* Channel send exit user data I 489 520 CDSND I* Channel receive exit user data I 521 552 CDRCD I* User identifier I 553 564 CDUID I* Password I 565 576 CDPW I* First 12 bytes of MCA user identifier I 577 588 CDAUI I* Message channel agent type I B 589 5920CDCAT I* Connection name (characters 1 through 256) I 593 848 CDCON I* Connection name (characters 257 through 264) I 849 856 CDCN2 I* First 12 bytes of user identifier from partner I 857 868 CDRUI I* Password from partner I 869 880 CDRPW I* Channel message retry exit name I 881 900 CDMRX I* Channel message retry exit user data I 901 932 CDMRD I* Number of times MCA will try to put the message, after the first I* attempt has failed I B 933 9360CDMRC I* Minimum interval in milliseconds after which the open or put I* operation will be retried I B 937 9400CDMRI I* Time in seconds between heartbeat flows I B 941 9440CDHBI I* Batch duration I B 945 9480CDBI I* Speed at which nonpersistent messages are sent I B 949 9520CDNPM I* Length of MQCD structure I B 953 9560CDLEN I* Length of exit name I B 957 9600CDXNL I* Length of exit user data I B 961 9640CDXDL I* Number of message exits defined I B 965 9680CDMXD I* Number of send exits defined I B 969 9720CDSXD I* Number of receive exits defined I B 973 9760CDRXD I* Address of first CDMSX field I 977 992 CDMXP I* Address of first CDMSD field I 9931008 CDMUP I* Address of first CDSNX field I 10091024 CDSXP I* Address of first CDSND field I 10251040 CDSUP I* Address of first CDRCX field I 10411056 CDRXP I* Address of first CDRCD field I 10571072 CDRUP I* Address of a list of cluster names I 10731088 CDCLP I* Number of clusters to which the channel belongs I B108910920CDCLD I* Network priority I B109310960CDNP I* Length of long MCA user identifier I B109711000CDLML I* Length of long remote user identifier I B110111040CDLRL I* Address of long MCA user identifier I 11051120 CDLMP I* Address of long remote user identifier I 11211136 CDLRP I* MCA security identifier I 11371176 CDMSI I* Remote security identifier I 11771216 CDRSI I* SSL CipherSpec I 12171248 CDSCS I* Address of SSL peer name I 12491264 CDSPP I* Length of SSL peer name I B126512680CDSPL I* Whether SSL client authentication is required I B126912720CDSCA I* Keepalive interval I B127312760CDKAI I* Local communications address I 12771324 CDLAD I* Batch heartbeat interval I B132513280CDBHB
MQCD DSECT MQCD_CHANNELNAME DS CL20 Channel definition name MQCD_VERSION DS F Structure version number MQCD_CHANNELTYPE DS F Channel type MQCD_TRANSPORTTYPE DS F Transport type MQCD_DESC DS CL64 Channel description MQCD_QMGRNAME DS CL48 Queue-manager name MQCD_XMITQNAME DS CL48 Transmission queue name MQCD_SHORTCONNECTIONNAME DS CL20 First 20 bytes of connection * name MQCD_MCANAME DS CL20 Reserved MQCD_MODENAME DS CL8 LU 6.2 Mode name MQCD_TPNAME DS CL64 LU 6.2 transaction program name MQCD_BATCHSIZE DS F Batch size MQCD_DISCINTERVAL DS F Disconnect interval MQCD_SHORTRETRYCOUNT DS F Short retry count MQCD_SHORTRETRYINTERVAL DS F Short retry wait interval MQCD_LONGRETRYCOUNT DS F Long retry count MQCD_LONGRETRYINTERVAL DS F Long retry wait interval MQCD_SECURITYEXIT DS CLn Channel security exit name MQCD_MSGEXIT DS CLn Channel message exit name MQCD_SENDEXIT DS CLn Channel send exit name MQCD_RECEIVEEXIT DS CLn Channel receive exit name MQCD_SEQNUMBERWRAP DS F Highest allowable message * sequence number MQCD_MAXMSGLENGTH DS F Maximum message length MQCD_PUTAUTHORITY DS F Put authority MQCD_DATACONVERSION DS F Data conversion MQCD_SECURITYUSERDATA DS CL32 Channel security exit user data MQCD_MSGUSERDATA DS CL32 Channel message exit user data MQCD_SENDUSERDATA DS CL32 Channel send exit user data MQCD_RECEIVEUSERDATA DS CL32 Channel receive exit user data MQCD_USERIDENTIFIER DS CL12 User identifier MQCD_PASSWORD DS CL12 Password MQCD_MCAUSERIDENTIFIER DS CL12 First 12 bytes of MCA user * identifier MQCD_MCATYPE DS F Message channel agent type MQCD_CONNECTIONNAME DS CL264 Connection name MQCD_REMOTEUSERIDENTIFIER DS CL12 First 12 bytes of user * identifier from partner MQCD_REMOTEPASSWORD DS CL12 Password from partner MQCD_MSGRETRYEXIT DS CLn Channel message retry exit name MQCD_MSGRETRYUSERDATA DS CL32 Channel message retry exit user * data MQCD_MSGRETRYCOUNT DS F Number of times MCA will try to * put the message, after the * first attempt has failed MQCD_MSGRETRYINTERVAL DS F Minimum interval in * milliseconds after which the * open or put operation will be * retried MQCD_HEARTBEATINTERVAL DS F Time in seconds between * heartbeat flows MQCD_BATCHINTERVAL DS F Batch duration MQCD_NONPERSISTENTMSGSPEED DS F Speed at which nonpersistent * messages are sent MQCD_STRUCLENGTH DS F Length of MQCD structure MQCD_EXITNAMELENGTH DS F Length of exit name MQCD_EXITDATALENGTH DS F Length of exit user data MQCD_MSGEXITSDEFINED DS F Number of message exits defined MQCD_SENDEXITSDEFINED DS F Number of send exits defined MQCD_RECEIVEEXITSDEFINED DS F Number of receive exits defined MQCD_MSGEXITPTR DS F Address of first MSGEXIT field MQCD_MSGUSERDATAPTR DS F Address of first MSGUSERDATA * field MQCD_SENDEXITPTR DS F Address of first SENDEXIT field MQCD_SENDUSERDATAPTR DS F Address of first SENDUSERDATA * field MQCD_RECEIVEEXITPTR DS F Address of first RECEIVEEXIT * field MQCD_RECEIVEUSERDATAPTR DS F Address of first * RECEIVEUSERDATA field MQCD_CLUSTERPTR DS F Address of a list of cluster * names MQCD_CLUSTERSDEFINED DS F Number of clusters to which the * channel belongs MQCD_NETWORKPRIORITY DS F Network priority MQCD_LONGMCAUSERIDLENGTH DS F Length of long MCA user * identifier MQCD_LONGREMOTEUSERIDLENGTH DS F Length of long remote user * identifier MQCD_LONGMCAUSERIDPTR DS F Address of long MCA user * identifier MQCD_LONGREMOTEUSERIDPTR DS F Address of long remote user * identifier MQCD_MCASECURITYID DS XL40 MCA security identifier MQCD_REMOTESECURITYID DS XL40 Remote security identifier MQCD_SSLCIPHERSPEC DS CL32 SSL CipherSpec MQCD_SSLPEERNAMEPTR DS F Address of SSL peer name MQCD_SSLPEERNAMELENGTH DS F Length of SSL peer name MQCD_SSLCLIENTAUTH DS F Whether SSL client * authentication is required MQCD_KEEPALIVEINTERVAL DS F Keepalive interval MQCD_LOCALADDRESS DS CL48 Local communications address MQCD_BATCHHEARTBEAT DS F Batch heartbeat interval * MQCD_LENGTH EQU *-MQCD ORG MQCD MQCD_AREA DS CL(MQCD_LENGTH)
In Visual Basic, the MQCD structure can be used with the MQCNO structure on the MQCONNX call.
Type MQCD ChannelName As String*20 'Channel definition name' Version As Long 'Structure version number' ChannelType As Long 'Channel type' TransportType As Long 'Transport type' Desc As String*64 'Channel description' QMgrName As String*48 'Queue-manager name' XmitQName As String*48 'Transmission queue name' ShortConnectionName As String*20 'First 20 bytes of connection' 'name' MCAName As String*20 'Reserved' ModeName As String*8 'LU 6.2 Mode name' TpName As String*64 'LU 6.2 transaction program name' BatchSize As Long 'Batch size' DiscInterval As Long 'Disconnect interval' ShortRetryCount As Long 'Short retry count' ShortRetryInterval As Long 'Short retry wait interval' LongRetryCount As Long 'Long retry count' LongRetryInterval As Long 'Long retry wait interval' SecurityExit As String*n 'Channel security exit name' MsgExit As String*n 'Channel message exit name' SendExit As String*n 'Channel send exit name' ReceiveExit As String*n 'Channel receive exit name' SeqNumberWrap As Long 'Highest allowable message' 'sequence number' MaxMsgLength As Long 'Maximum message length' PutAuthority As Long 'Put authority' DataConversion As Long 'Data conversion' SecurityUserData As String*32 'Channel security exit user data' MsgUserData As String*32 'Channel message exit user data' SendUserData As String*32 'Channel send exit user data' ReceiveUserData As String*32 'Channel receive exit user data' UserIdentifier As String*12 'User identifier' Password As String*12 'Password' MCAUserIdentifier As String*12 'First 12 bytes of MCA user' 'identifier' MCAType As Long 'Message channel agent type' ConnectionName As String*264 'Connection name' RemoteUserIdentifier As String*12 'First 12 bytes of user' 'identifier from partner' RemotePassword As String*12 'Password from partner' MsgRetryExit As String*n 'Channel message retry exit name' MsgRetryUserData As String*32 'Channel message retry exit user' 'data' MsgRetryCount As Long 'Number of times MCA will try to' 'put the message, after the' 'first attempt has failed' MsgRetryInterval As Long 'Minimum interval in' 'milliseconds after which the' 'open or put operation will be' 'retried' HeartbeatInterval As Long 'Time in seconds between' 'heartbeat flows' BatchInterval As Long 'Batch duration' NonPersistentMsgSpeed As Long 'Speed at which nonpersistent' 'messages are sent' StrucLength As Long 'Length of MQCD structure' ExitNameLength As Long 'Length of exit name' ExitDataLength As Long 'Length of exit user data' MsgExitsDefined As Long 'Number of message exits defined' SendExitsDefined As Long 'Number of send exits defined' ReceiveExitsDefined As Long 'Number of receive exits defined' MsgExitPtr As String*4 'Address of first MsgExit field' MsgUserDataPtr As String*4 'Address of first MsgUserData' 'field' SendExitPtr As String*4 'Address of first SendExit field' SendUserDataPtr As String*4 'Address of first SendUserData' 'field' ReceiveExitPtr As String*4 'Address of first ReceiveExit' 'field' ReceiveUserDataPtr As String*4 'Address of first' 'ReceiveUserData field' ClusterPtr As String*4 'Address of a list of cluster' 'names' ClustersDefined As Long 'Number of clusters to which the' 'channel belongs' NetworkPriority As Long 'Network priority' LongMCAUserIdLength As Long 'Length of long MCA user' 'identifier' LongRemoteUserIdLength As Long 'Length of long remote user' 'identifier' LongMCAUserIdPtr As String*4 'Address of long MCA user' 'identifier' LongRemoteUserIdPtr As String*4 'Address of long remote user' 'identifier' MCASecurityId As String*40 'MCA security identifier' RemoteSecurityId As String*40 'Remote security identifier' SSLCipherSpec As String*32 'SSL CipherSpec' SSLPeerNamePtr As String*4 'Address of SSL peer name' SSLPeerNameLength As Long 'Length of SSL peer name' SSLClientAuth As Long 'Whether SSL client' 'authentication is required' KeepAliveInterval As Long 'Keepalive interval' LocalAddress As String*48 'Local communications address' BatchHeartbeat As Long 'Batch heartbeat interval' End Type