Chapter 17. Applying Patches

Abstract

Red Hat JBoss A-MQ supports incremental patching. Red Hat will supply you with easy to install patches that only make targeted changes to a deployed broker.
Incremental patching allows you apply targets fixes to a broker without needing to reinstall an updated version of Red Hat JBoss A-MQ. It also allows you to easily back the patch out if it causes problems with your deployed applications.
Patches are ZIP files that contain the artifacts needed to update a targeted set of bundles in a container. The patch file includes a .patch file that lists the contained artifacts. The artifacts are typically one or more bundles. They can, however, include configuration files and feature descriptors.
You get a patch file in one of the following ways:
  • Customer Support sends you a patch.
  • Customer Support sends you a link to download a patch.
The process of applying a patch to a broker depends on how the broker is deployed:
  • standalone—the broker's command console's patch shell has commands for managing the patching process
  • fabric—patching a fabric requires applying the patch to a profile and then applying the profile to a broker
    The management console is the recommended way to patch brokers in a fabric. See Using the Management Console for more information.

17.1. Patching a Standalone Broker

Abstract

You apply patches to a standalone broker using the command console's patch shell. You cam apply and roll back patches as needed.

Overview

Patching a standalone broker directs the broker to load the patch versions of artifacts instead of the non-patch versions. The patch shell provides commands to patches to the broker's environment, see which bundles are effected by applying the patch, apply the patch to the container, and back the patch out if needed.
To make sure that the a patch can be rolled back Red Hat JBoss A-MQ applies the patch in a non-destructive manner. The patching process does not overwrite the artifacts included in the original installation. The patched artifacts are placed in the broker's system folder. When the patch is applied, the broker's configuration is changed so that it points to the patched artifacts instead of the artifacts from the original installation. This makes it easy for the system to be restored to its original state or to selectively back out patches.
Important
Patches do not persist across installations. If you delete and reinstall a Red Hat JBoss A-MQ instance you will need to download the patches and reapply them.

Applying a patch

To apply a patch to a standalone broker:
  1. Add the patch to the broker's environment using the patch:add command.
    Example 17.1, “Adding a Patch to a Broker's Environment” shows the command for adding the patch contained in the patch file patch.zip from the local file system.

    Example 17.1. Adding a Patch to a Broker's Environment

    FuseMQ> patch:add file://patch.zip
    This command copies the specified patch file to the broker's system folder and unpacks it.
  2. Simulate installing the patch using the patch:simulate command.
    This will generate a log of the changes that will be made to the broker when the patch is installed, but will not make any actual changes to the broker.
    Note
    The patch:list command will display a list of all patches added to the broker's system folder.
  3. Review the simulation log to understand the changes that will be made to the broker.
  4. Apply the patch to the broker using the patch:install command.
    Note
    The patch:list command will display a list of all patches added to the broker's system folder.
The broker will need to restart to apply the patch. If you are using a remote console, you will lose the connection to the broker. If you are using the broker's local console, it will automatically reconnect when the broker restarts.

Rolling back a patch

Occasionally a patch will not work or introduce new issues to a broker. In these cases you can easily back the patch out of the system and restore it pre-patch behavior using the patch:rollback command. As shown in Example 17.2, “Rolling Back a Patch”, the command takes the name of patch to be backed out.

Example 17.2. Rolling Back a Patch

FuseMQ> patch:rollback patch1
Note
The patch:list command will display a list of all patches added to the broker's system folder.
The broker will need to restart to rollback the patch. If you are using a remote console, you will lose the connection to the broker. If you are using the broker's local console, it will automatically reconnect when the broker restarts.