Failover or switchover

A standby queue manager instance takes over from the active instance either on request (switchover), or when the active instance fails (failover).

  • Switchover takes place when a standby instance starts in response to the endmqm -s command being issued to the active queue manager instance. You can specify the endmqm parameters -c, -i or -p to control how abruptly the queue manager is stopped.
    Note: Switchover only takes place if a standby queue manager instance is already started. The endmqm  -s command releases the active queue manager lock and permits switchover: it does not start a standby queue manager instance.
  • Failover occurs when the lock on queue manager data held by the active instance is released because the instance appeared to stop unexpectedly (that is, without an endmqm command being issued).

When the standby instance takes over as the active instance, it writes a message to the queue manager error log.

Reconnectable clients are automatically reconnected when a queue manager fails or switches over. You do not need to include the -r flag on the endmqm command to request client reconnection. Automatic client reconnect is not supported by WebSphere® MQ classes for Java.

If you find that you cannot restart a failed instance, even though failover has occurred and the standby instance has become active, check that applications connected locally to the failed instance have not disconnected from the failed instance. Locally connected applications end or disconnect from a failed queue manager instance to ensure that the failed instance can be restarted. Any locally connected applications using shared bindings (which is the default setting) which hold on to a connection to a failed instance act to prevent the instance from being restarted. If it is not possible to end the locally connected applications, or ensure that they disconnect when the local queue manager instance fails, consider using isolated bindings. Locally connected applications using isolated bindings do not prevent the local queue manager instance from being restarted, even if they do not disconnect.