UNIX, Linux, and Windows: Staging maintenance fixes

Use multiple installations of IBM® MQ on the same server to control the release of maintenance fixes.

Before you begin

Set up your configuration modelled on the first row of Figure 1. You can apply this scenario to any version of IBM MQ from IBM WebSphere® MQ 7.1 onwards. In this scenario it is assumed you have a number of applications and two queue managers, QM1 and QM2, running on a server. IBM WebSphere MQ 7.0.1 is not installed on the server.
  1. Install two copies of IBM MQ. In the example, they are named Inst_1 and Inst_2 and IBM WebSphere MQ 7.1 is being used.
  2. Make Inst_1 primary by running setmqinst.
  3. Associate all the queue managers on the server with Inst_1 by running setmqm.
  4. Start all the queue managers on the server.
  5. Show and connect all direct connections with the queue managers associated with Inst_1 in MQ Explorer.
  6. Set up remote connections to all the queue managers in each instance of MQ Explorer.

About this task

You can install multiple copies of IBM MQ on a server to stage the release of IBM MQ fixes. Figure 1 illustrates a way of using two installations to roll out fixes. In this approach, you maintain two fix levels on a server, with the aim of getting all queue managers and applications to the production fix level before replacing the previous level on fix pack with the next level.

Which installation an application uses is driven by the queue manager an application connects to. The setmqm command associates a queue manager with an installation. You can associate a queue manager with a different installation as long as the installation is at the same or higher command level. In this example, all the installations are at the same command level. You can associate or reassociate a queue manager with either of the installations running any of the fix packs.

In the example, an application links to the primary installation. When it connects to a queue manager, IBM MQ switches the linkage to the installation associated with the queue manager; see Multi-installation queue manager coexistence on UNIX, Linux, and Windows.

For applications built with the link options described in the product documentation, the simplest way to configure the link library search path for IBM MQ applications is to make an installation primary. Only if it is important to pick up a fix in the IBM MQ link library itself, must you review the search path. Either you must make the installation with the IBM MQ link library fix primary, or make a local adjustment for the application, perhaps by running the setmqenv command.

Running commands is a different matter. Commands are always run from the primary installation, or the installation you have selected by running the setmqenv command. If you run a command from the wrong installation, the command fails. For example, if QM1 is associated with Inst_1, running the Windows command, Inst_2_Installation_path/bin/strmqm QM1 fails.

If you are using MQ Explorer and you have two installations, you also have two MQ Explorer instances. One linked to one installation, and one to the other. Each MQ Explorer shows locally connected queue managers that are associated with the same installation as the instance of MQ Explorer. To monitor all the queue managers on a server, set up remote connections to the queue managers associated with the other installations.

Figure 1. Rolling fix releases
Two installations, Inst_1 and Inst_2, on one server. Inst_1 upgraded from 7.1 to 7.1.0.2, and Inst_2 from 7.1, to 7.1.0.1, to 7.1.0.3

Procedure

  1. Download the first fix pack, for example, 7.1.0.1, when it is released.
  2. Apply the fix pack you downloaded to Inst_2.
  3. Verify Inst_2.
  4. Transfer the queue managers to Inst_2 one at a time.
    1. Stop QM1 and the applications connected to it.

      The endmqm command informs an application that the queue manager it is connected to is stopping; see Stopping a queue manager.

      Note: The topic, Applying maintenance level updates to multi-instance queue managers, describes how to apply maintenance to a multi-instance queue manager. A multi-instance queue manager can continue to run on one server, while maintenance is applied to another server.
    2. Set up the local environment to the installation Inst_2.
      [Windows] Windows:
      
      "Inst_2_INSTALLATION_PATH\bin\setmqenv" -s
      

      The -s option sets up the environment for the installation that runs the setmqenv command.

      [UNIX] UNIX:
      
      .Inst_2_INSTALLATION_PATH/bin/setmqenv -s
      
    3. Associate the queue manager with Inst_2.
      
      setmqm -m QM1 -n Inst_2
      
    4. Start QM1
      
      strmqm QM1
      
    5. Repeat substeps c and d for QM2.
    6. Set up MQ Explorer for Inst_2.
      1. Start the Inst_2 instance of MQ Explorer
        Tip: On Windows, hover over the IBM MQ icon in the system tray. The hover help shows the installation name associated with the MQ Explorer instance.
      2. Click IBM MQ > Queue Managers > Show/Hide Queue Managers... >
      3. Click each directly connected queue manager listed in the Hidden Queue Managers list > Show.
      4. Click Close.
  5. Set Inst_2 primary.
    [Windows] Windows:
    
    "Inst_2_INSTALLATION_PATH\bin\setmqinst" -i -n Inst_2
    
    [UNIX] UNIX:
    
    Inst_2_INSTALLATION_PATH/bin/setmqinst -i -n Inst_2
    
  6. Download the next fix pack for the version of your product, for example, 7.1.0.2, when it is released.
  7. Apply the fix pack that you have just downloaded to Inst_1.
  8. Verify Inst_1.
  9. Transfer queue managers to Inst_1 one at a time.
    1. Follow the procedure in step 4

      Replacing Inst_2 by Inst_1 in the instructions.

  10. Set Inst_1 primary.
    [Windows] Windows:
    
    "Inst_1_INSTALLATION_PATH\bin\setmqinst" -i -n Inst_1
    
    [UNIX] UNIX:
    
    Inst_1_INSTALLATION_PATH/bin/setmqinst -i -n Inst_1
    
  11. Repeat steps 1 to 5 for the odd-numbered fix packs of your product.
  12. Repeat steps 6 to 10 for the even-numbered fix packs of your product.