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). See  MQ_CHANNEL_EXIT .

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 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:

UNIX systems
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 not using CICS for distributed queuing
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 8 characters.

z/OS using CICS for distributed queuing
The exit name is a 4-character transaction identifier.

OS/2, Windows, and DOS
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.

iSeries
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.

Fields

ChannelName (MQCHAR20)

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.

Version (MQLONG)

Structure version number.

The value depends on the environment:

MQCD_VERSION_1
Version-1 channel definition structure.

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.

MQCD_VERSION_2
Version-2 channel definition structure.

This value is not used by any current WebSphere MQ product.

MQCD_VERSION_3
Version-3 channel definition structure.

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.

MQCD_VERSION_4
Version-4 channel definition structure.

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.

MQCD_VERSION_5
Version-5 channel definition structure.

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.

MQCD_VERSION_6
Version-6 channel definition structure.

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.

MQCD_VERSION_7
Version-7 channel definition structure.

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:

MQCD_CURRENT_VERSION
Current(R) version of channel definition structure.

The value of this constant depends on the environment (see above).

Note:
When a new version of the MQCD structure is introduced, the layout of the existing part is not changed. The exit should therefore check that the version number is equal to or greater than the lowest version which contains the fields that the exit needs to use.

ChannelType (MQLONG)

Channel type.

It is one of the following:

MQCHT_SENDER
Sender.
MQCHT_SERVER
Server.
MQCHT_RECEIVER
Receiver.
MQCHT_REQUESTER
Requester.
MQCHT_CLNTCONN
Client connection.
MQCHT_SVRCONN
Server-connection (for use by clients).
MQCHT_CLUSSDR
Cluster sender.
MQCHT_CLUSRCVR
Cluster receiver.

TransportType (MQLONG)

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:

MQXPT_LU62
LU 6.2 transport protocol.

MQXPT_TCP
TCP/IP transport protocol.

MQXPT_NETBIOS
NetBIOS transport protocol.

This value is supported in the following environments: OS/2, Windows.

MQXPT_SPX
SPX transport protocol.

This value is supported in the following environments: OS/2, Windows, plus WebSphere MQ clients connected to these systems.

MQXPT_DECNET
DECnet transport protocol.

This value is supported in the following environment: Compaq OpenVMS Alpha.

MQXPT_UDP
UDP transport protocol.

This value is supported in the following environments: AIX.

Desc (MQCHAR64)

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).

Note:
If this field contains characters that are not in the queue manager's character set (as defined by the CodedCharSetId queue manager attribute), those characters may be translated incorrectly if this field is sent to another queue manager.

The length of this field is given by MQ_CHANNEL_DESC_LENGTH.

QMgrName (MQCHAR48)

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.

XmitQName (MQCHAR48)

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.

ShortConnectionName (MQCHAR20)

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.

Note:
The name of this field was changed for MQCD_VERSION_2 and subsequent versions of MQCD; the field was previously called ConnectionName.

The length of this field is given by MQ_SHORT_CONN_NAME_LENGTH.

MCAName (MQCHAR20)

Reserved.

This is a reserved field; its value is blank.

The length of this field is given by MQ_MCA_NAME_LENGTH.

ModeName (MQCHAR8)

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.

TpName (MQCHAR64)

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.

BatchSize (MQLONG)

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.

DiscInterval (MQLONG)

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.

ShortRetryCount (MQLONG)

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.

ShortRetryInterval (MQLONG)

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.

LongRetryCount (MQLONG)

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.

LongRetryInterval (MQLONG)

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.

SecurityExit (MQCHARn)

Channel security exit name.

If this name is nonblank, the exit is called at the following times:

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.

Note:
The value of this constant is environment specific.

MsgExit (MQCHARn)

Channel message exit name.

If this name is nonblank, the exit is called at the following times:

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.

Note:
The value of this constant is environment specific.

SendExit (MQCHARn)

Channel send exit name.

If this 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.

The length of this field is given by MQ_EXIT_NAME_LENGTH.

Note:
The value of this constant is environment specific.

ReceiveExit (MQCHARn)

Channel receive exit name.

If this 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.

The length of this field is given by MQ_EXIT_NAME_LENGTH.

Note:
The value of this constant is environment specific.

SeqNumberWrap (MQLONG)

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.

MaxMsgLength (MQLONG)

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.

PutAuthority (MQLONG)

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:

MQPA_DEFAULT
Default user identifier is used.

MQPA_CONTEXT
Context user identifier is used.

DataConversion (MQLONG)

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:

MQCDC_SENDER_CONVERSION
Conversion by sender.

MQCDC_NO_SENDER_CONVERSION
No conversion by sender.

