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