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 required to move messages to another queue manager in the cluster. You can view
information about auto-defined cluster-sender channels, but you cannot modify them. To modify their
behavior, you can use a channel auto-definition exit.
About this task
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.
Cluster sender channels (CLUSSDRs) can be auto-defined both to move application messages and
internal cluster administration messages. For example, in a Publish/subscribe cluster (one in which a clustered topic has been defined),
channels can be defined between partial repositories to permit exchange of 'proxy subscription'
state. When not required (inactive) for an extended period of time auto-defined CLUSSDRs are removed
from a partial repository's cache of cluster information and are no longer visible on that queue
manager.
On Multiplatforms, the OAM (object authority manager) is not aware of the existence of auto-defined cluster-sender
channels. If you issue start, stop, ping,
reset, or resolve commands on an auto-defined cluster-sender
channel, the OAM checks to see whether you are authorized to perform the same action on the matching
cluster-receiver channel.
On z/OS®, you 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.
You 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.
You can use the IBM MQ channel auto-definition exit if you want to write a user exit program to customize a cluster-sender channel or cluster-receiver channel. For example, you 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 your 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
-
If the cluster needs to use PROPCTL to remove application headers such as
RFH2 from messages going from an IBM MQ queue manager to
a queue manager on an earlier version of the product, you 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 you 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, you can write a channel auto-definition exit to force the
LOCLADDR value into any of their automatically defined CLUSSDR
channels. You 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 you 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, you 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.