SecurityUserData (MQCHAR32)

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.

MsgUserData (MQCHAR32)

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.

SendUserData (MQCHAR32)

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.

ReceiveUserData (MQCHAR32)

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.

UserIdentifier (MQCHAR12)

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 (MQCHAR12)

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.

MCAUserIdentifier (MQCHAR12)

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.

MCAType (MQLONG)

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:

MQMCAT_PROCESS
Process.

The message channel agent runs as a separate process.

MQMCAT_THREAD
Thread (OS/2, iSeries, UNIX, and Windows).

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.

ConnectionName (MQCHAR264)

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.

RemoteUserIdentifier (MQCHAR12)

First 12 bytes of user identifier from partner.

There are two fields that contain the remote user identifier:

The remote user identifier is relevant only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN.

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.

RemotePassword (MQCHAR12)

Password from partner.

This field contains valid information only if ChannelType is MQCHT_CLNTCONN or MQCHT_SVRCONN.

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.

MsgRetryExit (MQCHARn)

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:

  1. The value of this constant is environment specific.

  2. On z/OS this field is not relevant.

This field is not present when Version is less than MQCD_VERSION_3.

MsgRetryUserData (MQCHAR32)

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.

MsgRetryCount (MQLONG)

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:

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.

MsgRetryInterval (MQLONG)

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:

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.

HeartbeatInterval (MQLONG)

Time in seconds between heartbeat flows.

The interpretation of this field depends on the channel type, as follows:

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.

BatchInterval (MQLONG)

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.

NonPersistentMsgSpeed (MQLONG)

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:

MQNPMS_NORMAL
Normal speed.

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.

MQNPMS_FAST
Fast speed.

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.

StrucLength (MQLONG)

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:

MQCD_LENGTH_4
Length of version-4 channel definition structure.

MQCD_LENGTH_5
Length of version-5 channel definition structure.

MQCD_LENGTH_6
Length of version-6 channel definition structure.

MQCD_LENGTH_7
Length of version-7 channel definition structure.

The following constant specifies the length of the current version:

MQCD_CURRENT_LENGTH
Length of current version of channel definition structure.

Note:
These constants have values that are environment specific.

The field is not present if Version is less than MQCD_VERSION_4.

ExitNameLength (MQLONG)

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.

ExitDataLength (MQLONG)

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.

MsgExitsDefined (MQLONG)

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.

SendExitsDefined (MQLONG)

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.

ReceiveExitsDefined (MQLONG)

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.

MsgExitPtr (MQPTR)

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.

MsgUserDataPtr (MQPTR)

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.

SendExitPtr (MQPTR)

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.

SendUserDataPtr (MQPTR)

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.

ReceiveExitPtr (MQPTR)

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.

ReceiveUserDataPtr (MQPTR)

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.

ClusterPtr (MQPTR)

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.

ClustersDefined (MQLONG)

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.

NetworkPriority (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.

LongMCAUserIdLength (MQLONG)

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.

LongRemoteUserIdLength (MQLONG)

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.

LongMCAUserIdPtr (MQPTR)

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.

LongRemoteUserIdPtr (MQPTR)

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.

MCASecurityId (MQBYTE40)

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:

MQSID_NONE
No security identifier specified.

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.

RemoteSecurityId (MQBYTE40)

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:

MQSID_NONE
No security identifier specified.

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.

SSLCipherSpec (MQCHAR32)

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.

SSLPeerNamePtr (MQPTR)

Address of the SSL peer name.

This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_7.

SSLPeerNameLength (MQLONG)

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.

SSLClientAuth (MQLONG)

Determines whether SSL client authentication is required.

The value is one of the following:

MQSCA_REQUIRED
Client authentication required.

MQSCA_OPTIONAL
Client authentication optional.

This is an input field to the exit. The field is not present if Version is less than MQCD_VERSION_7.

KeepAliveInterval (MQLONG)

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:

MQKAI_AUTO
Automatic.

This indicates that the keepalive interval is calculated from the negotiated heartbeat interval, as follows:

  • If the negotiated heartbeat interval is greater than zero, the keepalive interval that is used is the heartbeat interval plus 60 seconds.
  • If the negotiated heartbeat interval is zero, the keepalive interval that is used is zero.

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.

LocalAddress (MQCHAR48)

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:

[ip-addr][(low-port[,high-port])]

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.

BatchHeartbeat (MQLONG)

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.

C declaration

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 */
};

COBOL declaration

**   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.

PL/I declaration

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 */

RPG declaration (ILE)

     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

RPG declaration (OPM)

     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

System/390 assembler declaration

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)

Visual Basic declaration

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



© IBM Corporation 2002. All Rights Reserved