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.
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(R) Version 2 in the following environments: HP OpenVMS, Compaq NonStop Kernel, and UNIX systems not listed elsewhere.

MQCD_VERSION_4
Version-4 channel definition structure.

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

MQCD_VERSION_5
Version-5 channel definition structure.

The field has this value on MQSeries for OS/390(R) Version 5 Release 2.

MQCD_VERSION_6
Version-6 channel definition structure.

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

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 and Version 5 Release 3.1.

MQCD_VERSION_8
Version-8 channel definition structure.

The field has this value on WebSphere MQ Version 6.0 on all platforms.

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

MQXPT_SPX
SPX transport protocol.

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

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 UNIX(R) systems and Windows(R), 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 i5/OS, z/OS, 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 i5/OS, z/OS, 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.

For server-connection channels using the TCP protocol, the interval represents the client inactivity disconnect value, specified in seconds. If a server-connection has received no communication from its partner client for this duration, it will terminate the connection. The server-connection inactivity interval only applies between MQ API calls from a client, so no client will be disconnected during a long-running MQGET with wait call.

This attribute is not applicable for server-connection channels using protocols other than TCP.

This field is relevant only for channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, MQCHT_CLUSRCVR or MQCHT_SVRCONN.

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_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_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_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_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.
MQPA_ALTERNATE_OR_MCA
The user ID from the UserIdentifier field of the message descriptor is used. Any user ID received from the network is not used. This value is supported only on z/OS.
MQPA_ONLY_MCA
The default user ID is used. Any user ID received from the network is not used. This value is supported only on z/OS.

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 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 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 (i5/OS, UNIX, and Windows).

The message channel agent runs as a separate thread.

This value is supported in the following environments: Windows.

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

ConnectionName (MQCHAR264)

Connection name.

For cluster-receiver channels (when specified) CONNAME relates to the local queue manager, and for other channels it relates to the target queue manager. The value you specify 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.

Note:
The value of this constant is environment specific.

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.

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.

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.

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.
MQCD_LENGTH_8
Length of version-8 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(R), HP-UX, Linux(R), i5/OS, Solaris, Windows, and z/OS(R). 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.

When a certificate is received during a successful SSL handshake, the Distinguished Name of the subject of the certificate is copied into the MQCD field accessed by SSLPeerNamePtr at the end of the channel which receives the certificate. It overwrites the SSLPeerName value for the channel if this is present in the local user's channel definition. If a security exit is specified at this end of the channel it will receive the Distinguished Name from the peer certificate in the MQCD.

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:

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 IPv4 dotted decimal, IPv6 hexadecimal, 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 heartbeating allows sender channels to determine whether the remote channel instance is still active before going indoubt. A batch heartbeat 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.

HdrCompList [2] (MQLONG)

Header data compression list.

The list of header data compression techniques which are supported by the channel.

The list contains one or more of the following:

MQCOMPRESS_NONE
No header data compression is performed.
MQCOMPRESS_SYSTEM
Header data compression is performed.

Unused values in the array are set to MQCOMPRESS_NOT_AVAILABLE.

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

MsgCompList [16] (MQLONG)

Message data compression list.

The list of message data compression techniques which are supported by the channel.

The list contains one or more of the following:

MQCOMPRESS_NONE
No message data compression is performed.
MQCOMPRESS_RLE
Message data compression is performed using run-length encoding.
MQCOMPRESS_ZLIBFAST
Message data compression is performed using the zlib compression technique. A fast compression time is preferred.
MQCOMPRESS_ZLIBHIGH
Message data compression is performed using the zlib compression technique. A high level of compression is preferred.

Unused values in the array are set to MQCOMPRESS_NOT_AVAILABLE.

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

CLWLChannelRank (MQLONG)

Cluster workload channel rank.

The workload manager choose algorithm selects a destination with the highest rank. When the final destination is a queue manager on a different cluster, you can set the rank of intermediate gateway queue managers (at the intersection of neighbouring clusters) so the choose algorithm will correctly choose a destination queue manager nearer the final destination.

The value is in the range 0 through 9. The default is 0.

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

For further information, see WebSphere MQ Queue Manager Clusters.

CLWLChannelPriority (MQLONG)

Cluster workload channel priority.

The workload manager choose algorithm selects a destination with the highest priority from the set of destinations selected on the basis of rank. If there are two possible destination queue managers, this attribute can be used to make one queue manager failover onto the other queue manager. All the messages will go to the queue manager with the highest priority until that ends, then the messages will go to the queue manager with the next highest priority.

The value is in the range 0 through 9. The default is 0.

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

For further information, see WebSphere MQ Queue Manager Clusters.

CLWLChannelWeight (MQLONG)

Cluster workload channel weight.

The workload manager choose algorithm will use the channel's "weight" attribute to the skew the destination choice so that more messages can be sent to a particular machine. For example, you can give a channel on a large Unix server a larger "weight" than another channel on small desktop PC, and the choose algorithm will choose the Unix server more frequently than the PC.

The value is in the range 1 through 99. The default is 50.

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

For further information, see WebSphere MQ Queue Manager Clusters.

ChannelMonitoring (MQLONG)

The current level of Monitoring data collection for the channel.

This field is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.

The value is one of the following:

This is an input field to the exit. It is not present if Version is less than MQCD_VERSION_8.

ChannelStatistics (MQLONG)

The current level of Statistics data collection for the channel.

This field is not relevant for channels with a ChannelType of MQCHT_CLNTCONN.

The value is one of the following:

This is an input field to the exit. It is not present if Version is less than MQCD_VERSION_8.