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>
XML

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">
XML

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 to data/store of the new release.

  • If you use Extension Swiftlets:

    • Copy all deployments of Extension Swiftlets from deploy/<routername> to data/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.