You are on page 1of 5

CLUSTERING

 Clustering is a collection of queue managers which are interconnected logically.
It reduces the administration overhead,i.e. It uses less number of channels and listeners.

By enabling workload management, It provides high availability, i.e.

 if any queue manager inthe cluster setup is down, we can work on the other queue managers 
without any interruption.

To configure the cluster setup the required components are,

1. Full repository queue manager(holds control n info of all the other QMs in the cluster)
2. Partial repository queue manager(holds it own n full repos info)
3. Cluster queues( system.Cluster.Repository.Queue, history, transmit, command)
4. Cluster channels(auto cluster sdr channels, explicit chls (cluster sdr n cluster rcvr)

They must be at least one full repository in the cluster setup but IBM recommends 2. Becaus
e if one full repository is down, we can go with the other full repository.

System.Cluster.Repository.Queue - holds all the info of the qm.

System.Cluster.Transmit.Queue - holds the msgs.

System.Cluster.Command.Queue - Whenever the partial repository create a sender channel 
to the full repository, automatically auto sdr chls will be generated.

 all the data from partial - full & full - partial will be copied by this command.Queue

syntax : ALTER QMGR REPOS(CLUSTER_NAME)

As all the QMs are interconnected in the cluster setup, we can put msgd from any QM.
But to get the msgs from any Qm, we have to establish a connection to that particular QM.

syntax :DIS CLUSQMGR(*) WHERE(QMTYPE EQ REPOS)-----FULL REPOS
DIS CLUSQMGR(*) WHERE(QMTYPE EQ NORMAL)---- PARTIAL REPOS

DIS CLUSQMGR(*)---- list of QMGRs

DIS QCLUSTER(*)-----list of QUEUEs

How to add new QM to the CLUSTER?

We will create a clusrcvr chl, lstr and clussdr chl to connect to the Full Repos.
WORKLOAD SHARING

If a cluster contains multiple instances of the same QUEUE, we have the concept of worklad
sharining , to achieve the high availability and scalability.

So, whenever an application  keeps the messages in queue manager, by using round robin


algorithm, work load sharing will share those messages  equally over the cluster.

By altering QMGR clwluseq & defbind properities, we can achieve workload sharing.

ALTER QL(QUEUE_NAME) CLWLUSEQ(ANY) DEFBIND(NOTFIXED)


CLUSTER(CLUSTER_NAME)

RANK :

ALTER QL(QUEUE) CLWLRANK(8)

We can set rank at channel level, Queue level, QM level.

0- Lowest (default)

9- highest.

All the msgs will be blindly go to the highest ranked QM.

What hapend if highest QM got shutdown? Where will all the msgs will go ?

All the msgs will be piled up in the  transmission queues of the appropriate QMs , till
the highest QM will get activated.

Once the highest ranked QM has activated, then automatically all the msgs that are stopped
at the other QMs will come to the highest QM.

PRIOPRITY :

ALTER QL(QUEUE) CLWLPRTY(9)

All the msgs will be blindly go to the highest priority QM.

What hapend if highest QM got shutdown? Where will all the msgs will go ?

All the msgs will go to next highest priority QM.


SUSPEND QM IN CLUSTER:

Suspend – temporarily out of service.

SUSPEND QMGR CLUSTER(CLUSTER_NAME)

DIS CLUSQMGR(*) WHERE(SUSPEND EQ YES)

If we are in workload sharing and has suspended one QM, the next coming msgs will be
shared among other QMs in the cluster.

Eventhough we try to put the msgs in the Suspended QM, those will be shared on the other
QMs in the Cluster.

RESUME QM :

To resume the suspended QM,

RESUME QMGR CLUSTER(CLUSTER_NAME)

REMOVE QM FROM CLSTER :

To remove the QM from the cluster permanently,

First suspend and then reset.

SUSPEND QMGR CLUSTER(CLUS_NAME)

RESET CLUSTER(CLUS_NAME) QMNAME(QM_NAME) ACTION(FORCEREMOVE)


QUEUES(YES)

If we want to add back the removed QM,

We can add it with in the 90 days period of time.

REFRESH CLUSTER(CLUS_NAME)
DIS CLUSQMGR(*)

RESET – TO REMOVE QM PERMANANTLY FROM THE CLUSTER.

REFRESH – ADD REMOVED QM TO CLUSTER.

SUSPEND – TO REMOVE QM TEMPORARILY FROM CLUSTER.

RESUME – ADD ADD BACK QM TO CLUSTER.

How to convert FULL REPOS to PARTIAL :

ALTER QMGR REPOS(‘ ‘)

Have to delete all the SDR channels connected to FULL REPOS.

CLUSTERING OVER LAPPING (NAME LIST)

Name list object holds list of cluster names.

It resolves cluster name conflict to share an object in multiple clusters.

If we have the 2 clusters and want to exchange the msgs between the 2 clusters. Then we
use namelist.

We overlap clusters by conflicting intermediate QMGR between clusters.

To exchange the msgs intermediately we will have one more QM(called as gateway). This will
be part of 2 clusters.

So by this we will get the rcvr name conflict, So to overcome this we have a concept called
NAMELIST.

DEFINE NAMELIST(namelist_name) NAMES(CLUSTER1,CLUSTER2)

DEFINE CHL(TO.QMNAME) CHLTYPE(CLUSRCVR) CONNAME(‘LOCALHOST(PORT)’)


CLUSNL(namelist_name)

If we define like this, 2 rcvr chls will be created with the same name.

One is for cluster1.

One is for cluster2.

You might also like