11.2. Creating a New Fabric

Overview

If there is no existing fabric for a broker to join, you will need to create one from the standalone broker. There are two options for how to do this:
  • The recommended approach is to create the fabric such that the broker is converted into a managed Fabric Server. The container will revert to being a vanilla broker, so you will need to either create a new broker with the desired configuration or deploy an updated broker profile into the Fabric Server.
    Ensuring that the new broker is configured properly requires creating a broker profile with the proper settings. This can be done once the new fabric is created using the fabric:mq-create command. The fabric:mq-create command can also create the new broker.
  • The alternative approach is to create the fabric such that the broker becomes a non-managed Fabric Server. The broker becomes a Fabric Server that is fully capable of being part of a fabric's ensemble. However, the broker retains control over its own configuration. It will continue to be managed as if it were a standalone broker and will not respond to fabric commands that attempt to alter its configuration.

Becoming a new fabric

Several things happen when a fabric is created from a standalone broker:
  1. The broker installs the required Fuse Fabric bundles to become a Fabric Server.
  2. The Fabric Server starts up the ensemble process.
  3. A new ensemble containing an empty configuration registry and a runtime registry with a single entry for the Fabric Server is created.
  4. The Fabric Server delegates control over its configuration to the ensemble.
    Note
    If the fabric is created with a non-managed server, this step is skipped.
  5. The ensemble associates the profiles required to be a Fabric Server with the container.
  6. Unless the --no-import flag is used, the ensemble imports a set of profiles.
    • If the --import-dir flag is used, the profiles are imported from the specified location.
    • If no location is specified the default set of profiles is imported from InstallDir/fabric/import.
  7. The ensemble installs the default mq profile to the container.
    This starts a default broker instance in the container.
    Note
    If the fabric is created with a non-managed server, this step is skipped.
  8. The ensemble waits for commands to update the fabric.

Procedure

To create a new fabric from a standalone broker:
  1. Delete the standalone broker configuration(s) from your installation's /etc folder.
    The configuration is stored in /etc/org.fusesource.mq.fabric.server-configName.cfg.
  2. Connect to the standalone broker's command console.
  3. Remove any brokers running in the container.
    1. Use config:list to locate any PIDs using the form org.fusesource.mq.fabric.server.ID.
    2. Use config:delete to delete all of the PIDs using the form org.fusesource.mq.fabric.server.ID.
  4. Enter the following command:
    JBossA-MQ:karaf@root> fabric:create
    Note
    If you want to import a predefined set of profiles, use the -p import-dir option to specify the set of profiles to import.
  5. Add a new broker to the fabric as described in Section 9.2, “Deploying a New Broker into a Fabric”.