Upgrade
Upgrade from Release 12.0.0 or later
To upgrade a SwiftMQ Router follow these steps:
Install the new SwiftMQ Router (new release).
Stop the old SwiftMQ Router (old release).
Copy the complete
data
directory from the old to the new release.Start the new SwiftMQ Router (new release).
During startup, the new SwiftMQ Router will automatically convert the routerconfig.xml
and apply changes, if necessary. To accomplish this, it is important that you always use the router
script of the new release!
SwiftMQ clients will transparently reconnect to the new SwiftMQ Router. If necessary, update them with the new swiftmq.jar
when you have time.
Upgrade from Releases prior to 12.0.0
Create a preconfig file
You first need to create a preconfig file that converts the default router configuration into your configuration.
Create a file upgrade-to-12.xml
within directory preconfig
and add the following content. It misses those Swiftlets that have path
attributes like sys$store
, sys$log
, sys$deploy
. For this we use the default configuration.
<router name="<your-router-name>">
<swiftlet name="sys$authentication">
<groups _op="replace">
<!-- add your groups here -->
</groups>
<resource-limit-groups _op="replace">
<!-- add your resource-limit-groups here -->
</resource-limit-groups>
<users _op="replace">
<!-- add your users here -->
</users>
</swiftlet>
<swiftlet name="sys$amqp">
<listeners _op="replace">
<!-- add your AMQP listeners here -->
</listeners>
</swiftlet>
<swiftlet name="sys$mqtt">
<listeners _op="replace">
<!-- add your MQTT listeners here -->
</listeners>
</swiftlet>
<swiftlet name="sys$jms">
<listeners _op="replace">
<!-- add your JMS listeners here -->
</listeners>
</swiftlet>
<swiftlet name="sys$queuemanager">
<queues _op="replace">
<!-- add your queues here -->
</queues>
</swiftlet>
<swiftlet name="sys$topicmanager">
<slow-subscriber-conditions _op="replace">
<!-- add your slow-subscriber-conditions here -->
</slow-subscriber-conditions>
<static-remote-router-subscriptions _op="replace">
<!-- add your static-remote-router-subscriptions here -->
</static-remote-router-subscriptions>
<topics _op="replace">
<!-- add your topics here -->
</topics>
</swiftlet>
<swiftlet name="sys$routing">
<connectors _op="replace">
<!-- add your connectors here -->
</connectors>
<listeners _op="replace">
<!-- add your listeners here -->
</listeners>
<static-routes _op="replace">
<!-- add your static-routes here -->
</static-routes>
</swiftlet>
<swiftlet name="sys$scheduler">
<calendars _op="replace">
<!-- add your calendars here -->
</calendars>
<schedules _op="replace">
<!-- add your schedules here -->
</schedules>
</swiftlet>
</router>
Then replace all <!-- add your xxx here -->
with the entries from your old routerconfig.xml
. If you have any changes in an <swiftlet>
element, you can just add that attribute like:
<swiftlet name="sys$authentication" authentication-enabled="true">
If you have Extension Swiftlets, add the configuration to the preconfig.
Perform the Upgrade
Install the new SwiftMQ Router (new release).
Stop the old SwiftMQ Router (old release).
Copy the
store/<routername>
directory from the old release todata/store
of the new release.If you use Extension Swiftlets:
Copy the Extension Swiftlets from
optional-swiftlets/extension
of the new release todata/deploy
of the new release. This ensures that you will use the new release of the Extension Swiftlets.Start the SwiftMQ Router (new release) by calling the
router
script without parameters.Wait until all Extension Swiftlets are started.
Stop the SwiftMQ Router (new release).
Start the SwiftMQ Router (new release) with:
./router ../preconfig/upgrade-to-12.xml
During startup, the new SwiftMQ Router will automatically convert the routerconfig.xml
and apply the changes from your preconfig file.
SwiftMQ clients will transparently reconnect to the new SwiftMQ Router. If necessary, update them with the new swiftmq.jar
when you have time.