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 this content:
<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 all deployments of Extension Swiftlets from
deploy/<routername>
todata/deploy
of the new release.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.