Moving a full repository to another queue manager

Move a full repository from one queue manager to another, building up the new repository from information held at the second repository.

Before you begin

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.
  • For business reasons you now want to remove the full repository from queue manager LONDON, and replace it with a full repository at queue manager PARIS. The NEWYORK queue manager is to continue holding a full repository.

About this task

Follow these steps to move a full repository to another queue manager.

Procedure

  1. Alter PARIS to make it a full repository queue manager.
    On PARIS, issue the following command:
    
    ALTER QMGR REPOS(INVENTORY)
    
  2. Add a CLUSSDR channel on PARIS
    PARIS currently has a cluster-sender channel pointing to LONDON. LONDON is no longer to hold a full repository for the cluster. PARIS must have a new cluster-sender channel that points to NEWYORK, where the other full repository is now held.
    
    DEFINE CHANNEL(INVENTORY.NEWYORK) CHLTYPE(CLUSSDR) TRPTYPE(TCP)
    CONNAME(NEWYORK.CHSTORE.COM) CLUSTER(INVENTORY)
    DESCR('Cluster-sender channel from PARIS to repository at NEWYORK')
    
  3. Define a CLUSSDR channel on NEWYORK that points to PARIS
    Currently NEWYORK has a cluster-sender channel pointing to LONDON. Now that the other full repository has moved to PARIS, you need to add a new cluster-sender channel at NEWYORK that points to PARIS.
    
    DEFINE CHANNEL(INVENTORY.PARIS) CHLTYPE(CLUSSDR) TRPTYPE(TCP)
    CONNAME(PARIS.CHSTORE.COM) CLUSTER(INVENTORY)
    DESCR('Cluster-sender channel from NEWYORK to repository at PARIS')
    

    When you add the cluster-sender channel to PARIS, PARIS learns about the cluster from NEWYORK. It builds up its own full repository using the information from NEWYORK.

  4. Check that queue manager PARIS now has a full repository
    Check that queue manager PARIS has built its own full repository from the full repository on queue manager NEWYORK. Issue the following commands:
    
    DIS QCLUSTER(*) CLUSTER (INVENTORY)
    DIS CLUSQMGR(*) CLUSTER (INVENTORY)
    

    Check that these commands show details of the same resources in this cluster as on NEWYORK.

    Note: If queue manager NEWYORK is not available, this building of information cannot complete. Do not move on to the next step until the task is complete.
  5. Alter the queue manager definition on LONDON
    Finally alter the queue manager at LONDON so that it no longer holds a full repository for the cluster. On LONDON, issue the command:
    
    ALTER QMGR REPOS(' ')
    

    The queue manager no longer receives any cluster information. After 30 days the information that is stored in its full repository expires. The queue manager LONDON now builds up its own partial repository.

  6. Remove or change any outstanding definitions.
    When you are sure that the new arrangement of your cluster is working as expected, remove or change manually defined CLUSSDR definitions that are no longer correct.
    • On the PARIS queue manager, you must stop and delete the cluster-sender channel to LONDON, and then issue the start channel command so that the cluster can use the automatic channels again:
      
      STOP CHANNEL(INVENTORY.LONDON)
      DELETE CHANNEL(INVENTORY.LONDON)
      START CHANNEL(INVENTORY.LONDON)
      
    • On the NEWYORK queue manager, you must stop and delete the cluster-sender channel to LONDON, and then issue the start channel command so that the cluster can use the automatic channels again:
      
      STOP CHANNEL(INVENTORY.LONDON)
      DELETE CHANNEL(INVENTORY.LONDON)
      START CHANNEL(INVENTORY.LONDON)
      
    • Replace all other manually defined cluster-sender channels that point to LONDON on all queue managers in the cluster with channels that point to either NEWYORK or PARIS. After deleting a channel, always issue the start channel command so that the cluster can use the automatic channels again. In this small example, there are no others. To check whether there are any others that you have forgotten, issue the DISPLAY CHANNEL command from each queue manager, specifying TYPE(CLUSSDR). For example:
      
      DISPLAY CHANNEL(*) TYPE(CLUSSDR)
      

    It is important that you perform this task as soon as possible after moving the full repository from LONDON to PARIS. In the time before you perform this task, queue managers that have manually defined CLUSSDR channels named INVENTORY.LONDON might send requests for information using this channel.

    After LONDON has ceased to be a full repository, if it receives such requests it will write error messages to its queue manager error log. The following examples show which error messages might be seen on LONDON:
    • AMQ9428: Unexpected publication of a cluster queue object received
    • AMQ9432: Query received by a non-repository queue manager
    The queue manager LONDON does not respond to the requests for information because it is no longer a full repository. The queue managers requesting information from LONDON must rely on NEWYORK for cluster information until their manually defined CLUSSDR definitions are corrected to point to PARIS. This situation must not be tolerated as a valid configuration in the long term.

Results

Figure 1 shows the cluster set up by this task.
Figure 1. The INVENTORY cluster with the full repository moved to PARIS
The diagram is the same INVENTORY cluster as in figure 17, with the full repository moved to PARIS