Apply maintenance level updates to multi-instance queue managers on UNIX and Linux

On UNIX and Linux , we can use multi-instance queue managers to reduce the outage caused by applying maintenance updates.


Before you begin

Before starting this task, read through the prerequisites described in Before you begin in Apply maintenance level server updates on Windows

Before starting this task, see that the maintenance is applied to the IBM MQ installation on a server and not to individual queue managers. Before you apply maintenance, you must stop all the queue managers, and any IBM MQ service, on a server.

If you want a queue manager to keep running while maintenance is applied, you must configure it as a multi-instance queue manager, and have a standby instance running on another server. If the queue manager to keep running is an existing single instance queue manager, you must convert it to a multi-instance queue manager. For prerequisites and guidance how to create a multi-instance queue manager, see Multi-instance queue managers.

We can create a multi-instance queue manager from Version 7.0.1 onwards. If you are running multi-instance queue managers, you then can apply a maintenance update to a running queue manager by switching the active instance to a different server.

Typically, active and standby installations are maintained at the same maintenance level. Consult the maintenance instructions for each update. Consult the instructions to see if it is possible to run the active and standby instances at different maintenance levels. Check whether fail over from higher to lower, or only lower to higher maintenance level is possible.

The instructions for applying a maintenance update might require you to stop a multi-instance queue manager completely.

If we have a primary server for running active queue manager instances, and a secondary server that runs standby instances, we have a choice of updating the primary or secondary server first. If you update the secondary server first, you must switch back to the primary server when both servers have been updated.

If we have active and standby instances on several servers, you must plan in what order you update the servers to minimize the disruption caused by ending the active instances on each server you update.


About this task

Combine the steps in this task with the maintenance update procedure for applying maintenance to an IBM MQ server installation.


Procedure

  1. Where the maintenance update procedure instructs you to stop all running queue managers, or quiesce IBM MQ do the following instead: See: Apply and removing maintenance on UNIX and Linux
    1. If the queue manager is running as standby:

      • End the standby with the endmqm -x QMgrName command.
    2. If the queue manager is running as the active instance: End the instance and transfer control to the standby instance with the endmqm command. For example, endmqm -shutdown_option -s QMgrName , where -shutdown_option is an optional parameter specifying the type of shutdown. For more information, see endmqm.

      If there is no standby instance running, the command fails, and you must start a standby instance on a different server.

    3. If a queue manager is running as a single instance queue manager, we have no alternative but to stop the queue manager before applying the maintenance update.
    When you complete this step, no queue manager instances are left running on the server you intend to update.
  2. Continue with the maintenance update procedure, following the step to issue the endmqm command, or quiesce IBM MQ and apply maintenance to the IBM MQ server.
  3. When we have completed the maintenance update, restart all the queue managers on the IBM MQ server, permitting standby instances: Use the following command:
    strmqm -x QmgrName
  4. Repeat the procedure on the standby server, to update its maintenance level.
  5. If necessary, switch the active instances back to the primary servers: Use the endmqm -shutdown_option -s QMgrName command, and the restart the instances using the strmqm -x QmgrName command.