Version 7.1
Copyright © 2012 Red Hat, Inc. and/or its affiliates.
Updated: 07 Jan 2014
Table of Contents
This section summarizes the issues you need to consider when migrating from Fuse Message Broker 5.5 to Fuse MQ Enterprise 7.1.
Fuse MQ Enterprise 7.1 has upgraded the following dependencies:
Jetty library is upgraded to version 7.6.7.
To migrate an existing broker to Fuse MQ Enterprise 7.1, it is recommended that you follow these steps:
To use your existing activemq.xml file with the new MQ console, edit the
settings in the following file:
MQInstallDir/etc/org.fusesource.mq.fabric.server-default.cfgBy default, the preceding configuration file contains the following property settings:
broker-name=default
openwire-port=${activemq.port}
standalone=true
data=${karaf.data}/activemq
config=${karaf.base}/etc/activemq.xmlThe broker-name and data properties are not important: they
define substitutable properties that are used by the default activemq.xml
file (located in ).
The important properties are as follows:MQInstallDir/etc/activemq.xml
configSet this property to the absolute pathname of your existing
activemq.xml file. (If you are working on a Windows platform,
remember to use the forward slash character, /, for the path separater,
as is customary in Java property files.)
standaloneThis property must be set to true. Do not
change it.
openwire-portOverrides the Openwire IP port value specified in your existing
activemq.xml file. Delete this property setting, if you want to keep
the port value specified in your activemq.xml file.
Ensure that any directories referenced in your existing activemq.xml file
are specified as absolute pathnames.
To migrate KahaDB data files from earlier Fuse MQ Enterprise versions, please observe the following points:
Always make backup copies of your existing KahaDB data files, before upgrading the broker.
Upgrading from 5.4.x to 5.7—when you start the 5.7 broker instance for the first time, the KahaDB auto-upgrade feature automatically upgrades the KahaDB data files.
Upgrading from 5.3.x to 5.7—due to a recent change in the format of the
KahaDB index file, db.data, the KahaDB auto-upgrade feature cannot
upgrade 5.3 index files. To upgrade from 5.3, therefore, delete the index and redo
files, db.data and db.redo, before starting the 5.7 broker.
Now, when you start the 5.7 broker, it recreates the index file as it starts up (if
your database is large, this could take a long time, for example 20 to 30
minutes).
Study the rest of this guide, to check whether there are any other issues that could affect your system.
If you are using Fuse HQ to monitor your systems:
See ???? for directions on installing JBoss Operational Network and the required plug-ins.
See Migrating from Fuse HQ to JBoss Operations Network for information about migrating alerts and other custom setting from Fuse HQ to JBoss Operational Network.
To start up the MQ console—which automatically launches your broker—enter the following command:
bin/fusemq
Since Fuse Message Broker/Apache ActiveMQ 5.4.0, the KahaDB message store is the default message store used by the persistence layer. The KahaDB message store supersedes both the AMQ message store and the original Kaha message store.
If no configuration is specified for the KahaDB message store, an instance with default settings is automatically created for you.
The KahaDB message store can be configured explicitly using the kahaDB
element inside the persistenceAdapter element, as follows:
<broker brokerName="broker" persistent="true" useShutdownHook="false"> ... <persistenceAdapter> <kahaDB directory="activemq-data"/> </persistenceAdapter> </broker>
For more details about the KahaDB message store, see Using the KahaDB Message Store in Configuring Broker Persistence.
The following classes are no longer available in Fuse MQ Enterprise 7.1:
org.apache.activemq.thread.Valve—the threading model has
been refactored to use the ThreadPoolUtils API.
org.apache.activemq.util.xstream.XStreamMessageTransformer—replaced
by org.apache.activemq.util.oxm.XStreamMessageTransformer.
org.apache.activemq.transport.http.HttpTransport
org.apache.activemq.transport.http.HttpsTransport
The following methods have been removed from Fuse MQ Enterprise 7.1:
org.apache.activemq.console.filter.AmqMessagesQueryFilter.createConnection(java.net.URI)
Use createConnection() instead, and pass the URL to the
ConnectionFactory when it is created.
org.apache.activemq.broker.TransportConnector.setBrokerName
Use the setBrokerService(BrokerService) method instead.
org.apache.activemq.command.ConsumerInfo.getSubcriptionName
Use the correctly spelled getSubscriptionName method instead.
org.apache.activemq.command.ConsumerInfo.setSubcriptionName
Use the correctly spelled setSubscriptionName method instead.
org.apache.activemq.transport.TransportFactory.bind(String, java.net.URI)
Use bind(BrokerService, java.net.URI) instead.
org.apache.activemq.transport.tcp.SslTransportFactory.setKeyAndTrustManagers
org.apache.activemq.xbean.XBeanBrokerService.setDestroyApplicationContextOnShutdown
org.apache.activemq.xbean.XBeanBrokerService.setDestroyApplicationContextOnStop
The following classes and interfaces are deprecated in Fuse MQ Enterprise 7.1:
org.apache.activemq.store.jdbc.DatabaseLocker
Use org.apache.activemq.broker.Locker instead.
org.apache.activemq.thread.DefaultThreadPools
Use the org.apache.activemq.thread.TaskRunnerFactory instead.
The following methods are deprecated in Fuse MQ Enterprise 7.1:
org.apache.activemq.broker.jmx.BrokerViewMBean.getOpenWireURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerViewMBean.getSslURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerViewMBean.getStompURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerViewMBean.getStompSslURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerView.getOpenWireURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerView.getSslURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerView.getStompURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.broker.jmx.BrokerView.getStompSslURL
Use BrokerViewMBean.getTransportConnectors() or
BrokerViewMBean.getTransportConnectorByType(String) instead.
org.apache.activemq.selector.SimpleCharStream.getColumn
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getDatabaseLocker
Use the LockableServiceSupport.getLocker() method instead.
org.apache.activemq.thread.DefaultThreadPools.getDefaultTaskRunnerFactory
org.apache.activemq.selector.SimpleCharStream.getLine
org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter.setDatabaseLockedWaitDelay(int)
Use Locker.setLockAcquireSleepInterval(long) instead.
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.setDatabaseLocker(Locker)
Use LockableServiceSupport.setLocker(org.apache.activemq.broker.Locker) instead.
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.setLockAcquireSleepInterval(long)
Use Locker.setLockAcquireSleepInterval(long) instead.
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.setUseDatabaseLock(boolean)
Use LockableServiceSupport.setUseLock(boolean) instead.
Apache ActiveMQ clients are compatible with later versions of the broker, as long as the client version and the broker version have the same major version number. For example, if you update an Apache ActiveMQ broker to version 5.5.1, it will be compatible with clients on version 5.4.2.
Fuse MQ Enterprise is compatible with clients built using the following:
Fuse MQ Enterprise 7.0 or later
Fuse Message Broker 5.0 or later
Apache ActiveMQ 5.0 or later
If your clients are built using older libraries, they will, at a minimum, need to be recompiled.
The major differences between Fuse HQ and JBoss Operations Network(JBoss ON) include:
The resource tree is flatter
JBoss ON server and agent installations are separate
Database support
JBoss ON has better automatic discovery
Different Java APIs
Different scripting languages
Regardless of the database you are currently using, JBoss ON will require you to create all new tables for the monitoring data as part of the server installation process.
JBoss ON supports the following databases:
| Database | Version |
|---|---|
| Oracle | 11g R2 RA 11g R2 11g R1 RAC 11g R1 10g R2 (deprecated) 10g R1 (deprecated) |
| PostgreSQL | 9.1.x 9.0.x 8.4.x 8.3.x |
To install JBoss ON, download the server from the Red Hat Customer Portal and follow the instructions for installing on your platform. See the Installation Guide.
JBoss ON agents and monitoring plug-ins are installed from the JBoss ON Web UI.
JBoss ON agents and servers are configured differently from Fuse HQ agents and servers. For details see the Configuring JBoss ON Servers and Agents.
JON scripting is different from Fuse HQ scripting. To update your scripts see the Writing JBoss ON Command-Line Scripts.
For more information see the JBoss ON Documentation.