Staging maintenance fixes on Windows

On Windows systems, we can use multiple installations of IBM MQ on the same server to control the release of maintenance fixes.


Before you begin

Set up your configuration modeled on the first row of Figure 1. We can apply this scenario to any version of IBM MQ from IBM WebSphere MQ Version 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 Version 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.
  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 IBM MQ Explorer.
  6. Set up remote connections to all the queue managers in each instance of IBM MQ Explorer.


About this task

We 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. We 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 we 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 IBM MQ Explorer and we have two installations, you also have two IBM MQ Explorer instances. One linked to one installation, and one to the other. Each IBM MQ Explorer shows locally connected queue managers that are associated with the same installation as the instance of IBM 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


Procedure

  1. Download the first fix pack, for example, 7.1.0.1, when it is released.

  2. Apply the fix pack we downloaded to Inst_2. See Apply and removing maintenance on Windows.
  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 Stop a queue manager.

      Note: The topic, Apply maintenance level updates to multi-instance queue managers on Windows, 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.
      "Inst_2_INSTALLATION_PATH\bin\setmqenv" -s
      

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

    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 IBM MQ Explorer for Inst_2.
      1. Start the Inst_2 instance of IBM 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 IBM 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.
    "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 we have just downloaded to Inst_1. See Apply and removing maintenance on Windows.
  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.
    "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.