+

Search Tips | Advanced Search

Automatically-defined cluster transmission queues

We can have the system generate the transmission queues for you.


About this task

If a channel does not have a manually defined cluster transmission queue that is associated with it, and you specify DEFCLXQ(CHANNEL), when the channel starts the queue manager automatically defines a permanent-dynamic queue for the cluster sender channel. Model queue SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE is used to automatically define the permanent dynamic cluster transmit queue with the name SYSTEM.CLUSTER.TRANSMIT.ChannelName.

To set up the cluster transmission queues manually, see Plan for manually-defined cluster transmission queues. Important:

If the queue manager is migrated to IBM MQ Version 8.0, the queue manager does not have the SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE.

Define this queue first, so that the command ALTER QGMR DEFCLXQ(CHANNEL) takes effect.

The following JCL is an example of the code we can use to define the model queue:
//CLUSMODL JOB MSGCLASS=H,NOTIFY=&SYSUID
/*JOBPARM SYSAFF=(MVCC)
//MQCMD EXEC PGM=CSQUTIL,REGION=4096K,PARM='CDLK'
//STEPLIB DD DISP=SHR,DSN=SCEN.MQ.V000.COM.BASE.SCSQAUTH
// DD DISP=SHR,DSN=SCEN.MQ.V000.COM.BASE.SCSQANLE
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COMMAND DDNAME(CMDINP)
/*
//CMDINP DD *
DEFINE QMODEL( 'SYSTEM.CLUSTER.TRANSMIT.MODEL.QUEUE' ) +
QSGDISP( QMGR ) +

* COMMON QUEUE ATTRIBUTES
DESCR( 'SYSTEM CLUSTERING TRANSMISSION MODEL QUEUE' ) +
PUT( ENABLED ) +
DEFPRTY( 5 ) +
DEFPSIST( YES ) +

* MODEL QUEUE ATTRIBUTES
DEFTYPE( PERMDYN ) +

* LOCAL QUEUE ATTRIBUTES
GET( ENABLED ) +
SHARE +
DEFSOPT( EXCL ) +
MSGDLVSQ( PRIORITY ) +
RETINTVL( 999999999 ) +
MAXDEPTH( 999999999 ) +
MAXMSGL( 4194304 ) +
NOHARDENBO +
BOTHRESH( 0 ) +
BOQNAME( ' ' ) +
STGCLASS( 'REMOTE' ) +
USAGE( XMITQ ) +
INDXTYPE( CORRELID ) +
CFSTRUCT( ' ' ) +
MONQ( OFF ) ACCTQ( OFF ) +

* EVENT CONTROL ATTRIBUTES
QDPMAXEV( ENABLED ) +
QDPHIEV( DISABLED ) +
QDEPTHHI( 80 ) +
QDPLOEV( DISABLED ) +
QDEPTHLO( 40 ) +
QSVCIEV( NONE ) +
QSVCINT( 999999999 ) +

* TRIGGER ATTRIBUTES
TRIGGER +
TRIGTYPE( FIRST ) +
TRIGMPRI( 0 ) +
TRIGDPTH( 1 ) +
TRIGDATA( ' ' ) +
PROCESS( ' ' ) +
INITQ( ' ' )
/*


Procedure

  1. Use the DEFCLXQ queue manager attribute. For more information on this attribute, see ALTER QMGR. There are two options:

      SCTQ
      This option is the default, and means that we use the single SYSTEM.CLUSTER.TRANSMIT.QUEUE.

      CHANNEL
      Means that we use multiple cluster transmission queues.

  2. To switch to the new association:

    • Stop and restart the channel.
    • The channel uses the new transmission queue definition.
    • Messages are transferred by a transitional switch process from the old queue to the new transmission queue.

    Note that any application messages are put to the old definition.

    When the number of messages on the old queue reaches zero, new messages are placed directly on the new transmission queue.

  3. To monitor when the switching process finishes:
    1. A switch of transmission queue that is initiated by a channel runs in the background and your administrator can monitor the queue manager job log to determine when it has completed.
    2. Monitor messages on the job log to show the progress of the switch.
    3. To make sure that only the channels that we wanted are using this transmission queue, issue the command DIS CLUSQMGR(*) where, for example, the transmission queue property that defines the transmission queue is APPQMGR.CLUSTER1.XMITQ.
    4. Use the SWITCH CHANNEL (*) STATUS command under CSQUTIL. This option tells you what pending changes are outstanding, and how many messages need to be moved between transmission queues.


Results

We have set up the cluster transmission queue, or queues.

Parent topic: Plan how we use multiple cluster transmission queues


Related tasks


Related information

Last updated: 2020-10-04