Configuring for high availability

You can accept the default configuration for high availability, or specify some of the details yourself.

Default configuration

If no configuration is given, the following rule applies when you use strmqm to start a queue manager:
  • The queue manager runs in fault tolerant mode, that is, with backup enabled.
  • The primary EC process is started in the CPU where strmqm was run.
  • The backup EC process is run in a different CPU, chosen by the NonStop.

Configuring CPUs and EC process name

For configuring queue manager CPUs and the EC process name, four configurable properties are available. All properties are configured using the runnscnf tool (see The runnscnf tool for details). All properties are for class “Processes” and object EC. The individual properties are:

PrimaryCPU

Set the EC primary CPU. This CPU is chosen for the primary EC process when the queue manager is started, if that CPU is available at the time. All queue manager processes for the active instance run on that CPU.

If that property is not set, or set to -1, the CPU where strmqm is run is used.

BackupCPU

Set the EC backup CPU. This CPU is chosen for the backup EC process when the queue manager is started if that CPU is available at that time. All queue manager processes for the backup instance run on that CPU.

If that property is not set, or set to -1, any available, and allowed, CPU is used.

AllowedCPUs
A comma-separated list of CPUs. If this property is configured, queue manager processes (active and standby) are only be started in CPUs which are in this list. If configured, and >=0, the PrimaryCPU and the BackupCPU are implicitly added to that list. By using the AllowedCPUs property, you can restrict CPU usage for IBM® MQ to a subset of all CPUs in the system.
ProcessName
The EC process name in the usual Guardian syntax ($...). If a process with that name is already running on the system when strmqm is executed, strmqm fails with an error message, and the queue manager is not started. If this property is not configured, a process name is chosen by the operating system. The process name chosen by the system is displayed by the following command:
dspmq -x 

Disabling high availability

You can disable high availability for IBM MQ by setting the PrimaryCPU and BackupCPU to the same value in the configuration, even if both values are -1 (any CPU).

You can configure a non-fault-tolerant queue manager to run in a specific CPU by specifying:

PrimaryCPU=BackupCPU=CPU_to_run_queue_manager_in

You can configure a non-fault-tolerant queue manager to run in any available and allowed CPU by specifying:

PrimaryCPU=BackupCPU=-1

There is a difference between setting primary and backup CPU both to any CPU (-1) and not configuring primary and backup CPU. In the first case, a non-fault tolerant configuration is able to run in any allowed CPU, in the second case a fault tolerant configuration is able to run in any allowed CPU.