WebSphere Message Broker V7.0 introduces software High Availability support as an alternative to using HACMP This note provides a general description of the feature along with additional information and corrections to the V7.0 documentation
General Description of High Availability Software Support:
High availability (HA) is a protocol and associated implementation that ensures a certain degree of operational continuity when unplanned downtime events impact parts of a system. WebSphere Message Broker has supported, and been supported by, high availability technologies such as IBM’s HACMP, but the HA marketplace has now changed to accommodate solutions that have a lower price-of-entry. These solutions rely entirely on software, as opposed to traditional reliance on shared disk hardware, custom network links, and similar resources.
WebSphere MQSeries V7.0.1 includes software HA, and WebSphere Message Broker follows suit in Version 7.0, with the multi-instance broker building upon the capabilities of the multi-instance queue manager solution, as shown in Figure 1 below.
For this scenario, a multi-instance broker is created using the mqsicreatebroker command, with an additional -e option that specifies the location in shared network storage (see Figure 1) of the broker registry and other configuration data. Additional instances of the broker can then be created on other machines in the network using a new command called mqsiaddbrokerinstance, using the -e option to target the same location in shared network storage. Broker logging, error handling and shared Java Classes remain local to the machine that hosts the broker or broker instance. For a description of how the failover is managed for a multi-instance broker please see below.
- Restrictions on creating a multi-instance broker or broker instance:
A multi-instance broker can be created only by using the mqsicreatebroker command. It is not possible to convert an existing broker that is not multi-instance to a multi-instance broker by using the mqsichangebroker command. Nor is it possible to migrate a broker from a previous release to a V7.0 multi-instance broker. Similarly a broker instance can be created only by using the mqsiaddbrokerinstance command.
- Mapping IDs across the servers :
Before creating multi-instance queue managers or multi-instance brokers, ensure that the numeric ID for the users and groups that create and run the brokers and queue managers are matched across the servers in the network.
- Removal of a multi-instance message broker and broker instances:
The order of deletion of a multi-instance message broker and its associated instances is important, so be careful to use the correct command for each step in the cleanup process.
1) Run the mqsiremovebrokerinstance command to remove all the broker instances before you try to remove the broker itself. This command removes all local references to the broker instance, but does not affect the shared configuration for the multi-instance broker on the shared work path (which was specified by using the -e option on the mqsicreatebroker and mqsiaddbrokerinstance commands). You cannot use the mqsiremovebrokerinstance command against a standby broker instance.
2) Run the mqsideletebroker command to remove the multi-instance broker. This removes all references to the broker on both the local and shared work paths. You cannot use this command against a standby broker instance.
If you mistakenly remove a broker instance, you can recreate it by running the mqsiaddbrokerinstance command, provided that you have not yet run the mqsideletebroker command to delete the broker itself.
If the multi-instance broker is removed by running the mqsideletebroker command before removing the associated broker instances, then it will no longer be possible to start the broker instances. To recover from this situation you can recreate the multi-instance broker by running the mqsicreatebroker command, using the -e option to specify the original shared work path location.
- Failing over a multi-instance broker and queue manager.
The current guidance in bullet 6 of the topic "Creating the WebSphere MQ multi-instance queue manager" in the WebSphere Message Broker V7.0 Information Center is incorrect:
Use the following guidance about how failover occurs for a multi-instance message broker:
An active broker instance fails over when its associated active multi-instance queue manager terminates unexpectedly, or stops in a controlled manner. The action of stopping an active broker instance on an active multi-instance queue manager does not by itself cause a standby broker instance to become active.
To enable a standby broker and multi-instance queue manager pair to become active in a controlled manner, run the WebSphere MQSeries endmqm command with the -s option. Do this on the machine that hosts the currently-active broker instance and queue manager instance pair.
To stop a standby queue manager instance, run the WebSphere MQSeries endmqm command with the -x option. For details refer to the "endmqm" topic in the WebSphere MQ V7.0.1 Information Center:http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzag.doc/fa15800_.htm
Always use the -x option on the WebSphere MQSeries strmqm command when starting the multi-instance queue manager associated with the multi-instance broker.
- Reconnecting client applications to the broker after failover
WebSphere MQ V7.0.1 introduced a feature to allow MQ clients and MQ JMS clients to automatically reconnect to a queue manager instance after failover,. A user is able to configure a list of multiple connection names ( IP address and port pairs ) for a client connection. Please refer to the following WebSphere MQ topic for more details:
- Authorization for commands :
The guidance provided in the WebSphere Message Broker Information Center topics "mqsiaddbrokerinstance" and "mqsiremovebrokerinstance" is incorrect.
In both these topics, the paragraph beginning "On all Windows platforms" should read as follows:
"On all Windows platforms you must install WebSphere MQ on a domain server, and create a user who is a member of the global group domain mqm to own the WebSphere MQ resources. For details see:
Make this user the owner of the shared queue manager and log files. The sid of the user who owns the queue manager and log file is then the same as the sid of the user that runs instances of the broker. "
Topics in the WebSphere MQSeries Information Center that relate to configuring a multi-instance message broker :
Take the following points into consideration when setting up the multi-instance queue manager for a multi-instance broker to run on it.
In a Windows environment :
- When configuring a multi-instance queue manager, the userid creating the queue manager must be part of the domain mqm group. For more details please refer to the following topics in the WebSphere MQSeries Information Center:
- The machines hosting the multi-instance queue manger and queue manager instances need to be Windows domain controllers.
- WebSphere MQSeries APAR IC64521 resolves a problem when the endmqm command is used to stop an active instance of the queue manager, and thereby in turn the standby instance too, some queue manager processes do not stop cleanly on the standby instance, so you need to stop them manually.
Original publication date