Terminology

 


Overview

Cluster

A cluster is a network of queue managers that are logically associated in some way. The queue managers in a cluster may be physically remote. For example, they might represent the branches of an international retail store and be physically located in different countries. Each cluster within an enterprise should have a unique name.

Cluster queue manager

A cluster queue manager is a queue manager that is a member of a cluster. A queue manager may be a member of more than one cluster. (See Overlapping clusters.) Each cluster queue manager must have a name that is unique throughout all the clusters of which it is a member.

A cluster queue manager can host queues, which it advertises to the other queue managers in the cluster. A cluster queue manager does not have to host or advertise any queues. It can just feed messages into the cluster and receive only responses that are directed explicitly to it, and not to advertised queues.

Cluster queue managers are autonomous. They have full control over queues and channels that they define. Their definitions cannot be modified by other queue managers (other than queue managers in the same queue-sharing group).

When you make or alter a definition on a cluster queue manager, the information is sent to the full repository queue manager and the repositories in the cluster are updated accordingly.

Cluster queue

A cluster queue is a queue that is hosted by a cluster queue manager and made available to other queue managers in the cluster. The cluster queue manager makes a local queue definition for the queue, specifying the name of the cluster where the queue is to be found. This definition has the effect of showing the other queue managers in the cluster that the queue is there. The other queue managers in the cluster can put messages to a cluster queue without needing a corresponding remote-queue definition. A cluster queue can be advertised in more than one cluster.

Repository

A repository is a collection of information about the queue managers that are members of a cluster. This information includes queue manager names, their locations, their channels, which queues they host, and so on. The information is stored in the form of messages on a queue, created when you start a queue manager, called...

SYSTEM.CLUSTER.REPOSITORY.QUEUE

For example:

     2 : dis ql(SYSTEM.CLUSTER.REPOSITORY.QUEUE)
AMQ8409: Display Queue details.
   DESCR(WebSphere MQ Cluster Repository Queue)
   PROCESS( )                              BOQNAME( )
   INITQ( )                                TRIGDATA( )
   CLUSTER( )                              CLUSNL( )
   QUEUE(SYSTEM.CLUSTER.REPOSITORY.QUEUE)
   CRDATE(2003-08-11)                      CRTIME(16.48.26)
   ALTDATE(2003-08-11)                     ALTTIME(16.48.26)
   GET(ENABLED)                            PUT(ENABLED)
   DEFPRTY(0)                              DEFPSIST(NO)
   MAXDEPTH(999999999)                     MAXMSGL(4194304)
   BOTHRESH(0)                             SHARE
   DEFSOPT(SHARED)                         HARDENBO
   MSGDLVSQ(PRIORITY)                      RETINTVL(999999999)
   USAGE(NORMAL)                           NOTRIGGER
   TRIGTYPE(FIRST)                         TRIGDPTH(1)
   TRIGMPRI(0)                             QDEPTHHI(80)
   QDEPTHLO(20)                            QDPMAXEV(ENABLED)
   QDPHIEV(DISABLED)                       QDPLOEV(DISABLED)
   QSVCINT(999999999)                      QSVCIEV(NONE)
   DISTL(NO)                               DEFTYPE(PREDEFINED)
   TYPE(QLOCAL)                            SCOPE(QMGR)
   DEFBIND(OPEN)                           IPPROCS(1)
   OPPROCS(1)                              CURDEPTH(105)

Typically, two queue managers in a cluster hold a full repository. The remaining queue managers all hold a partial repository.

Repository queue manager

A repository queue manager is a cluster queue manager that holds a full repository. To ensure availability, set up two or more full repository queue managers in each cluster. The full repository queue managers receive information sent by the other queue managers in the cluster and update their repositories accordingly. The full repository queue managers send messages to each other to be sure that they are both kept up to date with new information about the cluster.

Full repository and partial repository

A queue manager that hosts a complete set of information about every queue manager in the cluster is referred to as having a full repository for the cluster.

