Chapter 2. Apache ActiveMQ Issues
Abstract
JBoss A-MQ 6.1.0.redhat-379 uses Apache ActiveMQ 5.9.0. Since the last release, Apache ActiveMQ has been upgraded from version 5.8.0 to version 5.9.0. This introduces a few migration issues.
2.1. Key Migration Issues
ActiveMQ Web console no longer supported
The Apache ActiveMQ Web console is no longer supported in JBoss A-MQ 6.1 and JBoss Fuse 6.1. It is recommended that you use the Fuse Management Console instead (installed by default in the container). You can access the new Hawtio-based Fuse Management Console by navigating to the
http://localhost:8181
URL in your browser.
Migrating a JDBC store with XA transactions
If you are using the JDBC persistence adapter with XA transactions enabled, you should note that the database schema for the JDBC store has changed, going from version 5.8.0 to version 5.9.0. If you need to migrate the contents of an existing JDBC store to ActiveMQ 5.9.0, you must perform the following steps:
- Note that this change to the database schema only affects JDBC stores that used with XA transactions. If your existing broker does not use XA transactions, there is no need to perform these migration steps.
- If the old broker (version 5.8.0) is currently running, make sure no transactions are in flight before attempting to stop the broker.
- Stop the broker.
- Alter the database tables by executing database commands similar to the following (you will probably need to adapt these commands to suit the syntax of your particular database):
ALTER TABLE ACTIVEMQ_MSGS ALTER COLUMN XID VARCHAR(250) CREATE INDEX ACTIVEMQ_MSGS_XIDX ON ACTIVEMQ_MSGS (XID) ALTER TABLE ACTIVEMQ_ACKS ALTER COLUMN XID VARCHAR(250) CREATE INDEX ACTIVEMQ_ACKS_XIDX ON ACTIVEMQ_ACKS (XID)
- Configure the new broker (version 5.9.0) to use the JDBC store.
- Start the new broker.
fabric:mq-create command has different default profile name
In JBoss A-MQ version 6.0, the
fabric:mq-create
command would create a new profile with the same name as the broker, by default. In JBoss A-MQ 6.1, however, this behaviour has changed, so that the default profile name is mq-broker-Group.BrokerName
, where Group
is the broker group and BrokerName
is the name of the new broker.
If you want to get the same behaviour as in version 6.0, you can use the
--profile
option to specify the new profile name explicitly. For example, to create a new JBoss A-MQ broker, where both the broker and the profile are named brokerx
, enter a command like the following:
fabric:mq-create --profile brokerx --create-container broker --replicas 1 --networks us-west brokerx
fabric:mq-create command requires keytool utility
The
fabric:mq-create
command requires that the Java keytool
command-line utility is provided on your PATH. If necessary, you can work around this requirement by specifying the --no-ssl
option (which disables support for the SSL/TLS protocol).