Protocol Compatibility
SwiftMQ's versioned protocols ensure the 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.jarfrom a higher version CAN NOT connect to a SwiftMQ Router with an older version because they always use the most recent protocol version.
Upgrade from a tar.gz/zip
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.
-
Shut down the SwiftMQ Router (old release).
-
Copy the
data/directory of the old release to the new release. -
Start the SwiftMQ Router (new release).
Upgrade SwiftMQ Router on Docker:
-
Pull the release.
-
Restart the docker container.
JMS Clients
Downtime can be minimized by enabling transparent reconnect for JMS clients (see remote JMS clients, the 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 shut down anyway. Procedure is as follows:
-
Shutdown the JMS client.
-
Copy
swiftmq.jarfrom the new SwiftMQ distribution to the client's classpath. -
Start the JMS client.
Check the Release Notes
Please read the release notes of the SwiftMQ distribution for further upgrade and compatibility notes.