The other queue managers in the cluster inquire about the information in the full repositories and build up their own subsets of this information in partial repositories. A queue manager's partial repository contains information about only those queue managers with which the queue manager needs to exchange messages. The queue managers request updates to the information they need, so that if it changes, the full repository queue manager will send them the new information. For much of the time a queue manager's partial repository has all the information it needs to perform within the cluster. When a queue manager needs some additional information, it makes inquiries of the full repository and updates its partial repository. To request and receive updates to the repositories, the queue managers use a queue called

SYSTEM.CLUSTER.COMMAND.QUEUE

For example:

dis ql(SYSTEM.CLUSTER.COMMAND.QUEUE)
     1 : dis ql(SYSTEM.CLUSTER.COMMAND.QUEUE)
AMQ8409: Display Queue details.
   DESCR(WebSphere MQ Cluster Command Queue)
   PROCESS( )                              BOQNAME( )
   INITQ( )                                TRIGDATA( )
   CLUSTER( )                              CLUSNL( )
   QUEUE(SYSTEM.CLUSTER.COMMAND.QUEUE)     CRDATE(2003-09-10)
   CRTIME(10.02.22)                        ALTDATE(2003-09-10)
   ALTTIME(10.02.22)                       GET(ENABLED)
   PUT(ENABLED)                            DEFPRTY(0)
   DEFPSIST(NO)                            MAXDEPTH(999999999)
   MAXMSGL(4194304)                        BOTHRESH(0)
   SHARE                                   DEFSOPT(SHARED)
   HARDENBO                                MSGDLVSQ(PRIORITY)
   RETINTVL(999999999)                     USAGE(NORMAL)
   NOTRIGGER                               TRIGTYPE(FIRST)
   TRIGDPTH(1)                             TRIGMPRI(0)
   QDEPTHHI(80)                            QDEPTHLO(20)
   QDPMAXEV(ENABLED)                       QDPHIEV(DISABLED)
   QDPLOEV(DISABLED)                       QSVCINT(999999999)
   QSVCIEV(NONE)                           DISTL(NO)
   DEFTYPE(PREDEFINED)                     TYPE(QLOCAL)
   SCOPE(QMGR)                             DEFBIND(OPEN)
   IPPROCS(1)                              OPPROCS(0)
   CURDEPTH(0)

Cluster-receiver channel

A cluster-receiver (CLUSRCVR) channel definition defines the receiving end of a channel on which a cluster queue manager can receive messages from other queue managers in the cluster. A cluster-receiver channel can also carry information about the cluster--information destined for the repository. By defining the cluster-receiver channel, the queue manager shows to the other cluster queue managers that it is available to receive messages. You need at least one cluster-receiver channel for each cluster queue manager.

Cluster-sender channel

A cluster-sender (CLUSSDR) channel definition defines the sending end of a channel on which a cluster queue manager can send cluster information to one of the full repositories. The cluster-sender channel is used to notify the repository of any changes to the queue manager's status, for example the addition or removal of a queue. It is also used to transmit messages.

The full repository queue managers themselves have cluster-sender channels that point to each other. They use them to communicate cluster status changes to each other.

It is of little importance which full repository a queue manager's CLUSSDR channel definition points to. Once the initial contact has been made, further cluster queue manager objects are defined automatically as necessary so that the queue manager can send cluster information to every full repository, and messages to every queue manager.

Cluster transmission queue

Each cluster queue manager has a cluster transmission queue called...

SYSTEM.CLUSTER.TRANSMIT.QUEUE

The cluster transmission queue transmits all messages from the queue manager to any other queue manager that is in the same cluster. This queue is one of the default cluster transmission queues

Binding

You can create a cluster in which more than one queue manager hosts an instance of the same cluster queue. This is discussed in More than one instance of a queue. If you do this, make sure that a sequence of messages are all sent to the same instance of the queue. You can bind a series of messages to a particular queue by using the MQOO_BIND_ON_OPEN option on the MQOPEN call

 

WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.

 

IBM is a trademark of the IBM Corporation in the United States, other countries, or both.