[AIX][Linux]

Reverting a queue manager to an earlier version on AIX and Linux

On AIX® and Linux®, you can revert a queue manager to an earlier version of the product from a later version, if you have made a backup of the system or queue manager. If you have started the queue manager and processed any messages, or changed the configuration, the task cannot give you any guidance on reverting the current state of the queue manager.

Before you begin

  1. You must have made a backup of the system or queue manager before you upgraded to the later version. For more information see Backing up and restoring IBM® MQ queue manager data
  2. If any messages were processed after starting the queue manager, you cannot easily undo the effects of processing the messages. You cannot revert the queue manager to the earlier version of the product in its current state. The task cannot give you any guidance how to deal with subsequent changes that have occurred. For example, messages that were indoubt in a channel, or in a transmission queue on another queue manager, might have been processed. If the queue manager is part of a cluster, then configuration messages and application messages might have been exchanged.
  3. If you are running on a server with multiple IBM MQ installations, you must identify the installation. Make sure that the commands you enter run against the correct installation; see setmqenv.

About this task

When you revert to a earlier version of a queue manager, you revert the queue manager to its earlier code level. Queue manager data is reverted to the state it was in when the queue manager was backed up.
Important: If the queue manager is a member of one or more IBM MQ clusters, you should also review and follow the steps described in Recovering a cluster queue manager.

Procedure

  1. Log in as a user in group mqm.
  2. Stop all applications using the IBM MQ installation.

    If you use the Managed File Transfer (MFT) component, ensure that any MFT agents have finished all of the file transfers that they were engaged in. There should be no incomplete transfers associated with the agents, and their SYSTEM.FTE.STATE queues should contain no messages.

  3. End all the activity of queue managers associated with the IBM MQ installation.
    1. Run the dspmq command to list the state of all the queue managers on the system.

      Run either of the following commands from the installation that you are updating:

      dspmq -o installation -o status
      dspmq -a
      

      dspmq -o installation -o status displays the installation name and status of queue managers associated with all installations of IBM MQ.

      dspmq -a displays the status of active queue managers associated with the installation from which the command is run.

    2. Use the MQSC command DISPLAY LSSTATUS to list the status of listeners associated with a queue manager, as shown in the following example:
      echo "DISPLAY LSSTATUS(*) STATUS" | runmqsc QmgrName
      
    3. Run the endmqm command to stop each running queue manager associated with this installation.
      Read syntax diagramSkip visual syntax diagram endmqm -c-w-i-p QmgrName

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

      For the maintenance to proceed, applications must respond to an endmqm command by disconnecting from the queue manager and releasing any IBM MQ libraries they have loaded. If they do not, you must find another way to force applications to release IBM MQ resources, such as by stopping the applications.

      You must also stop applications that are using the client libraries that are part of the installation. Client applications might be connected to a different queue manager, running a different installation of IBM MQ. The application is not informed about queue managers in the current installation being shut down.

      Any applications that continue to have IBM MQ shared libraries from the installation loaded prevent you applying IBM MQ maintenance. An application might disconnect from a queue manager, or be forcibly disconnected, but keep an IBM MQ shared library loaded.

      Note: Applying maintenance level updates to multi-instance queue managers on AIX and Applying maintenance level updates to multi-instance queue managers on Linux describe 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.
    4. Stop any listeners associated with the queue managers, using the command:
      endmqlsr -m QMgrName
      
  4. Restore the system, or IBM MQ and the queue manager.

    If your backup procedure was to save the queue manager data, you must reinstall IBM MQ:

    1. Uninstall the earlier installation.
    2. Reinstall the product from a manufacturing refresh.
    3. Apply the fix pack and interim fixes that restore IBM MQ to its previous level.
    4. Restore the queue manager data from the backup taken before installing the later version.
  5. Restart the earlier version queue manager.

What to do next

You might be reverting to a earlier version on a server with multiple IBM MQ installations. If one of the installations is primary, after reverting the earlier version that installation, by default, becomes the primary installation.

You must review how applications connect to an installation. After reverting to the earlier version, some applications might connect to the wrong installation.