Work with auto-defined cluster-sender channels
After you introduce a queue manager to a cluster by making its initial CLUSSDR and CLUSRCVR definitions, IBM MQ automatically makes other cluster-sender channel definitions when they are needed. We can view information about auto-defined cluster-sender channels, but we cannot modify them. To modify their behavior, we can use a channel auto-definition exit.
Before starting
For an introduction to auto-defined channels, see Auto-defined cluster-sender channels.
Auto-defined cluster-sender channels are created by the cluster as and when needed, and they remain active until they are shut down using the normal disconnect-interval rules.
On Multiplatforms, the OAM (object authority manager) is not aware of the existence of auto-defined cluster-sender channels. If we issue start, stop, ping, reset, or resolve commands on an auto-defined cluster-sender channel, the OAM checks to see whether we are authorized to perform the same action on the matching cluster-receiver channel.
On z/OS, we can secure an auto-defined cluster-sender channel in the same way as any other channel.
Procedure
-
Display information about the auto-defined channels for a given cluster queue manager.
We cannot see automatically defined channels using the DISPLAY CHANNEL runmqsc command. To see the auto-defined channels use the following command:
DISPLAY CLUSQMGR(qMgrName)
-
Display the status of the auto-defined channel for a given CLUSRCVR.
To display the status of the auto-defined CLUSSDR channel corresponding to a CLUSRCVR channel definition you created, use the following command:
DISPLAY CHSTATUS(channelname)
-
Use a channel auto-definition exit to modify the behavior of an auto-defined channel.
We can use the IBM MQ channel auto-definition exit if we want to write a user exit program to customize a cluster-sender channel or cluster-receiver channel. For example, we can use the channel auto-definition exit in a cluster environment to make any of the following modifications:
- Tailor communications definitions, that is, SNA LU6.2 names.
- Add or remove other exits, for example, security exits.
- Change the names of channel exits.
The name of the CLUSSDR channel exit is auto-generated from the CLUSRCVR channel definition, and therefore might not be appropriate for the needs - especially if the two ends of the channel are on different platforms.
The format of exit names is different on different platforms. For example:- On the z/OS platform, the format of the SCYEXIT (security exit name) parameter is SCYEXIT('SECEXIT')
- On Windows platforms, the format of the SCYEXIT (security exit name) parameter is SCYEXIT(' drive:\path\library (secexit)')
Note: If there is no channel auto-definition exit, the z/OS queue manager derives the CLUSSDR channel exit name from the CLUSRCVR channel definition on the other end of the channel. To derive the z/OS exit name from a non-z/OS name, the following algorithm is used:
- Exit names on Multiplatforms are of the general form path/library (function).
- If function is present, up to eight chars of that are used.
- Otherwise, up to eight chars of library are used.
For example:
- /var/mqm/exits/myExit.so(MsgExit) converts to MSGEXIT
- /var/mqm/exits/myExit converts to MYEXIT
- /var/mqm/exits/myExit.so(ExitLongName) converts to EXITLONG
-
For queue managers earlier than IBM MQ Version 7, set the PROPCTL attribute to a value of NONE.
Each auto-defined cluster-sender channel is based on the corresponding cluster-receiver channel. Before IBM MQ Version 7, the cluster-receiver channel does not have a PROPCTL attribute, so this attribute is therefore set to COMPAT in the auto-defined cluster-sender channel.
If the cluster needs to use PROPCTL to remove application headers such as RFH2 from messages going from an IBM MQ Version 7 or later queue manager to a queue manager on an earlier version of IBM MQ, we must write a channel auto-definition exit that sets PROPCTL to a value of NONE.
-
Use the channel attribute LOCLADDR to control aspects of addressing.
- To enable an outbound (TCP) channel to use a particular IP address, port or port range, use the channel attribute LOCLADDR. This is useful if you have more than one network card and we want a channel to use a specific one for outbound communications.
- To specify a virtual IP address on CLUSSDR channels, use the IP address from the LOCLADDR on a manually defined CLUSSDR. To specify the port range, use the port range from the CLUSRCVR.
- If a cluster needs to use LOCLADDR to get the outbound communication channels to bind to a specific IP address, we can write a channel auto-definition exit to force the LOCLADDR value into any of their automatically defined CLUSSDR channels. We must also specify it in the manually defined CLUSSDR channel.
- Put a port number or port range in the LOCLADDR of a CLUSRCVR channel, if we want all the queue managers in a cluster to use a specific port or range of ports, for all their outbound communications.
Note: Do not put an IP address in the LOCLADDR field of a CLUSRCVR channel, unless all queue managers are on the same server. The LOCLADDR IP address is propagated to the auto-defined CLUSSDR channels of all queue managers that connect using the CLUSRCVR channel.
On Multiplatforms, we can set a default local address value that is used for all sender channels that do not have a local address defined. The default value is defined by setting the MQ_LCLADDR environment variable prior to starting the queue manager. The format of the value matches that of MQSC attribute LOCLADDR.
Parent topic: Defining components of a cluster
Related information