Change, Copy, and Create Channel
The Change Channel command changes existing channel definitions. The Copy and Create Channel commands create new channel definitions - the Copy command uses attribute values of an existing channel definition.
The Change Channel (MQCMD_CHANGE_CHANNEL) command changes the specified attributes in a channel definition. For any optional parameters that are omitted, the value does not change.
The Copy Channel (MQCMD_COPY_CHANNEL) command creates new channel definition using, for attributes not specified in the command, the attribute values of an existing channel definition.
The Create Channel (MQCMD_CREATE_CHANNEL) command creates an IBM MQ channel definition. Any attributes that are not defined explicitly are set to the default values on the destination queue manager. If a system default channel exists for the type of channel being created, the default values are taken from there.
The following table shows the parameters that are applicable to each type of channel.- Required parameter on Change and Create Channel commands.
- Required parameter on Copy Channel command.
- Required parameter on Change, Create, and Copy Channel commands.
- PUTAUT is valid for a channel type of SVRCONN on z/OS only.
- Required parameter on Create Channel command if TrpType is TCP.
- Required parameter on Create Channel command for a channel type of MQTT.
Required parameters (Change, Create Channel)
- ChannelName (MQCFST)
- Channel name (parameter identifier: MQCACH_CHANNEL_NAME).
Specifies the name of the channel definition to be changed, or created
The maximum length of the string is MQ_CHANNEL_NAME_LENGTH.
This parameter is required on all types of channel; on a CLUSSDR it can be different from on the other channel types. If your convention for naming channels includes the name of the queue manager, we can make a CLUSSDR definition using the +QMNAME+ construction, and IBM MQ substitutes the correct repository queue manager name in place of +QMNAME+. This facility applies only to IBM i, UNIX, Linux, and Windows only. See Configure a queue manager cluster for more details.
On CLUSRCVR channels when using automatic cluster setup, this parameter can use some additional inserts:- +AUTOCL+ resolves to the automatic cluster name
- +QMNAME+ resolves to the local queue manager name.
When using these inserts, both the unexpanded string and the string with the replaced values must fit inside the maximum size of the field. If there are configured automatic cluster full repositories in the AutoCluster configuration, the channel name must also fit in the maximum channel name length when +QMNAME+ is replaced with each of the configured full repository names.
- ChannelType (MQCFIN)
- Channel type (parameter identifier: MQIACH_CHANNEL_TYPE).
Specifies the type of the channel being changed, copied, or created. The value can be any of the
following values:
- MQCHT_SENDER
- Sender.
- MQCHT_SERVER
- Server.
- MQCHT_RECEIVER
- Receiver.
- MQCHT_REQUESTER
- Requester.
- MQCHT_SVRCONN
- Server-connection (for use by clients).
- MQCHT_CLNTCONN
- Client connection.
- MQCHT_CLUSRCVR
- Cluster-receiver.
- MQCHT_CLUSSDR
- Cluster-sender.
- MQCHT_AMQP
- AMQP.
Required parameters (Copy Channel)
- FromChannelName (MQCFST)
- From channel name (parameter identifier: MQCACF_FROM_CHANNEL_NAME).
The name of the existing channel definition that contains values for the attributes that are not specified in this command.
On z/OS, the queue manager searches for an object with the name you specify and a disposition of MQQSGD_Q_MGR or MQQSGD_COPY to copy from. This parameter is ignored if a value of MQQSGD_COPY is specified for QSGDisposition. In this case, an object with the name specified by ToChannelName and the disposition MQQSGD_GROUP is searched for to copy from.
The maximum length of the string is MQ_CHANNEL_NAME_LENGTH.
- ChannelType (MQCFIN)
- Channel type (parameter identifier: MQIACH_CHANNEL_TYPE).
Specifies the type of the channel being changed, copied, or created. The value can be any of the
following values:
- MQCHT_SENDER
- Sender.
- MQCHT_SERVER
- Server.
- MQCHT_RECEIVER
- Receiver.
- MQCHT_REQUESTER
- Requester.
- MQCHT_SVRCONN
- Server-connection (for use by clients).
- MQCHT_CLNTCONN
- Client connection.
- MQCHT_CLUSRCVR
- Cluster-receiver.
- MQCHT_CLUSSDR
- Cluster-sender.
- MQCHT_AMQP
- AMQP.
- ToChannelName (MQCFST)
- To channel name (parameter identifier: MQCACF_TO_CHANNEL_NAME).
The name of the new channel definition.
The maximum length of the string is MQ_CHANNEL_NAME_LENGTH.
Channel names must be unique; if a channel definition with this name exists, the value of Replace must be MQRP_YES. The channel type of the existing channel definition must be the same as the channel type of the new channel definition otherwise it cannot be replaced.
Optional parameters (Change, Copy, and Create Channel)
- AMQPKeepAlive (MQCFIN)
- The AMQP channel keep alive interval (parameter identifier: MQIACH_AMQP_KEEP_ALIVE).
The keep alive time for an AMQP channel in milliseconds. If the AMQP client has not sent any frames within the keep alive interval, then the connection is closed with a amqp:resource-limit-exceeded AMQP error condition.
This parameter is valid only for ChannelType values of MQCHT_AMQP.
- BatchHeartbeat (MQCFIN)
- The batch heartbeat interval (parameter identifier: MQIACH_BATCH_HB).
Batch heartbeating allows sender-type channels to determine whether the remote channel instance is still active, before going in-doubt. The value can be in the range 0 - 999999. A value of 0 indicates that batch heart-beating is not to be used. Batch heartbeat is measured in milliseconds.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- BatchInterval (MQCFIN)
- Batch interval (parameter identifier: MQIACH_BATCH_INTERVAL). The approximate time in milliseconds that a channel keeps a batch open, if fewer than BatchSize messages or BatchDataLimit bytes have been transmitted in the current batch.
- BatchDataLimit (MQCFIN)
-
Batch data limit (parameter identifier: MQIACH_BATCH_DATA_LIMIT).
The limit, in kilobytes, of the amount of data that can be sent through a channel before taking a sync point. A sync point is taken after the message that caused the limit to be reached has flowed across the channel. A value of zero in this attribute means that no data limit is applied to batches over this channel.
The value must be in the range 0 - 999999. The default value is 5000.
The BATCHLIM parameter is supported on all platforms.
This parameter only applies to channels with a ChannelType of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSRCVR, or MQCHT_CLUSSDR.
- BatchSize (MQCFIN)
- Batch size (parameter identifier: MQIACH_BATCH_SIZE).
The maximum number of messages that must be sent through a channel before a checkpoint is taken.
The batch size which is used is the lowest of the following:- The BatchSize of the sending channel
- The BatchSize of the receiving channel
- The maximum number of uncommitted messages at the sending queue manager
- The maximum number of uncommitted messages at the receiving queue manager
The maximum number of uncommitted messages is specified by the MaxUncommittedMsgs parameter of the Change Queue Manager command.
Specify a value in the range 1 - 9999.
This parameter is not valid for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_CLNTCONN.
- CertificateLabel (MQCFST)
- Certificate label (parameter identifier: MQCA_CERT_LABEL).
Certificate label for this channel to use.
The label identifies which personal certificate in the key repository is sent to the remote peer. If this attribute is blank, the certificate is determined by the queue manager CertificateLabel parameter.
Note that inbound channels (including receiver, requester, cluster-receiver, unqualified server, and server-connection channels) only send the configured certificate if the IBM MQ version of the remote peer fully supports certificate label configuration, and the channel is using a TLS CipherSpec.
An unqualified server channel is one that does not have the ConnectionName field set.
In all other cases, the queue manager CertificateLabel parameter determines the certificate sent. In particular, the following only ever receive the certificate configured by the CertificateLabel parameter of the queue manager, regardless of the channel-specific label setting:- All current Java and JMS clients.
- Versions of IBM MQ prior to Version 8.0.
- ChannelDesc (MQCFST)
- Channel description (parameter identifier: MQCACH_DESC).
The maximum length of the string is MQ_CHANNEL_DESC_LENGTH.
Use characters from the character set, identified by the coded character set identifier ( CCSID ) for the message queue manager on which the command is executing, to ensure that the text is translated correctly.
- ChannelMonitoring (MQCFIN)
- Online monitoring data collection (parameter identifier: MQIA_MONITORING_CHANNEL).
Specifies whether online monitoring data is to be collected and, if so, the rate at which the
data is collected. The value can be any of the following values:
- MQMON_OFF
- Online monitoring data collection is turned off for this channel.
- MQMON_Q_MGR
- The value of the queue manager's ChannelMonitoring parameter is inherited by the channel.
- MQMON_LOW
- If the value of the queue manager's ChannelMonitoring parameter is not MQMON_NONE, online monitoring data collection is turned on, with a low rate of data collection, for this channel.
- MQMON_MEDIUM
- If the value of the queue manager's ChannelMonitoring parameter is not MQMON_NONE, online monitoring data collection is turned on, with a moderate rate of data collection, for this channel.
- MQMON_HIGH
- If the value of the queue manager's ChannelMonitoring parameter is not MQMON_NONE, online monitoring data collection is turned on, with a high rate of data collection, for this channel.
- ChannelStatistics (MQCFIN)
- Statistics data collection (parameter identifier: MQIA_STATISTICS_CHANNEL).
Specifies whether statistics data is to be collected and, if so, the rate at which the data is
collected. The value can be:
- MQMON_OFF
- Statistics data collection is turned off for this channel.
- MQMON_Q_MGR
- The value of the queue manager's ChannelStatistics parameter is inherited by the channel.
- MQMON_LOW
- If the value of the queue manager's ChannelStatistics parameter is not MQMON_NONE, online monitoring data collection is turned on, with a low rate of data collection, for this channel.
- MQMON_MEDIUM
- If the value of the queue manager's ChannelStatistics parameter is not MQMON_NONE, online monitoring data collection is turned on, with a moderate rate of data collection, for this channel.
- MQMON_HIGH
- If the value of the queue manager's ChannelStatistics parameter is not MQMON_NONE, online monitoring data collection is turned on, with a high rate of data collection, for this channel.
On z/OS systems, enabling this parameter simply turns on statistics data collection, regardless of the value you select. Specifying LOW, MEDIUM, or HIGH makes no difference to your results. This parameter must be enabled in order to collect channel accounting records.
- ClientChannelWeight (MQCFIN)
- Client Channel Weight (parameter identifier: MQIACH_CLIENT_CHANNEL_WEIGHT).
The client channel weighting attribute is used so client channel definitions can be selected at random, with the larger weightings having a higher probability of selection, when more than one suitable definition is available.
Specify a value in the range 0 - 99. The default is 0.
This parameter is only valid for channels with a ChannelType of MQCHT_CLNTCONN
- ClusterName (MQCFST)
- Cluster name (parameter identifier: MQCA_CLUSTER_NAME).
The name of the cluster to which the channel belongs.
This parameter applies only to channels with a ChannelType of:- MQCHT_CLUSSDR
- MQCHT_CLUSRCVR
Only one of the values of ClusterName and ClusterNamelist can be nonblank; the other must be blank.
The maximum length of the string is MQ_CLUSTER_NAME_LENGTH.
- ClusterNamelist (MQCFST)
- Cluster namelist (parameter identifier: MQCA_CLUSTER_NAMELIST).
The name, of the namelist, that specifies a list of clusters to which the channel belongs.
This parameter applies only to channels with a ChannelType of:- MQCHT_CLUSSDR
- MQCHT_CLUSRCVR
Only one of the values of ClusterName and ClusterNamelist can be nonblank; the other must be blank.
- CLWLChannelPriority (MQCFIN)
- Channel priority for the purposes of cluster workload distribution (parameter identifier:
MQIACH_CLWL_CHANNEL_PRIORITY).
Specify a value in the range 0 - 9 where 0 is the lowest priority and 9 is the highest.
This parameter applies only to channels with a ChannelType of:- MQCHT_CLUSSDR
- MQCHT_CLUSRCVR
- CLWLChannelRank (MQCFIN)
- Channel rank for the purposes of cluster workload distribution (parameter identifier:
MQIACH_CLWL_CHANNEL_RANK).
Specify a value in the range 0 - 9 where 0 is the lowest priority and 9 is the highest.
This parameter applies only to channels with a ChannelType of:- MQCHT_CLUSSDR
- MQCHT_CLUSRCVR
- CLWLChannelWeight (MQCFIN)
- Channel weighting for the purposes of cluster workload distribution (parameter identifier:
MQIACH_CLWL_CHANNEL_WEIGHT).
Specify a weighting for the channel for use in workload management. Specify a value in the range 1 - 99 where 1 is the lowest priority and 99 is the highest.
This parameter applies only to channels with a ChannelType of:- MQCHT_CLUSSDR
- MQCHT_CLUSRCVR
- CommandScope (MQCFST)
- Command scope (parameter identifier: MQCACF_COMMAND_SCOPE). This parameter applies to z/OS only.
Specifies how the command is executed when the queue manager is a member of a queue sharing group. We can specify one of the following:
- blank (or omit the parameter altogether). The command is executed on the queue manager on which it was entered.
- a queue manager name. The command is executed on the queue manager you specify, providing it is active within the queue sharing group. If you specify a queue manager name other than the queue manager on which it was entered, we must be using a queue sharing group environment, and the command server must be enabled.
- an asterisk (*). The command is executed on the local queue manager and is also passed to every active queue manager in the queue sharing group.
The maximum length is MQ_QSG_NAME_LENGTH.
- ConnectionAffinity (MQCFIN)
- Channel Affinity (parameter identifier: MQIACH_CONNECTION_AFFINITY)
The channel affinity attribute specifies whether client applications that connect multiple times
using the same queue manager name, use the same client channel. The value can be any of the
following values:
- MQCAFTY_PREFERRED
- The first connection in a process reading a client channel definition table (CCDT) creates a
list of applicable definitions based on the weighting with any zero ClientChannelWeight definitions
first in alphabetical order. Each connection in the process attempts to connect using the first
definition in the list. If a connection is unsuccessful the next definition is used. Unsuccessful
nonzero ClientChannelWeight definitions are moved to the end of the list. Zero ClientChannelWeight
definitions remain at the start of the list and are selected first for each connection. For C, C++
and .NET (including fully managed .NET) clients the list is updated if the CCDT has been
modified since the list was created. Each client process with the same host name creates the same
list.
This value is the default value.
- MQCAFTY_NONE
- The first connection in a process reading a CCDT creates a list of applicable definitions. All connections in a process independently select an applicable definition based on the weighting with any applicable zero ClientChannelWeight definitions selected first in alphabetical order. For C, C++ and .NET (including fully managed .NET) clients the list is updated if the CCDT has been modified since the list was created.
This parameter is only valid for channels with a ChannelType of MQCHT_CLNTCONN.
- ConnectionName (MQCFST)
- Connection name (parameter identifier: MQCACH_CONNECTION_NAME).
On CLUSRCVR channels when using automatic cluster setup, this
parameter can use some additional inserts:
- +AUTOCL+ resolves to the automatic cluster name
- +QMNAME+ resolves to the local queue manager name
In addition, any variable configured at queue manager create time, see the crtmqm -iv option, can be used surrounded by '+', for example +CONNAME+. When using these inserts, both the unexpanded inserts and the expanded values must fit inside the field maximum size.
On Multiplatforms, the maximum length of the string is 264.
On z/OS, the maximum length of the string is 48.
Specify ConnectionName as a comma-separated list of names of machines for the stated TransportType. Typically, only one machine name is required. We can provide multiple machine names to configure multiple connections with the same properties. The connections are tried in the order they are specified in the connection list until a connection is successfully established. If no connection is successful, the channel starts to try processing again. Connection lists are an alternative to queue manager groups to configure connections for reconnectable clients, and also to configure channel connections to multi-instance queue managers.
Specify the name of the machine as required for the stated TransportType:
- For MQXPT_LU62 on IBM i, and UNIX, specify the name of the CPI-C communications side
object. On Windows specify the CPI-C symbolic
destination name. On z/OS, there
are two forms in which to specify the value:
- Logical unit name
- The logical unit information for the queue manager, comprising the logical unit name, TP name,
and optional mode name. This name can be specified in one of three forms:
Form Example luname IGY12355 luname/TPname IGY12345/APING luname/TPname/modename IGY12345/APINGD/#INTER For the first form, the TP name and mode name must be specified for the TpName and ModeName parameters; otherwise these parameters must be blank.
Note: For client-connection channels, only the first form is allowed. - Symbolic name
- The symbolic destination name for the logical unit information for the queue manager, as defined
in the side information data set. The TpName and ModeName
parameters must be blank. Note: For cluster-receiver channels, the side information is on the other
queue managers in the cluster. Alternatively, in this case it can be a name that a channel
auto-definition exit can resolve into the appropriate logical unit information for the local queue
manager.
The specified or implied LU name can be that of a VTAM generic resources group.
- For MQXPT_TCP, we can specify a connection name, or a connection list, containing the host name
or the network address of the remote machine. Separate connection names in a connection list with
commas.
On z/OS, the connection name can include the IP_name of a z/OS dynamic DNS group or a network dispatcher input port. Do not include this parameter for channels with a ChannelType value of MQCHT_CLUSSDR.
On Multiplatforms, the TCP/IP connection name parameter of a cluster-receiver channel is optional. If you leave the connection name blank, IBM MQ generates a connection name for you, assuming the default port and using the current IP address of the system. We can override the default port number, but still use the current IP address of the system. For each connection name leave the IP name blank, and provide the port number in parentheses; for example:(1415)
The generated CONNAME is always in the dotted decimal (IPv4) or hexadecimal (IPv6) form, rather than in the form of an alphanumeric DNS host name. - For MQXPT_NETBIOS specify the NetBIOS station name.
- For MQXPT_SPX specify the 4 byte network address, the 6 byte node address, and the 2 byte socket
number. These values must be entered in hexadecimal, with a period separating the network and node
addresses. The socket number must be enclosed in brackets, for example:
0a0b0c0d.804abcde23a1(5e86)
If the socket number is omitted, the IBM MQ default value (5e86 hex) is assumed.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, MQCHT_CLNTCONN, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR. Note: If we are using clustering between IPv6 -only and IPv4 -only queue managers, do not specify an IPv6 network address as the ConnectionName for cluster-receiver channels. A queue manager that is capable only of IPv4 communication is unable to start a cluster sender channel definition that specifies the ConnectionName in IPv6 hexadecimal form. Consider, instead, using host names in a heterogeneous IP environment.
- DataConversion (MQCFIN)
- Whether sender must convert application data (parameter identifier: MQIACH_DATA_CONVERSION).
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
The value can be any of the following values:- MQCDC_NO_SENDER_CONVERSION
- No conversion by sender.
- MQCDC_SENDER_CONVERSION
- Conversion by sender.
- DefaultChannelDisposition (MQCFIN)
- Intended disposition of the channel when activated or started (parameter identifier:
MQIACH_DEF_CHANNEL_DISP).
This parameter applies to z/OS only.
The value can be any of the following values:
- MQCHLD_PRIVATE
- The intended use of the object is as a private channel.
This value is the default value.
- MQCHLD_FIXSHARED
- The intended use of the object is as a fixshared channel.
- MQCHLD_SHARED
- The intended use of the object is as a shared channel.
- DefReconnect (MQCFIN)
- Client channel default reconnection option (parameter identifier:
MQIACH_DEF_RECONNECT).
The default automatic client reconnection option. We can configure a IBM MQ MQI client to automatically reconnect a client application. The IBM MQ MQI client tries to reconnect to a queue manager after a connection failure. It tries to reconnect without the application client issuing an MQCONN or MQCONNX MQI call.
- MQRCN_NO
- MQRCN_NO is the default value.
Unless overridden by MQCONNX, the client is not reconnected automatically.
- MQRCN_YES
- Unless overridden by MQCONNX, the client reconnects automatically.
- MQRCN_Q_MGR
- Unless overridden by MQCONNX, the client reconnects automatically, but only to the same queue manager. The QMGR option has the same effect as MQCNO_RECONNECT_Q_MGR.
- MQRCN_DISABLED
- Reconnection is disabled, even if requested by the client program using the MQCONNX MQI call.
DefReconnect Reconnection options set in the application MQCNO_RECONNECT MQCNO_RECONNECT_Q_MGR MQCNO_RECONNECT_AS_DEF MQCNO_RECONNECT_DISABLED MQRCN_NO YES QMGR NO NO MQRCN_YES YES QMGR YES NO MQRCN_Q_MGR YES QMGR QMGR NO MQRCN_DISABLED NO NO NO NO This parameter is valid only for a ChannelType value of MQCHT_CLNTCONN.
- DiscInterval (MQCFIN)
- Disconnection interval (parameter identifier: MQIACH_DISC_INTERVAL).
This interval defines the maximum number of seconds that the channel waits for messages to be put on a transmission queue before terminating the channel. A value of zero causes the message channel agent to wait indefinitely.
Specify a value in the range 0 - 999 999.
This parameter is valid only for ChannelType values of MQCHT_SENDER MQCHT_SERVER, MQCHT_SVRCONN, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
For server-connection channels using the TCP protocol, this interval is the minimum time in seconds for which the server-connection channel instance remains active without any communication from its partner client. A value of zero disables this disconnect processing. The server-connection inactivity interval only applies between MQ API calls from a client, so no client is disconnected during an extended MQGET with wait call. This attribute is ignored for server-connection channels using protocols other than TCP.
- HeaderCompression (MQCFIL)
- Header data compression techniques supported by the channel (parameter identifier:
MQIACH_HDR_COMPRESSION).
The list of header data compression techniques supported by the channel. For sender, server, cluster-sender, cluster-receiver, and client-connection channels, the values specified are in order of preference with the first compression technique supported by the remote end of the channel being used.
The mutually supported compression techniques of the channel are passed to the message exit of the sending channel where the compression technique used can be altered on a per message basis. Compression alters the data passed to send and receive exits.
Specify one or more of:
- MQCOMPRESS_NONE
- No header data compression is performed. This value is the default value.
- MQCOMPRESS_SYSTEM
- Header data compression is performed.
- HeartbeatInterval (MQCFIN)
- Heartbeat interval (parameter identifier: MQIACH_HB_INTERVAL).
The interpretation of this parameter depends on the channel type, as follows:
- For a channel type of MQCHT_SENDER, MQCHT_SERVER, MQCHT_RECEIVER, MQCHT_REQUESTER,
MQCHT_CLUSSDR, or MQCHT_CLUSRCVR, this interval is the time in seconds between heartbeat flows
passed from the sending MCA when there are no messages on the transmission queue. This interval
gives the receiving MCA the opportunity to quiesce the channel. To be useful,
HeartbeatInterval must be less than
DiscInterval. However, the only check is that the value is
within the permitted range.
This type of heartbeat is supported on the following platforms: IBM i, UNIX, Windows, and z/OS.
- For a channel type of MQCHT_CLNTCONN or MQCHT_SVRCONN, this interval is the time in seconds
between heartbeat flows passed from the server MCA when that MCA has issued an MQGET call with the
MQGMO_WAIT option on behalf of a client application. This interval allows the server MCA to handle
situations where the client connection fails during an MQGET with MQGMO_WAIT.
This type of heartbeat is supported on all platforms.
The value must be in the range 0 - 999 999. A value of 0 means that no heartbeat exchange occurs. The value that is used is the larger of the values specified at the sending side and receiving side.
- For a channel type of MQCHT_SENDER, MQCHT_SERVER, MQCHT_RECEIVER, MQCHT_REQUESTER,
MQCHT_CLUSSDR, or MQCHT_CLUSRCVR, this interval is the time in seconds between heartbeat flows
passed from the sending MCA when there are no messages on the transmission queue. This interval
gives the receiving MCA the opportunity to quiesce the channel. To be useful,
HeartbeatInterval must be less than
DiscInterval. However, the only check is that the value is
within the permitted range.
- KeepAliveInterval (MQCFIN)
- KeepAlive interval (parameter identifier: MQIACH_KEEP_ALIVE_INTERVAL).
Specifies the value passed to the communications stack for KeepAlive timing for the channel.
For this attribute to be effective, TCP/IP keepalive must be enabled. On z/OS, you enable TCP/IP keepalive by issuing the Change Queue Manager command with a value of MQTCPKEEP in the TCPKeepAlive parameter; if the TCPKeepAlive queue manager parameter has a value of MQTCPKEEP_NO, the value is ignored, and the KeepAlive facility is not used. On other platforms, TCP/IP keepalive is enabled when the KEEPALIVE=YES parameter is specified in the TCP stanza in the distributed queuing configuration file, qm.ini, or through the IBM MQ Explorer. Keepalive must also be enabled within TCP/IP itself, using the TCP profile configuration data set.
Although this parameter is available on all platforms, its setting is implemented only on z/OS. On platforms other than z/OS, we can access and modify the parameter, but it is only stored and forwarded; there is no functional implementation of the parameter. This parameter is useful in a clustered environment where a value set in a cluster-receiver channel definition on AIX, for example, flows to (and is implemented by) z/OS queue managers that are in, or join, the cluster.
Specify either:- integer
- The KeepAlive interval to be used, in seconds, in the range 0 - 99 999. If you specify a value of 0, the value used is that specified by the INTERVAL statement in the TCP profile configuration data set.
- MQKAI_AUTO
- The KeepAlive interval is calculated based upon the negotiated heartbeat value as follows:
- If the negotiated HeartbeatInterval is greater than zero, KeepAlive interval is set to that value plus 60 seconds.
- If the negotiated HeartbeatInterval is zero, the value used is that specified by the INTERVAL statement in the TCP profile configuration data set.
On Multiplatforms, if we need the functionality provided by the KeepAliveInterval parameter, use the HeartBeatInterval parameter.
- LocalAddress (MQCFST)
- Local communications address for the channel (parameter identifier: MQCACH_LOCAL_ADDRESS).
The maximum length of the string is MQ_LOCAL_ADDRESS_LENGTH.
The value that you specify depends on the transport type (TransportType) to be used:
- TCP/IP
- The value is the optional IP address and optional port or port range to be used for outbound
TCP/IP communications. The format for this information is as follows:
LOCLADDR([ip-addr][(low-port[,high-port])][,[ip-addr][(low-port[,high-port])]])
where ip-addr is specified in IPv4 dotted decimal, IPv6 hexadecimal notation, or alphanumeric form, and low-port and high-port are port numbers enclosed in parentheses. All are optional.Specify [,[ip-addr][(low-port[,high-port])]] multiple times for each additional local address. Use multiple local addresses if we want to specify a specific subset of local network adapters. We can also use [,[ip-addr][(low-port[,high-port])]] to represent a particular local network address on different servers that are part of a multi-instance queue manager configuration.
- All Others
- The value is ignored; no error is diagnosed.
Use this parameter if we want a channel to use a particular IP address, port, or port range for outbound communications. This parameter is useful when a machine is connected to multiple networks with different IP addresses.
Examples of use
Value Meaning 9.20.4.98 Channel binds to this address locally 9.20.4.98 (1000) Channel binds to this address and port 1000 locally 9.20.4.98 (1000,2000) Channel binds to this address and uses a port in the range 1000 - 2000 locally (1000) Channel binds to port 1000 locally (1000,2000) Channel binds to a port in the range 1000 - 2000 locally - MQCHT_SENDER
- MQCHT_SERVER
- MQCHT_REQUESTER
- MQCHT_CLNTCONN
- MQCHT_CLUSRCVR
- MQCHT_CLUSSDR
Note:
- Do not confuse this parameter with ConnectionName. The LocalAddress parameter specifies the characteristics of the local communications; the ConnectionName parameter specifies how to reach a remote queue manager.
- LongRetryCount (MQCFIN)
- Long retry count (parameter identifier: MQIACH_LONG_RETRY).
When a sender or server channel is attempting to connect to the remote machine, and the count specified by ShortRetryCount has been exhausted, this count specifies the maximum number of further attempts that are made to connect to the remote machine, at intervals specified by LongRetryInterval.
If this count is also exhausted without success, an error is logged to the operator, and the channel is stopped. The channel must later be restarted with a command (it is not started automatically by the channel initiator), and it then makes only one attempt to connect, as it is assumed that the problem has now been cleared by the administrator. The retry sequence is not carried out again until after the channel has successfully connected.
Specify a value in the range 0 - 999 999 999.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- LongRetryInterval (MQCFIN)
- Long timer (parameter identifier: MQIACH_LONG_TIMER).
Specifies the long retry wait interval for a sender or server channel that is started automatically by the channel initiator. It defines the interval in seconds between attempts to establish a connection to the remote machine, after the count specified by ShortRetryCount has been exhausted.
The time is approximate; zero means that another connection attempt is made as soon as possible.
Specify a value in the range 0 - 999 999. Values exceeding this value are treated as 999 999.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- MaxInstances (MQCFIN)
- Maximum number of simultaneous instances of a server-connection
channel or an AMQP channel (parameter identifier: MQIACH_MAX_INSTANCES).
Specify a value in the range 0 - 999 999 999.
The default value is 999 999 999.
A value of zero indicates that no client connections are allowed on the channel.
If the value is reduced below the number of instances of the server-connection channel that are currently running, the running channels are not affected. This parameter applies even if the value is zero. However, if the value is reduced below the number of instances of the server-connection channel that are currently running, then new instances cannot be started until sufficient existing instances have ceased to run.
If an AMQP client attempts to connect to an AMQP channel, and the number of connected clients has reached MaxInstances, the channel closes the connection with a close frame. The close frame contains the following message: amqp:resource-limit-exceeded. If a client connects with an ID that is already connected (that is, it performs a client-takeover), and the client is permitted to take over the connection, the takeover will succeed regardless of whether the number of connected clients has reached MaxInstances.
This parameter is valid only for channels with a ChannelType value of MQCHT_SVRCONN or MQCHT_AMQP.
- MaxInstancesPerClient (MQCFIN)
- Maximum number of simultaneous instances of a server-connection channel that can be started from
a single client (parameter identifier: MQIACH_MAX_INSTS_PER_CLIENT). In this context, connections
that originate from the same remote network address are regarded as coming from the same client.
Specify a value in the range 0 - 999 999 999.
The default value is 999 999 999.
A value of zero indicates that no client connections are allowed on the channel.
If the value is reduced below the number of instances of the server-connection channel that are currently running from individual clients, the running channels are not affected. This parameter applies even if the value is zero. However, if the value is reduced below the number of instances of the server-connection channel that are currently running from individual clients, new instances from those clients cannot start until sufficient existing instances have ceased to run.
This parameter is valid only for channels with a ChannelType value of MQCHT_SVRCONN.
- MaxMsgLength (MQCFIN)
- Maximum message length (parameter identifier: MQIACH_MAX_MSG_LENGTH).
Specifies the maximum message length that can be transmitted on the channel. This value is compared with the value for the remote channel and the actual maximum is the lower of the two values.
The value zero means the maximum message length for the queue manager.
The lower limit for this parameter is 0. The maximum message length is 100 MB (104 857 600 bytes).
- MCAName (MQCFST)
- Message channel agent name (parameter identifier: MQCACH_MCA_NAME).
Note: An alternative way of providing a user ID for a channel to run under is to use channel
authentication records. With channel authentication records, different connections can use the same
channel while using different credentials. If both MCAUSER on the channel is set and channel
authentication records are used to apply to the same channel, the channel authentication records
take precedence. The MCAUSER on the channel definition is only used if the channel authentication
record uses USERSRC(CHANNEL). For more details, see Channel authentication records
This parameter is reserved, and if specified can be set only to blanks.
The maximum length of the string is MQ_MCA_NAME_LENGTH.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- MCAType (MQCFIN)
- Message channel agent type (parameter identifier: MQIACH_MCA_TYPE).
Specifies the type of the message channel agent program.
On Multiplatforms, this parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, or MQCHT_CLUSSDR.
On z/OS, this parameter is valid only for a ChannelType value of MQCHT_CLURCVR.
The value can be any of the following values:- MQMCAT_PROCESS
- Process.
- MQMCAT_THREAD
- Thread.
- MCAUserIdentifier (MQCFST)
- Message channel agent user identifier (parameter identifier: MQCACH_MCA_USER_ID).
If this parameter is nonblank, it is the user identifier which is to be used by the message channel agent for authorization to access IBM MQ resources, including (if PutAuthority is MQPA_DEFAULT) authorization to put the message to the destination queue for receiver or requester channels.
If it is blank, the message channel agent uses its default user identifier.
This user identifier can be overridden by one supplied by a channel security exit.
This parameter is not valid for channels with a ChannelType of MQCHT_SDR, MQCHT_SVR, MQCHT_CLNTCONN, MQCHT_CLUSSDR.
The maximum length of the MCA user identifier depends on the environment in which the MCA is running. MQ_MCA_USER_ID_LENGTH gives the maximum length for the environment for which your application is running. MQ_MAX_MCA_USER_ID_LENGTH gives the maximum for all supported environments.
On Windows, we can optionally qualify a user identifier with the domain name in the following format:user@domain
- MessageCompression (MQCFIL)
- The list of message data compression techniques supported by the channel (parameter identifier:
MQIACH_MSG_COMPRESSION). For sender, server, cluster-sender, cluster-receiver, and client-connection
channels, the values specified are in order of preference with the first compression technique
supported by the remote end of the channel being used.
The mutually supported compression techniques of the channel are passed to the message exit of the sending channel where the compression technique used can be altered on a per message basis. Compression alters the data passed to send and receive exits.
Specify one or more of:
- MQCOMPRESS_NONE
- No message data compression is performed. This value is the default value.
- MQCOMPRESS_RLE
- Message data compression is performed using run-length encoding.
- MQCOMPRESS_ZLIBFAST
- Message data compression is performed using ZLIB encoding with speed prioritized.
- MQCOMPRESS_ZLIBHIGH
- Message data compression is performed using ZLIB encoding with compression prioritized.
- MQCOMPRESS_ANY
- Any compression technique supported by the queue manager can be used. This value is only valid for receiver, requester, and server-connection channels.
- ModeName (MQCFST)
- Mode name (parameter identifier: MQCACH_MODE_NAME).
This parameter is the LU 6.2 mode name.
The maximum length of the string is MQ_MODE_NAME_LENGTH.- On IBM i, HP Integrity NonStop Server, UNIX, and Windows, this parameter can be set only to blanks. The actual name is taken instead from the CPI-C Communications Side Object or (on Windows ) from the CPI-C symbolic destination name properties.
This parameter is valid only for channels with a TransportType of MQXPT_LU62. It is not valid for receiver or server-connection channels.
- MsgExit (MQCFSL)
- Message exit name (parameter identifier: MQCACH_MSG_EXIT_NAME).
If a nonblank name is defined, the exit is invoked immediately after a message has been retrieved from the transmission queue. The exit is given the entire application message and message descriptor for modification.
For channels with a channel type (ChannelType) of MQCHT_SVRCONN or MQCHT_CLNTCONN, this parameter is accepted but ignored, since message exits are not invoked for such channels.
The format of the string is the same as for SecurityExit.
The maximum length of the exit name depends on the environment in which the exit is running. MQ_EXIT_NAME_LENGTH gives the maximum length for the environment in which the application is running. MQ_MAX_EXIT_NAME_LENGTH gives the maximum for all supported environments.
We can specify a list of exit names by using an MQCFSL structure instead of an MQCFST structure.- The exits are invoked in the order specified in the list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit names in the list (excluding trailing blanks in each name) must not exceed MQ_TOTAL_EXIT_NAME_LENGTH. An individual string must not exceed MQ_EXIT_NAME_LENGTH.
- On z/OS, we can specify the names of up to eight exit programs.
- MsgRetryCount (MQCFIN)
- Message retry count (parameter identifier: MQIACH_MR_COUNT).
Specifies the number of times that a failing message must be retried.
Specify a value in the range 0 - 999 999 999.
This parameter is valid only for ChannelType values of MQCHT_RECEIVER, MQCHT_REQUESTER, or MQCHT_CLUSRCVR.
- MsgRetryExit (MQCFST)
- Message retry exit name (parameter identifier: MQCACH_MR_EXIT_NAME).
If a nonblank name is defined, the exit is invoked before performing a wait before retrying a failing message.
The format of the string is the same as for SecurityExit.
The maximum length of the exit name depends on the environment in which the exit is running. MQ_EXIT_NAME_LENGTH gives the maximum length for the environment in which the application is running. MQ_MAX_EXIT_NAME_LENGTH gives the maximum for all supported environments.
This parameter is valid only for ChannelType values of MQCHT_RECEIVER, MQCHT_REQUESTER, or MQCHT_CLUSRCVR.
- MsgRetryInterval (MQCFIN)
- Message retry interval (parameter identifier: MQIACH_MR_INTERVAL).
Specifies the minimum time interval in milliseconds between retries of failing messages.
Specify a value in the range 0 - 999 999 999.
This parameter is valid only for ChannelType values of MQCHT_RECEIVER, MQCHT_REQUESTER, or MQCHT_CLUSRCVR.
- MsgRetryUserData (MQCFST)
- Message retry exit user data (parameter identifier: MQCACH_MR_EXIT_USER_DATA).
Specifies user data that is passed to the message retry exit.
The maximum length of the string is MQ_EXIT_DATA_LENGTH.
This parameter is valid only for ChannelType values of MQCHT_RECEIVER, MQCHT_REQUESTER, or MQCHT_CLUSRCVR.
- MsgUserData (MQCFSL)
- Message exit user data (parameter identifier: MQCACH_MSG_EXIT_USER_DATA).
Specifies user data that is passed to the message exit.
The maximum length of the string is MQ_EXIT_DATA_LENGTH.
For channels with a channel type (ChannelType) of MQCHT_SVRCONN or MQCHT_CLNTCONN, this parameter is accepted but ignored, since message exits are not invoked for such channels.
We can specify a list of exit user data strings by using an MQCFSL structure instead of an MQCFST structure.- Each exit user data string is passed to the exit at the same ordinal position in the MsgExit list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit user data in the list (excluding trailing blanks in each string) must not exceed MQ_TOTAL_EXIT_DATA_LENGTH. An individual string must not exceed MQ_EXIT_DATA_LENGTH.
- On z/OS, we can specify up to eight strings.
- NetworkPriority (MQCFIN)
- Network priority (parameter identifier: MQIACH_NETWORK_PRIORITY).
The priority for the network connection. If there are multiple paths available, distributed queuing selects the path with the highest priority.
The value must be in the range 0 (lowest) - 9 (highest).
This parameter applies only to channels with a ChannelType of MQCHT_CLUSRCVR
- NonPersistentMsgSpeed (MQCFIN)
- Speed at which nonpersistent messages are to be sent (parameter identifier: MQIACH_NPM_SPEED).
This parameter is supported in the following environments: IBM i, UNIX, Linux, and Windows.
Specify MQNPMS_FAST means that nonpersistent messages on a channel need not wait for a syncpoint before being made available for retrieval. The advantage of this is that nonpersistent messages become available for retrieval far more quickly. The disadvantage is that because they do not wait for a syncpoint, they might be lost if there is a transmission failure.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_RECEIVER, MQCHT_REQUESTER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR. The value can be any of the following values:- MQNPMS_NORMAL
- Normal speed.
- MQNPMS_FAST
- Fast speed.
- Password (MQCFST)
- Password (parameter identifier: MQCACH_PASSWORD).
This parameter is used by the message channel agent when attempting to initiate a secure SNA session with a remote message channel agent. On IBM i, HP Integrity NonStop Server, and UNIX, it is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, MQCHT_CLNTCONN, or MQCHT_CLUSSDR. On z/OS, it is valid only for a ChannelType value of MQCHT_CLNTCONN.
The maximum length of the string is MQ_PASSWORD_LENGTH. However, only the first 10 characters are used.
- Port (MQCFIN)
- Port number (parameter identifier MQIACH_PORT).
The port number used to connect an AMQP channel. The default port for AMQP 1.0 connections is 5672. If we are already using port 5672, we can specify a different port.
This attribute is applicable to AMQP channels.
- PropertyControl (MQCFIN)
- Property control attribute (parameter identifier MQIA_PROPERTY_CONTROL).
Specifies what happens to properties of messages when the message is about to be sent to a V6 or prior queue manager (a queue manager that does not understand the concept of a property descriptor). The value can be any of the following values:
- MQPROP_COMPATIBILITY
- If the message contains a property with a prefix of mcd., jms., usr. or mqext., all message properties are delivered to the application in an MQRFH2 header. Otherwise all properties of the message, except those properties contained in the message descriptor (or extension), are discarded and are no longer accessible to the application.
- MQPROP_NONE
- All properties of the message, except those properties in the message descriptor (or extension), are removed from the message before the message is sent to the remote queue manager.
- MQPROP_ALL
- All properties of the message are included with the message when it is sent to the remote queue manager. The properties, except those properties in the message descriptor (or extension), are placed in one or more MQRFH2 headers in the message data.
This attribute is applicable to Sender, Server, Cluster Sender, and Cluster Receiver channels.
- PutAuthority (MQCFIN)
- Put authority (parameter identifier: MQIACH_PUT_AUTHORITY).
Specifies which user identifiers are used to establish authority to put messages to the destination queue (for message channels) or to execute an MQI call (for MQI channels).
This parameter is valid only for channels with a ChannelType value of MQCHT_RECEIVER, MQCHT_REQUESTER, MQCHT_CLUSRCVR, or MQCHT_SVRCONN.
The value can be any of the following values:- MQPA_DEFAULT
- Default user identifier is used.
On z/OS, MQPA_DEFAULT might involve using both the user ID received from the network and that derived from MCAUSER.
- MQPA_CONTEXT
- The user ID from the UserIdentifier field of the message
descriptor is used.
On z/OS, MQPA_CONTEXT might involve also using the user ID received from the network or that derived from MCAUSER, or both.
- 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 user ID derived from MCAUSER is used. Any user ID received from the network is not used. This value is supported only on z/OS.
- QMgrName (MQCFST)
- Queue manager name (parameter identifier: MQCA_Q_MGR_NAME).
For channels with a ChannelType of MQCHT_CLNTCONN, this name is the name of a queue manager to which a client application can request connection.
For channels of other types, this parameter is not valid. The maximum length of the string is MQ_Q_MGR_NAME_LENGTH.
- QSGDisposition (MQCFIN)
- Disposition of the object within the group (parameter identifier: MQIA_QSG_DISP). This parameter
applies to z/OS only.
Specifies the disposition of the object to which we are applying the command (that is, where it
is defined and how it behaves). The value can be any of the following values:
QSGDisposition Change Copy, Create MQQSGD_COPY The object definition resides on the page set of the queue manager that executes the command. The object was defined using a command that had the parameter MQQSGD_COPY. Any object residing in the shared repository, or any object defined using a command that had the parameters MQQSGD_Q_MGR, is not affected by this command. The object is defined on the page set of the queue manager that executes the command using the MQQSGD_GROUP object of the same name as the ToChannelName object (for Copy) or ChannelName object (for Create). MQQSGD_GROUP The object definition resides in the shared repository. The object was defined using a command that had the parameter MQQSGD_GROUP. Any object residing on the page set of the queue manager that executes the command (except a local copy of the object) is not affected by this command. If the command is successful, the following MQSC command is generated and sent to all active queue managers in the queue sharing group to attempt to refresh local copies on page set zero: DEFINE CHANNEL(channel-name) CHLTYPE(type) REPLACE QSGDISP(COPY)
The Change for the group object takes effect regardless of whether the generated command with QSGDISP(COPY) fails.The object definition resides in the shared repository. This definition is allowed only if the queue manager is in a queue sharing group. If the definition is successful, the following MQSC command is generated and sent to all active queue managers in the queue sharing group to attempt to make or refresh local copies on page set zero: DEFINE CHANNEL(channe-name) CHLTYPE(type) REPLACE QSGDISP(COPY)
The Copy or Create for the group object takes effect regardless of whether the generated command with QSGDISP(COPY) fails.MQQSGD_PRIVATE The object resides on the page set of the queue manager that executes the command, and was defined with MQQSGD_Q_MGR or MQQSGD_COPY. Any object residing in the shared repository is unaffected. Not permitted. MQQSGD_Q_MGR The object definition resides on the page set of the queue manager that executes the command. The object was defined using a command that had the parameter MQQSGD_Q_MGR. Any object residing in the shared repository, or any local copy of such an object, is not affected by this command. This value is the default value. The object is defined on the page set of the queue manager that executes the command. This value is the default value.
- ReceiveExit (MQCFSL)
- Receive exit name (parameter identifier: MQCACH_RCV_EXIT_NAME).
If a nonblank name is defined, the exit is invoked before data received from the network is processed. The complete transmission buffer is passed to the exit and the contents of the buffer can be modified as required.
The format of the string is the same as for SecurityExit.
The maximum length of the exit name depends on the environment in which the exit is running. MQ_EXIT_NAME_LENGTH gives the maximum length for the environment in which the application is running. MQ_MAX_EXIT_NAME_LENGTH gives the maximum for all supported environments.
We can specify a list of exit names by using an MQCFSL structure instead of an MQCFST structure.- The exits are invoked in the order specified in the list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit names in the list (excluding trailing blanks in each name) must not exceed MQ_TOTAL_EXIT_NAME_LENGTH. An individual string must not exceed MQ_EXIT_NAME_LENGTH.
- On z/OS, we can specify the names of up to eight exit programs.
- ReceiveUserData (MQCFSL)
- Receive exit user data (parameter identifier: MQCACH_RCV_EXIT_USER_DATA).
Specifies user data that is passed to the receive exit.
The maximum length of the string is MQ_EXIT_DATA_LENGTH.
We can specify a list of exit user data strings by using an MQCFSL structure instead of an MQCFST structure.- Each exit user data string is passed to the exit at the same ordinal position in the ReceiveExit list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit user data in the list (excluding trailing blanks in each string) must not exceed MQ_TOTAL_EXIT_DATA_LENGTH. An individual string must not exceed MQ_EXIT_DATA_LENGTH.
- On z/OS, we can specify up to eight strings.
- Replace (MQCFIN)
- Replace channel definition (parameter identifier: MQIACF_REPLACE).
The value can be any of the following values:
- MQRP_YES
- Replace existing definition.
If ChannelType is MQCHT_CLUSSDR, MQRP_YES can be specified only if the channel was created manually.
- MQRP_NO
- Do not replace existing definition.
- SecurityExit (MQCFST)
- Security exit name (parameter identifier: MQCACH_SEC_EXIT_NAME).
If a nonblank name is defined, the security exit is invoked at the following times:
- Immediately after establishing a channel.
Before any messages are transferred, the exit is enabled to instigate security flows to validate connection authorization.
- Upon receipt of a response to a security message flow.
Any security message flows received from the remote processor on the remote machine are passed to the exit.
The exit is given the entire application message and message descriptor for modification.
The format of the string depends on the platform, as follows:- On IBM i and UNIX, it is of the form
libraryname(functionname)
Note: On IBM i systems, the following form is also supported for compatibility with older releases:progname libname
where progname occupies the first 10 characters, and libname the second 10 characters (both blank-padded to the right if necessary). - On Windows, it is of the form
dllname(functionname)
where dllname is specified without the suffix .DLL. - On z/OS, it is a load module name, maximum length 8 characters (128 characters are allowed for exit names for client-connection channels, subject to a maximum total length of 999).
The maximum length of the exit name depends on the environment in which the exit is running. MQ_EXIT_NAME_LENGTH gives the maximum length for the environment in which the application is running. MQ_MAX_EXIT_NAME_LENGTH gives the maximum for all supported environments.
- Immediately after establishing a channel.
- SecurityUserData (MQCFST)
- Security exit user data (parameter identifier: MQCACH_SEC_EXIT_USER_DATA).
Specifies user data that is passed to the security exit.
The maximum length of the string is MQ_EXIT_DATA_LENGTH.
- SendExit (MQCFSL)
- Send exit name (parameter identifier: MQCACH_SEND_EXIT_NAME).
If a nonblank name is defined, the exit is invoked immediately before data is sent out on the network. The exit is given the complete transmission buffer before it is transmitted; the contents of the buffer can be modified as required.
The format of the string is the same as for SecurityExit.
The maximum length of the exit name depends on the environment in which the exit is running. MQ_EXIT_NAME_LENGTH gives the maximum length for the environment in which the application is running. MQ_MAX_EXIT_NAME_LENGTH gives the maximum for all supported environments.
We can specify a list of exit names by using an MQCFSL structure instead of an MQCFST structure.- The exits are invoked in the order specified in the list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit names in the list (excluding trailing blanks in each name) must not exceed MQ_TOTAL_EXIT_NAME_LENGTH. An individual string must not exceed MQ_EXIT_NAME_LENGTH.
- On z/OS, we can specify the names of up to eight exit programs.
- SendUserData (MQCFSL)
- Send exit user data (parameter identifier: MQCACH_SEND_EXIT_USER_DATA).
Specifies user data that is passed to the send exit.
The maximum length of the string is MQ_EXIT_DATA_LENGTH.
We can specify a list of exit user data strings by using an MQCFSL structure instead of an MQCFST structure.- Each exit user data string is passed to the exit at the same ordinal position in the SendExit list.
- A list with only one name is equivalent to specifying a single name in an MQCFST structure.
- We cannot specify both a list (MQCFSL) and a single entry (MQCFST) structure for the same channel attribute.
- The total length of all the exit user data in the list (excluding trailing blanks in each string) must not exceed MQ_TOTAL_EXIT_DATA_LENGTH. An individual string must not exceed MQ_EXIT_DATA_LENGTH.
- On z/OS, we can specify up to eight strings.
- SeqNumberWrap (MQCFIN)
- Sequence wrap number (parameter identifier: MQIACH_SEQUENCE_NUMBER_WRAP).
Specifies the maximum message sequence number. When the maximum is reached, sequence numbers wrap to start again at 1.
The maximum message sequence number is not negotiable; the local and remote channels must wrap at the same number.
Specify a value in the range 100 - 999 999 999.
This parameter is not valid for channels with a ChannelType of MQCHT_SVRCONN or MQCHT_CLNTCONN.
- SharingConversations (MQCFIN)
- Maximum number of sharing conversations (parameter identifier: MQIACH_SHARING_CONVERSATIONS).
Specifies the maximum number of conversations that can share a particular TCP/IP MQI channel instance (socket).
Specify a value in the range 0 - 999 999 999. The default value is 10 and the migrated value is 10.
This parameter is valid only for channels with a ChannelType of MQCHT_CLNTCONN or MQCHT_SVRCONN. It is ignored for channels with a TransportType other than MQXPT_TCP.
The number of shared conversations does not contribute to the MaxInstances or MaxInstancesPerClient totals.
A value of:- 1
- Means that there is no sharing of conversations over a TCP/IP channel instance, but client heartbeating is available whether in an MQGET call or not, read ahead and client asynchronous consumption are available, and channel quiescing is more controllable.
- 0
- Specifies no sharing of conversations over a TCP/IP channel instance. The channel instance runs
in a mode before that of IBM WebSphere MQ Version 7.0, regarding:
- Administrator stop-quiesce
- Heartbeating
- Read ahead
- Client asynchronous consumption
- ShortRetryCount (MQCFIN)
- Short retry count (parameter identifier: MQIACH_SHORT_RETRY).
The maximum number of attempts that are made by a sender or server channel to establish a connection to the remote machine, at intervals specified by ShortRetryInterval before the (normally longer) LongRetryCount and LongRetryInterval are used.
Retry attempts are made if the channel fails to connect initially (whether it is started automatically by the channel initiator or by an explicit command), and also if the connection fails after the channel has successfully connected. However, if the cause of the failure is such that retry is unlikely to be successful, retries are not attempted.
Specify a value in the range 0 - 999 999 999.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- ShortRetryInterval (MQCFIN)
- Short timer (parameter identifier: MQIACH_SHORT_TIMER).
Specifies the short retry wait interval for a sender or server channel that is started automatically by the channel initiator. It defines the interval in seconds between attempts to establish a connection to the remote machine.
The time is approximate. From IBM MQ Version 8.0, zero means that another connection attempt is made as soon as possible.
Specify a value in the range 0 - 999 999. Values exceeding this value are treated as 999 999.
This parameter is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR.
- SPLProtection (MQCFIN)
- SPLProtection (parameter identifier: MQIACH_SPL_PROTECTION). This parameter applies to z/OS only, from IBM MQ Version 9.1.3 onwards.
Security policy protection parameter. Specifies what happens to messages across the channel when Advanced Message Security is active and an applicable policy exists.
This parameter is valid for channel types MQCHT_SENDER, MQCHT_SERVER, MQCHT_RECEIVER, and MQCHT_REQUESTER only.
Possible values are:- MQSPL_PASSTHRU
- Pass through, unchanged, any messages sent or received by the message channel agent for this channel.
- MQSPL_REMOVE
- Remove any AMS protection from messages retrieved from the transmission queue by the message channel agent, and send the messages to the partner.
- MQSPL_AS_POLICY
- Based on the policy defined for the target queue, apply AMS protection to inbound messages prior to putting them on to the target queue.
- SSLCipherSpec (MQCFST)
- CipherSpec (parameter identifier: MQCACH_SSL_CIPHER_SPEC). Specifies the CipherSpec that is used on the channel. The length of the string is MQ_SSL_CIPHER_SPEC_LENGTH. Attention: On IBM MQ for z/OS, we can also specify the four digit hexadecimal code of a CipherSpec, whether or not it appears in the following table. On IBM i, we can also specify the two digit hexadecimal code of a CipherSpec, whether or not it appears in the following table. Also, on IBM i, installation of AC3 is a prerequisite for the use of TLS. We should not specify hexadecimal cipher values in SSLCIPH, because it is unclear from the value which cipher will be used, and the choice of which protocol to be used is indeterminate. Using hexadecimal cipher values can lead to CipherSpec mismatch errors.
- SSLClientAuth (MQCFIN)
- Client authentication (parameter identifier: MQIACH_SSL_CLIENT_AUTH).
The value can be any of the following values:
- MQSCA_REQUIRED
- Client authentication required.
- MQSCA_OPTIONAL
- Client authentication optional.
Defines whether IBM MQ requires a certificate from the TLS client.
The TLS client is the end of the message channel that initiates the connection. The TLS Server is the end of the message channel that receives the initiation flow.
The parameter is used only for channels with SSLCIPH specified. If SSLCIPH is blank, the data is ignored and no error message is issued.
- SSLPeerName (MQCFST)
- Peer name (parameter identifier: MQCACH_SSL_PEER_NAME).
Note: An alternative way of restricting connections into channels by matching against the TLS
Subject Distinguished Name, is to use channel authentication records. With channel authentication
records, different TLS Subject Distinguished Name patterns can be applied to the same channel. If
both SSLPEER on the channel and a channel authentication record are used to apply to the same
channel, the inbound certificate must match both patterns in order to connect. For more information,
see Channel authentication
records.
On Multiplatforms, the length of the string is MQ_SSL_PEER_NAME_LENGTH.
On z/OS, the length of the string is MQ_SSL_SHORT_PEER_NAME_LENGTH.
Specifies the filter to use to compare with the Distinguished Name of the certificate from the peer queue manager or client at the other end of the channel. (A Distinguished Name is the identifier of the TLS certificate.) If the Distinguished Name in the certificate received from the peer does not match the SSLPEER filter, the channel does not start.
This parameter is optional; if it is not specified, the Distinguished Name of the peer is not checked when the channel is started. (The Distinguished Name from the certificate is still written into the SSLPEER definition held in memory, and passed to the security exit). If SSLCIPH is blank, the data is ignored and no error message is issued.
This parameter is valid for all channel types.
The SSLPEER value is specified in the standard form used to specify a Distinguished Name. For example: SSLPEER('SERIALNUMBER=4C:D0:49:D5:02:5F:38,CN="H1_C_FR1",O=IBM,C=GB')
We can use a semi-colon as a separator instead of a comma.
The possible attribute types supported are as follows:Attribute Description SERIALNUMBER Certificate serial number MAIL Email address E Email address (Deprecated in preference to MAIL) UID or USERID User identifier CN Common Name T Title OU Organizational Unit name DC Domain component O Organization name STREET Street / First line of address L Locality name ST (or SP or S) State or Province name PC Postal code / zip code C Country UNSTRUCTUREDNAME Host name UNSTRUCTUREDADDRESS IP address DNQ Distinguished name qualifier If any of the unsupported attribute types are specified in the SSLPEER string, an error is output either when the attribute is defined or at run time (depending on which platform we are running on), and the string is deemed not to have matched the Distinguished Name of the flowed certificate.
If the Distinguished Name of the flowed certificate contains multiple OU (organizational unit) attributes, and SSLPEER specifies these attributes to be compared, they must be defined in descending hierarchical order. For example, if the Distinguished Name of the flowed certificate contains the OUs OU=Large Unit,OU=Medium Unit,OU=Small Unit, specifying the following SSLPEER values work:('OU=Large Unit,OU=Medium Unit') ('OU=*,OU=Medium Unit,OU=Small Unit') ('OU=*,OU=Medium Unit')
but specifying the following SSLPEER values fail:('OU=Medium Unit,OU=Small Unit') ('OU=Large Unit,OU=Small Unit') ('OU=Medium Unit')
Any or all the attribute values can be generic, either an asterisk (*) on its own, or a stem with initiating or trailing asterisks. This value allows the SSLPEER to match any Distinguished Name value, or any value starting with the stem for that attribute.
If an asterisk is specified at the beginning or end of any attribute value in the Distinguished Name on the certificate, we can specify \* to check for an exact match in SSLPEER. For example, if you have an attribute of CN=Test* in the Distinguished Name of the certificate, we can use the following command:
SSLPEER('CN=Test\*')
- TpName (MQCFST)
- Transaction program name (parameter identifier: MQCACH_TP_NAME).
This name is the LU 6.2 transaction program name.
The maximum length of the string is MQ_TP_NAME_LENGTH.- On IBM i, HP Integrity NonStop Server, UNIX, and Windows platforms, this parameter can be set only to blanks. The actual name is taken instead from the CPI-C Communications Side Object or (on Windows ) from the CPI-C symbolic destination name properties.
This parameter is valid only for channels with a TransportType of MQXPT_LU62. It is not valid for receiver channels.
- TPRoot (MQCFST)
- Topic root for an AMQP channel. (parameter identifier: MQCACH_TOPIC_ROOT).
The default value for TPRoot is SYSTEM.BASE.TOPIC. With this value, the topic string an AMQP client uses to publish or subscribe has no prefix, and the client can exchange messages with other MQ pub/sub applications. To have AMQP clients publish and subscribe under a topic prefix, first create an MQ topic object with a topic string set to the prefix we want, then set TPRoot to the name of the MQ topic object you created.
This parameter is valid only for AMQP channels.
- TransportType (MQCFIN)
- Transmission protocol type (parameter identifier: MQIACH_XMIT_PROTOCOL_TYPE).
No check is made that the correct transport type has been specified if the channel is initiated
from the other end. The value can be any of the following values:
- MQXPT_LU62
- LU 6.2.
- MQXPT_TCP
- TCP.
- MQXPT_NETBIOS
- NetBIOS.
This value is supported in Windows. It also applies to z/OS for defining client-connection channels that connect to servers on the platforms supporting NetBIOS.
- MQXPT_SPX
- SPX.
This value is supported in Windows. It also applies to z/OS for defining client-connection channels that connect to servers on the platforms supporting SPX.
- UseCltId (MQCFIN)
- Determines how authorization checks are done for AMQP channels. (parameter identifier:
MQIACH_USE_CLIENT_ID). The value can be any of the following values:
- MQUCI_NO
- The MCA user ID should be used for authorization checks.
- MQUCI_YES
- The client ID should be used for authorization checks.
This parameter is valid only for AMQP channels.
- UseDLQ (MQCFIN)
- Determines whether the dead-letter queue is used when messages cannot be delivered by channels.
(parameter identifier: MQIA_USE_DEAD_LETTER_Q). The value can be any of the following values:
- MQUSEDLQ_NO
- Messages that cannot be delivered by a channel are treated as a failure. The channel either discards the message, or the channel ends, in accordance with the NonPersistentMsgSpeed setting.
- MQUSEDLQ_YES
- When the DEADQ queue manager attribute provides the name of a dead-letter queue, then it is used, else the behavior is as for MQUSEDLQ_NO.
- UserIdentifier (MQCFST)
- Task user identifier (parameter identifier: MQCACH_USER_ID).
This parameter is used by the message channel agent when attempting to initiate a secure SNA session with a remote message channel agent. On IBM i and UNIX, it is valid only for ChannelType values of MQCHT_SENDER, MQCHT_SERVER, MQCHT_REQUESTER, MQCHT_CLNTCONN, MQCHT_CLUSSDR, or MQCHT_CLUSRCVR. On z/OS, it is valid only for a ChannelType value of MQCHT_CLNTCONN.
The maximum length of the string is MQ_USER_ID_LENGTH. However, only the first 10 characters are used.
- XmitQName (MQCFST)
- Transmission queue name (parameter identifier: MQCACH_XMIT_Q_NAME).
The maximum length of the string is MQ_Q_NAME_LENGTH.
A transmission queue name is required (either previously defined or specified here) if ChannelType is MQCHT_SENDER or MQCHT_SERVER. It is not valid for other channel types.
Error codes (Change, Copy, and Create Channel)
This command might return the following error codes in the response format header, in addition to those codes listed in Error codes applicable to all commands.
- Reason (MQLONG)
- The value can be any of the following values:
- MQRCCF_BATCH_INT_ERROR
- Batch interval not valid.
- MQRCCF_BATCH_INT_WRONG_TYPE
- Batch interval parameter not allowed for this channel type.
- MQRCCF_BATCH_SIZE_ERROR
- Batch size not valid.
- MQRCCF_CHANNEL_NAME_ERROR
- Channel name error.
- MQRCCF_CHANNEL_NOT_FOUND
- Channel not found.
- MQRCCF_CHANNEL_TYPE_ERROR
- Channel type not valid.
- MQRCCF_CLUSTER_NAME_CONFLICT
- Cluster name conflict.
- MQRCCF_DISC_INT_ERROR
- Disconnection interval not valid.
- MQRCCF_DISC_INT_WRONG_TYPE
- Disconnection interval not allowed for this channel type.
- MQRCCF_HB_INTERVAL_ERROR
- Heartbeat interval not valid.
- MQRCCF_HB_INTERVAL_WRONG_TYPE
- Heartbeat interval parameter not allowed for this channel type.
- MQRCCF_KWD_VALUE_WRONG_TYPE
- An attribute keyword and value combination are not valid for this channel type.
- MQRCCF_LONG_RETRY_ERROR
- Long retry count not valid.
- MQRCCF_LONG_RETRY_WRONG_TYPE
- Long retry parameter not allowed for this channel type.
- MQRCCF_LONG_TIMER_ERROR
- Long timer not valid.
- MQRCCF_LONG_TIMER_WRONG_TYPE
- Long timer parameter not allowed for this channel type.
- MQRCCF_MAX_INSTANCES_ERROR
- Maximum instances value not valid.
- MQRCCF_MAX_INSTS_PER_CLNT_ERR
- Maximum instances per client value not valid.
- MQRCCF_MAX_MSG_LENGTH_ERROR
- Maximum message length not valid.
- MQRCCF_MCA_NAME_ERROR
- Message channel agent name error.
- MQRCCF_MCA_NAME_WRONG_TYPE
- Message channel agent name not allowed for this channel type.
- MQRCCF_MCA_TYPE_ERROR
- Message channel agent type not valid.
- MQRCCF_MISSING_CONN_NAME
- Connection name parameter required but missing.
- MQRCCF_MR_COUNT_ERROR
- Message retry count not valid.
- MQRCCF_MR_COUNT_WRONG_TYPE
- Message-retry count parameter not allowed for this channel type.
- MQRCCF_MR_EXIT_NAME_ERROR
- Channel message-retry exit name error.
- MQRCCF_MR_EXIT_NAME_WRONG_TYPE
- Message-retry exit parameter not allowed for this channel type.
- MQRCCF_MR_INTERVAL_ERROR
- Message retry interval not valid.
- MQRCCF_MR_INTERVAL_WRONG_TYPE
- Message-retry interval parameter not allowed for this channel type.
- MQRCCF_MSG_EXIT_NAME_ERROR
- Channel message exit name error.
- MQRCCF_NET_PRIORITY_ERROR
- Network priority value error.
- MQRCCF_NET_PRIORITY_WRONG_TYPE
- Network priority attribute not allowed for this channel type.
- MQRCCF_NPM_SPEED_ERROR
- Nonpersistent message speed not valid.
- MQRCCF_NPM_SPEED_WRONG_TYPE
- Nonpersistent message speed parameter not allowed for this channel type.
- MQRCCF_PARM_SEQUENCE_ERROR
- Parameter sequence not valid.
- MQRCCF_PUT_AUTH_ERROR
- Put authority value not valid.
- MQRCCF_PUT_AUTH_WRONG_TYPE
- Put authority parameter not allowed for this channel type.
- MQRCCF_RCV_EXIT_NAME_ERROR
- Channel receive exit name error.
- MQRCCF_SEC_EXIT_NAME_ERROR
- Channel security exit name error.
- MQRCCF_SEND_EXIT_NAME_ERROR
- Channel send exit name error.
- MQRCCF_SEQ_NUMBER_WRAP_ERROR
- Sequence wrap number not valid.
- MQRCCF_SHARING_CONVS_ERROR
- Value given for Sharing Conversations not valid.
- MQRCCF_SHARING_CONVS_TYPE
- Sharing Conversations parameter not valid for this channel type.
- MQRCCF_SHORT_RETRY_ERROR
- Short retry count not valid.
- MQRCCF_SHORT_RETRY_WRONG_TYPE
- Short retry parameter not allowed for this channel type.
- MQRCCF_SHORT_TIMER_ERROR
- Short timer value not valid.
- MQRCCF_SHORT_TIMER_WRONG_TYPE
- Short timer parameter not allowed for this channel type.
- MQRCCF_SSL_CIPHER_SPEC_ERROR
- TLS CipherSpec not valid.
- MQRCCF_SSL_CLIENT_AUTH_ERROR
- TLS client authentication not valid.
- MQRCCF_SSL_PEER_NAME_ERROR
- TLS peer name not valid.
- MQRCCF_WRONG_CHANNEL_TYPE
- Parameter not allowed for this channel type.
- MQRCCF_XMIT_PROTOCOL_TYPE_ERR
- Transmission protocol type not valid.
- MQRCCF_XMIT_Q_NAME_ERROR
- Transmission queue name error.
- MQRCCF_XMIT_Q_NAME_WRONG_TYPE
- Transmission queue name not allowed for this channel type.
Parent topic: Definitions of the Programmable Command Formats