Message Queue 4.1 is generally compatible with Message Queue Versions 3.6 and 3.7. However, changes have been made in broker properties, administered objects, persistence schemas, file locations, and administration tools that can affect migration from the earlier versions to Version 4.1.
The Message Queue 4.1 Installer does not remove or overwrite the Message Queue 3.6 or 3.7 IMQ_VARHOME directory. This directory contains configuration and security-related files (see Broker Compatibility). Most of this data is compatible with Message Queue 4.1, and can be preserved using the instructions in the following sections.
Compatibility issues that you may need to address when migrating from Message Queue 3.6 or 3.7 to Message Queue 4.1 include the following:
A Message Queue 4.1 message broker will interoperate with one from Versions 3.0.x, 3.5, 3.6, or 3.7, and is able to migrate data from Versions 3.6 or 3.7. However, some changes have been made in broker properties and the persistent store schema. The degree of compatibility depends on the earlier Message Queue version from which you are upgrading:
Message Queue 3.7 data is fully compatible with Message Queue 4.1 and requires no migration.
Message Queue 3.6 data is generally compatible with Message Queue 4.1 and requires no migration.
Data from Message Queue 3.5 must be migrated by upgrading to Message Queue 3.6 or later before installing Message Queue 4.1.
When upgrading from Message Queue 3.6 or 3.7 to Message Queue 4.1, you can choose either of two approaches to handling the older versions’ instance configuration (config.properties) files:
Use the older config.properties files directly.
Copy the files to another location and consult the property settings they contain when you configure Message Queue 4.1 brokers.
Any persistent Message Queue 3.6 or 3.7 data (messages, destinations, and durable subscriptions) is automatically converted to Message Queue 4.1 data when starting up a Message Queue 4.1 broker for the first time. For example, existing destinations will be converted to Message Queue 4.1 destinations, preserving existing attributes and using default values for new attributes.
For Message Queue 3.6, the automatic upgrade leaves the original data intact in its original location. You can delete this data in either of the following ways:
Use the Broker utility’s -upgrade-store-nobackup option when starting up the Message Queue 4.1 broker for the first time:
imqbrokerd -upgrade-store-nobackup
Manually delete the old file-based persistent data store, located at
…/instances/instanceName/fs350
If you mix Message Queue 3.5, 3.6, or 3.7 brokers together with Message Queue 4.1 brokers in a cluster, the master broker must be of the oldest version in the cluster, and the cluster will run as a cluster of that oldest version.
Message Queue 4.1 message brokers and Java clients (applications and components) are two-way compatible with those from Message Queue 3.6 or 3.7: that is, a Message Queue 4.1 broker will support a Message Queue 3.6 or 3.7 Java client, and a Message Queue 4.1 Java client can connect to a Message Queue 3.6 or 3.7 broker. Expanded Message Queue 4.1 capabilities are unavailable in such cases, however.
Message Queue 4.1 administered objects have been enhanced with new attributes, and some attributes have been renamed from earlier versions. Although you can continue to use object stores and administered objects created in Message Queue 3.6 or 3.7, it is best to upgrade your administered objects after installing Message Queue 4.1.
When performing an update operation, the Administration Console (imqadmin) and the Object Manager utility (imqobjmgr) will automatically convert administered objects from Versions 3.6 and 3.7 to Message Queue 4.1 form, using default values for the new attributes. The Message Queue 4.1 client runtime will also look up and instantiate administered objects from those earlier versions and convert them for use by Message Queue 4.1 clients, but this will not convert the objects permanently in the object store in which they reside.
Existing Message Queue clients that directly instantiate administered objects are compatible with Message Queue 4.1. For attributes that have been renamed in Message Queue 4.1, the old names will still work. (Recompiling the client with Message Queue 4.1 will show which attributes have been renamed.) However, clients will need to be rewritten if they are to use any of the new administered object attributes. Similarly, scripts that start Java clients and set administered object attribute values using command line options are compatible with Message Queue 4.1,but must be rewritten in order to use the new attributes.
Because of the addition of new commands and new administrative capabilities, the Message Queue 4.1 administration tools (Administration Console and command line utilities) will work only with Message Queue 4.1 brokers. All commands and command options from earlier Message Queue versions remain supported, however.