3.2.x to 3.3.x Migration Guide

This is a major HiveMQ upgrade. HiveMQ 3.3 is a drop in replacement for HiveMQ 3.2.x

No manual steps are required for upgrading from HiveMQ 3.2 to HiveMQ 3.3.

HiveMQ Upgrade

  • Create a backup of the entire HiveMQ installation folder

  • Install HiveMQ 3.3 as described in the HiveMQ Installation Guide

  • Migrate the configuration file contents of your old HiveMQ installation

  • To migrate the persistent data, copy all contents in the data folder from your backup to the new HiveMQ 3.3 data folder. On first start HiveMQ 3.3 will migrate the persistent data from your previous installation into its new persistent storage.

Configuration File Upgrade

HiveMQ 3.3 introduces some changes to the configuration file for:

Persistent Data Migration

HiveMQ 3.3 automatically migrates all data in your data folder from previous versions to updated file storage formats.

To allow HiveMQ to migrate the persistent data from previous versions you have to copy the contents of your data folder from the previous installation to the data folder of the new installation.

Linux example
cp -r /opt/hivemq-3.2.7/data/* /opt/hivemq-3.3.0/data/

On the first start up HiveMQ 3.3 will automatically migrate the persistent data from your previous installation into its new persistent storage.

Cluster Upgrade

Rolling upgrades are supported and it’s possible to run HiveMQ version 3.2 and version 3.3 simultaneously in the same cluster. When all nodes are upgraded to the new version, all new cluster features are enabled by default by the HiveMQ cluster. No manual intervention is needed.

Please follow the instructions in our user guide to ensure a seamless and successful rolling upgrade.

Please see the HiveMQ Clustering Documentation for more information.

Web UI

HiveMQ 3.3 has a built-in Web UI for advanced analysis and administrative tasks.

The Web UI listens on localhost and port 8080.

If you need to access the Web UI from another machine, make sure to configure the Web UI to listen on a public network interface and configure your firewall rules to allow incoming TCP traffic on port 8080.

Please see the HiveMQ Web UI Documentation for more information.

When using a load balancer like HAProxy, nginx or NetScaler for managing traffic to HiveMQ ensure that HTTP load balancing for access to the Web UI with sticky-sessions (also known as session affinity) is configured.

Plugin System Upgrade

The plugin system has an improved isolation strategy.

The sharing of state through objects or logic through classes across plugin boundaries is now prohibited.

Cross plugin object or class injection is actively prevented by HiveMQ to ensure that conflicting dependencies do not influence other plugins. The plugin system now provides each plugin with its own completely separate injector.

Existing plugins are compatible with HiveMQ 3.3 without changes.

Upgrading your plugins

In order to upgrade your plugin, execute the following steps:

  • update your pom.xml

  • remove code depending on shared objects or classes across plugins

Adapt your pom.xml file

Change your HiveMQ SPI version to 3.3.0 in your pom.xml file

<dependency>
    <groupId>com.hivemq</groupId>
    <artifactId>hivemq-spi</artifactId>
    <version>3.3.0</version>
</dependency>