How to Upgrade a SwiftMQ Universal Router and JMS Clients

SwiftMQ's versioned protocols ensure downward compatibility of a SwiftMQ Universal Router.

  • A SwiftMQ Universal Router supports older protocol versions as well so older versioned JMS clients can connect to a SwiftMQ Universal Router with a higher version
  • JMS clients with a swiftmq.jar from a higher version CANNOT connect to a SwiftMQ Universal Router with an older version, because they always use the most recent protocol version.

Therefore it is very important to respect the following order during an upgrade process:

  • Install the new release (unpack the distribution) on the machine where the SwiftMQ Universal Router runs.
  • Shutdown the SwiftMQ Universal Router (old release).
  • Copy the routerconfig.xml of the old release to the new release (config/routerX).
  • Copy the store directory of the old release to the new release (store/routerX).
  • Start the SwiftMQ Universal Router (new release). It will automatically convert the routerconfig.xml to the new release, if necessary.

Downtime can be minimized by enabling transparent reconnect for JMS clients (see remote JMS clients, configuration of connection factories; JNDI documentation).

JMS clients [re-]connect with their current protocol version to the new SwiftMQ Universal Router. Upgrade of JMS clients can be done when they are shutdown anyway. Procedure as follows:

  • Shutdown the JMS client.
  • Copy swiftmq.jar from the new SwiftMQ distribution to the clients classpath.
  • Start the JMS client.

Please read the release notes of the SwiftMQ distribution for further upgrade and compatibility notes.