Adding a more powerful queue manager that hosts a queue
Follow these instructions to provide additional capacity by running the inventory system in Los Angeles as well as New York, where Los Angeles can handle twice the number of messages as New York.
Before starting
Note: For changes to a cluster to be propagated throughout the cluster, at least one full repository must always be available. Ensure that your repositories are available before starting this task. Scenario:- The INVENTORY cluster has been set up as described in Adding a queue manager to a cluster. It contains three queue managers: LONDON and NEWYORK both hold full repositories, PARIS holds a partial repository and puts messages from INVENTQ. The inventory application runs on the system in New York connected to the NEWYORK queue manager. The application is driven by the arrival of messages on the INVENTQ queue.
- A new store is being set up in Los Angeles. To provide additional capacity, we want to run the inventory system in Los Angeles as well as New York. The new queue manager can process twice as many messages as New York.
Follow these steps to add a more powerful queue manager that hosts a queue.
Procedure
- Decide which full repository LOSANGELES refers to first.
-
Every queue manager in a cluster must refer to one or other of the full repositories to gather information about the cluster. It builds up its own partial repository. It is of no particular significance which repository you choose. In this example, NEWYORK is chosen. Once the new queue manager has joined the cluster it communicates with both of the repositories.
DEFINE CHANNEL(INVENTORY.NEWYORK) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME(NEWYORK.CHSTORE.COM) CLUSTER(INVENTORY) DESCR('Cluster-sender channel from LOSANGELES to repository at NEWYORK')
-
Define the CLUSRCVR channel on queue manager LOSANGELES.
Every queue manager in a cluster must define a cluster-receiver channel on which it can receive messages. On LOSANGELES, define:
DEFINE CHANNEL(INVENTORY.LOSANGELES) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME(LOSANGELES.CHSTORE.COM) CLUSTER(INVENTORY) DESCR('Cluster-receiver channel for queue manager LOSANGELES') CLWLWGHT(2)
The cluster-receiver channel advertises the availability of the queue manager to receive messages from other queue managers in the cluster INVENTORY. Setting CLWLWGHT to two ensures that the Los Angeles queue manager gets twice as many of the inventory messages as New York (when the channel for NEWYORK is set to one).
-
Alter the CLUSRCVR channel on queue manager NEWYORK.
Ensure that the Los Angeles queue manager gets twice as many of the inventory messages as New York. Alter the definition of the cluster-receiver channel.
ALTER CHANNEL(INVENTORY.NEWYORK) CHLTYPE(CLUSRCVR) CLWLWGHT(1)
-
Review the inventory application for message affinities.
Before proceeding, ensure that the inventory application does not have any dependencies on the sequence of processing of messages.
- Install the inventory application on the system in Los Angeles
-
Define the cluster queue INVENTQ.
The INVENTQ queue, which is already hosted by the NEWYORK queue manager, is also to be hosted by LOSANGELES. Define it on the LOSANGELES queue manager as follows:
DEFINE QLOCAL(INVENTQ) CLUSTER(INVENTORY)
Now that we have completed all the definitions, if you have not already done so start the channel initiator on IBM MQ for z/OS . On all platforms, start a listener program on queue manager LOSANGELES. The listener program listens for incoming network requests and starts the cluster-receiver channel when it is needed.
Results
Adding a more powerful queue manager that hosts a queue shows the cluster set up by this task.
This modification to the cluster was accomplished without you having to alter the queue managers LONDON and PARIS. The repositories in these queue managers are updated automatically with the information they need to be able to send messages to INVENTQ at LOSANGELES.
What to do next
The INVENTQ queue and inventory application are hosted on two queue managers in the cluster. The configuration increases their availability, speeds up throughput of messages, and allows the workload to be distributed between the two queue managers. Messages put to INVENTQ by either LOSANGELES or NEWYORK are handled by the instance on the local queue manager whenever possible. Messages put by LONDON or PARIS are routed to LOSANGELES or NEWYORK, with twice as many messages being sent to LOSANGELES.
Parent topic: Use clusters for workload managementRelated concepts
Related tasks
- Adding a queue manager that hosts a queue locally
- Use two networks in a cluster
- Use a primary and a secondary network in a cluster
- Adding a queue to act as a backup
- Restricting the number of channels used