How to Upgrade a SwiftMQ Router and JMS Clients
SwiftMQ's versioned protocols ensure downward compatibility of a SwiftMQ Router.
-
A SwiftMQ Router supports older protocol versions as well so older versioned JMS clients can connect to a SwiftMQ Router with a higher version
-
JMS clients with a swiftmq.jar from a higher version CANNOT connect to a SwiftMQ 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 Router runs.
-
Shutdown the SwiftMQ 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 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 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.