AMQ Broker 7.0 Release Notes
Release Notes for AMQ Broker
Chapter 1. Features
The features added in this release, and that were not in previous releases of the AMQ broker, are outlined below.
- Brokers can be fully redundant, allowing a backup broker to take over connections from a primary broker in the event of a failure. Optionally, a shared volume can be configured between the primary and backup broker.
- Delivery guarantee
- Some messages that a developer sends from his application require a guarantee of delivery guaranteeing that messages get from the application sending them to the application consuming and processing them. If a network link goes down or the broker experiences a power outage while the message is in transit the message broker must resend undelivered messages once it returns online or the network connection is restored.
- Zero persistence
- Brokers can be configured to not persist any messages for scenarios in which no guarantee is required, but high performance is.
- Basic authentication
- Brokers can authenticate clients using basic username and password credentials.
- Role-based authentication
- Brokers can authenticate and authorize clients to specific queues or message addresses based on roles assigned to the client.
- SSL-encrypted connections
- Connections between clients and broker or a broker and another broker are secure and utilize SSL to encrypt the connections.
- Certificate-based authentication
- Brokers can authenticate a client connection or a connection from another broker using certificates.
- Dead connection detection
- Brokers can detect dead connections when a client has exceeded specific lifespan that can be set either on the client’s connection factory or globally on the server.
- Slow consumer detection
- Brokers can detect slow consumers and disconnect them from the server when this feature is enabled.
Refer to the ActiveMQ Artemis project for additional information: http://activemq.apache.org/artemis/index.html
Chapter 2. Enhancements
ENTMQBR-512 - Console should display message body
As of this release, the message body is displayed when messages are browsed by using the AMQ Console.
ENTMQBR-327 - Design and implement an addressing system that can be used cross-protocol
Previously, there were issues observed when sending/receiving messages between a core JMS client and clients using other protocols. This was because the core JMS client used prefixes for destinations (namely, jms.topic. and jms.queue) that were hidden. The new addressing model in AMQ 7 enables customers to configure destinations that independent of JMS conventions.
ENTMQBR-312 - Support 'anonymous' senders
Previously, the broker did not support AMQP clients creating sender links with a null target address and then identifying the destination of each message by using its 'to' field.
For the AMQP JMS client, this meant that any 'anonymous' MessageProducers (those created without a Destination) needed to open and close a sending link for each message that was sent. Similarly, the same scenario occurred for every message sent by using JmsProducer instances, as these were also all 'anonymous'. Due to both of these scenarios, performance was negatively impacted. Support for 'anonymous' senders is added in this release.
Chapter 3. Resolved Issues
ENTMQBR-785 - Changing a queue attribute can result in lost messages
Previously, using the
artemis queue updatecommand to modify queue attributes resulted in messages being lost or removed when the broker was restarted. This issue occurred because the ID of the queue was not preserved when the broker was restarted. This issue is resolved in the 7.0.3 release.
ENTMQBR-782 - Queue JMX properties not matching up
When running a version of AMQ Broker earlier than 7.0.3, it was possible under high load that the queue JMX attributes
Messages added, and
Message acknowledgedcould become out of sync. As a result, sometimes in AMQ Console, higher values for
Message acknowledgedwere displayed, while
Message countwas 0 and all messages were correctly consumed.
This issue is resolved in the 7.0.3 release. For more information, see Solution #3244211.
ENTMQBR-610 - Feature Last-Value Queue is not working with AMQP protocol
The Last Value Queue feature did not work with the AMQP protocol. This issue is resolved in the 7.0.3 release.
ENTMQBR-643 - Unable to log in to Hawtio console when the broker runs as a Windows service
When installing and running the broker as a Windows service, users were unable to log in to the management console. This issue is resolved in the 7.0.2 release.
ENTMQBR-506 - Hawtio console stops working after backup node goes from live to backup.
In a previous Beta release, a bug that prevented the HawtIO console from being usable on a back-up server existed. The issue occurred only if that server had been live before being relegated to a back-up. This issue is resolved in the 7.0.0 release.
ENTMQBR-498 - slow consumer: consumer is killed even though it receives at a rate higher than the threshold
In a previous Beta release, brokers using the AMQP
slow-consumer-*parameters could incorrectly close consumers that met the configured thresholds after the first scan interval. The issue is resolved in the 7.0.0 release.
ENTMQBR-77 - Expand error tree list
In a previous Beta release, attempting to 'expand all nodes' or the reverse in the left hand tree of the console produced no result. Users had to step through the tree manually. This issue is resolved in the 7.0.0 release.
For additional details about issues resolved in specific releases, see the following articles:
Chapter 4. Known Issues
ENTMQBR-897 - OpenWire client/protocol issues with special characters in destination name
Some special characters are currently unsupported in queue and address names with the OpenWire protocol, specifically:
, # >
In addition, address and queue names cannot contain empty spaces.
ENTMQBR-884 - after connecting to hawtio "Artemis" panel is not displayed
After connecting to AMQ Console, the Artemis panel is not displayed.
To work around this issue, replace the value
ENTMQBR-827 - AMQ Broker 7.0 permits cross-origin access to AMQ Console
Currently, AMQ Broker permits cross-origin access to AMQ Console. To restrict access to AMQ Console, you must create an access management file that defines the permitted origin URLs, and then add a system property to apply the restrictions.
BROKER_INSTANCE_DIR/etc/directory, create a new
<cors> ... </cors>
<cors>section, add an
<allow-origins>section for each origin URL that you want to allow. For example:
<cors> <!-- Allow cross origin access from www.jolokia.org ... --> <allow-origin>http://www.jolokia.org</allow-origin> <!-- ... and all servers from jmx4perl.org with any protocol --> <allow-origin>*://*.jmx4perl.org</allow-origin> <!-- optionally allow access to web console from localhost --> <allow-origin>http://localhost:8181/*</allow-origin> <!-- Check for the proper origin on the server side, too --> <strict-checking/> </cors>
- Add a system property to apply the security restrictions you defined in the access management file:
$ export JAVA_ARGS="-Djolokia.policyLocation=file:BROKER_INSTANCE_DIR/etc/jolokia-access.xml"
- In the
ENTMQBR-803 - AMQ 7 ships with an example that is not supported
AMQ Broker 7.0 ships with an example that is not supported. The
artemis-ra-rarexample is not supported because AMQ 7 does not currently include a RAR archive.
ENTMQBR-655 - [AMQP] Unable to send message when
The security feature,
populate-validated-user, is not supported for messages produced using the AMQP protocol, as it would result in a violation of the AMQP specification due to the user-id being part of the immutable bare message.
If, however, this feature is enabled, the broker will currently fail to enqueue AMQP messages sent without a message Application Properties section, causing the message to be rejected.
ENTMQBR-652 - List of known
This version of
amq-jon-pluginhas known issues with broker and queue MBeans.
Issues with the broker MBean:
Closing a connection throws
Adding address settings throws
getConnectorServices()operation cannot be found
listConsumersAsJSON()operation cannot be found
getDivertNames()operation cannot be found
Listing network topology throws
- Remove address settings has wrong parameter name
Issues with the queue MBean:
argument type mismatchexception
IllegalArgumentExceptionwith error message
argument type mismatch
IllegalArgumentExceptionwith error message
argument type mismatch
removeMessages()throws exception with error
Can’t find operation removeMessage with 2 arguments
argument type mismatch
- Closing a connection throws
ENTMQBR-648 - JMS OpenWire client is unable to send messages to queue with defined
purgeOnNoConsumeror queue filter
Using AMQ6 JMS client to send messages to an address with an appropriately configured queue with
purgeOnNoConsumer=truefails if the queue has no consumers. It is recommended that users do not use the
purgeOnNoConsumerfunctionality when used with JMS clients.
ENTMQBR-636 - Journal breaks, causing
JavaNullPointerExceptionunder high load
Issues can occur doing IO when the broker is under high load and if certain JVM tunings have not been set correctly. To avoid these issues, ensure that you allocate enough memory and heap space for the broker. See the section titled "Tuning the VM" in the Performance Tuning chapter of the ActiveMQ Artemis documentation at https://activemq.apache.org/artemis/docs/latest/perf-tuning.html.
ENTMQBR-617 - Cert based authentication does not work with AMQP and OpenWire clients
Authentication based on SSL certificates is not supported for AMQP and OpenWire clients.
ENTMQBR-599 - Define truststore and keystore by artemis CLI
--ssl-trust-passwordparameters from the command-line interface when creating an instance of the broker, do not work. To work around this problem, set the corresponding properties manually in the
ENTMQBR-569 - Conversion of IDs from OpenWire to AMQP results in sending IDs as binary
When communicating cross-protocol from an A-MQ 6 OpenWire client to an AMQP client, additional information is encoded in the application message properties. This is benign information used internally by the broker and can be ignored.
ENTMQBR-533 - Large message support is documented, but supported only with the Core protocol
Although the product guide titled Using AMQ Broker contains a chapter about working with large messages, this feature is not yet supported for all protocols. Specifically, large messages are supported only with the core protocol at this time.
ENTMQBR-520 - Receiving from address named same as queue bound to other address should not be allowed
A queue with a name that matches any address should only ever be assigned to the matching address. Creating a queue with the same name as an existing address, but bound to an address with a different name, is an invalid configuration. The result of doing so can result in incorrect messages being routed to the queue.
ENTMQBR-463 - Attributes in clustering settings has order restrictions, would be nice to either have better error message or simply ignore the order
Currently the sequence of the elements in the cluster connection configuration has to be in a specific order. The workaround is to adhere to the order in the configuration schema.
ENTMQBR-17 - AMQ222117: unable to start cluster connection
In some environments that support IPv6, a broker cluster may not form properly due to a
SocketExceptionas indicated by a message "Can’t assign requested address." To work around this issue, set the
java.net.preferIPv4Stacksystem property to
Revised on 2017-12-08 15:17:08 EST