Chapter 3. Enhancements
ENTMQBR-428 - Implement SASL external
AMQ Broker can now validate AMQP connections by using the identity of the connection’s SSL certificate rather than using traditional credentials such as a username and password. This benefits deployments where secure access is managed through SSL certificates.
ENTMQBR-831 - Broker should respond to changes in
logging.properties
at run-timeAMQ Broker now retains the changes that you make to the
logging.properties
configuration file without restarting the broker.
ENTMQBR-893 - Masking of password does not work with
login.config
You can now mask passwords in the JAAS configuration file
login.config
. Previously, password masking was not supported forlogin.config
, which meant that the passwords in the file were stored in plain text.
ENTMQBR-908 - Support masked passwords in
bootstrap.xml
You can now mask passwords in the
broker.xml
configuration file. Previously, password masking was not supported forbroker.xml
, which meant that the passwords in the file were stored in plain text.
ENTMQBR-935 - Should have Ability to split
broker.xml
into multiple files and import intobroker.xml
AMQ Broker now supports XML inclusions in the
broker.xml
configuration file, which enables you to breakbroker.xml
into separate files. For example, if you have multiple brokers that share the same set of addresses and address settings, you can define the addresses in a separate file, and then include that file in each broker’sbroker.xml
configuration file.
ENTMQBR-945 - Non-persistent messages lost in non-failure scenarios when authorization fails, because delivery mode defaults to asynchronous
AMQ Broker now enables you to configure notifications for loss of non-persistent messages by clients. Obvious failure conditions such as broker stoppage or disconnection of a storage provider can cause this type of loss. However, the default delivery mode for non-persistent messages, which is asynchronous, can also cause message loss in situations such as failed authorization or use of a non-configured queue. You can now use the CompletionListener API to configure notifications for such message-loss events.
ENTMQBR-1056 - Add Support for DB2 v11.latest
The 7.2 version of AMQ Broker adds support for the database DB2, version 11.
ENTMQBR-1063 - Improve DB2 compatibility
AMQ Broker now supports IBM DB2 versions 10.5 and 11.1 for message storage. The following enhancements have been made:
-
AUTO_INCREMENT
is now supported on DB2. - You can now configure the maximum allowed time difference between the system time and DB2 time. This makes high availability more reliable, because the broker will be shut down automatically if the time difference exceeds the configured value.
- Database tables can now be created externally. Concurrent table creation checking has been improved.
-
ENTMQBR-1271 - Allow custom etc and data directories to be used
AMQ Broker 7.2 provides greater flexibility in storing a broker instance’s configuration files and data. Previously, a broker instance’s configuration files and data could only be stored in the
etc/
anddata/
directories within the broker instance’s directory. Now, you can store these files in any custom directory, including locations outside of the broker instance’s directory.
ENTMQBR-1282 - Support for exclusive consumers
AMQ Broker now supports exclusive queues. An exclusive queue routes messages to a single consumer even if multiple consumers are present. In addition, the consumer that receives the messages will receive them with guaranteed message ordering so that they can be consumed in the same order in which they were produced.
ENTMQBR-1308 - Create an
ActiveMQServerPlugin
for logging various broker eventsStarting in AMQ Broker 7.2, logging has been improved through a new
LoggingActiveMQServerPlugin
. By using this plugin, you can configure highly-informative logging about many different types of events that would otherwise only be available through debug logs.
ENTMQBR-1367 - Support SSL Certificate Revocation List
Starting in AMQ Broker 7.2, you can now specify an SSL certificate revocation list on an acceptor’s URL. If you are using SSL for client communication, this means that you can specify a list of certificates that have been revoked by the issuing certificate authority (CA) before their scheduled expiration date and should no longer be trusted.
ENTMQBR-1370 - Add
user
attribute to queue in XML/JMXWhen a queue is auto-created it is assigned the user name of the connecting client. This user name is now exposed as metadata on the queue and also in JMX and in the AMQ Console. You can also now configure a user on a pre-defined queue by modifying the
broker.xml
file. This enhancement makes it possible to understand and track with whom and how queues originated.
ENTMQBR-1385 - Add support for virtual topic consumers
AMQ Broker now supports migrating existing OpenWire clients that use virtual topic subscriptions (an ActiveMQ 5.x-only feature) without requiring any changes to the client. This functionality maps the virtual topic concept to an Artemis fully qualified queue name (FQQN). By using a FQQN, you can create and access a standard Artemis topic subscriber queue.
ENTMQBR-1403 - Support referrals in LDAP login module
AMQ Broker now supports LDAP referrals. If you use LDAP referrals in your LDAP infrastructure, you can now configure the broker to use these referrals to authenticate and authorize users. You can use the broker’s JAAS LDAP login module to control how the broker handles LDAP referrals.
ENTMQBR-1783 - Add a user and role manager (create/delete/update/list) JMX endpoint in AMQ 7
AMQ Broker 7.3 supports adding, removing, and updating user information by using the management API when you are using the
PropertiesLoginModule
class. Previously, you could perform these actions only by using the command-line interface.
ENTMQBR-1918 - [AMQ7, critical-analyzer] add extra detail to output for analyzing cause of timeout
The logs for the Critical Analyzer now provide extra information about a slow-performing broker when you enable tracing on the package named
org.apache.activemq.artemis.utils.critical
.
ENTMQBR-1932 - Support AMQ 7 on Java 11
AMQ Broker 7.4 adds runtime support for JDK 11 Java Virtual Machines (JVMs).
ENTMQBR-1974 - Support masked passwords in
management.xml
AMQ Broker now supports masking the values of the
key-store-password
andtrust-store-password
settings in themanagement.xml
file. These values are used when you secure remote JMX access with SSL.
ENTMQBR-2020 - Track routed and unrouted messages to an address
Address metrics now include information about how many messages the address has received. This number is divided between routed and unrouted messages. Prior to this enhancement, it was impossible to determine if an address had received a message which was not routed, for example, in the case of a JMS topic with no subscriptions.
ENTMQBR-2025 - Allow users to define custom last value queue keys
AMQ Broker 7.4 supports last value queues with custom last value key names. Previously, last value queues used only the default last value key name of
_AMQ_LVQ_NAME
.
ENTMQBR-2139 - Support MSSQL for database message persistence
AMQ Broker 7.4 supports Microsoft SQL Server 2016 for JDBC-based persistence.
ENTMQBR-2173 - Support a Prometheus plugin or agent
AMQ Broker 7.4 includes a pre-configured plugin for Prometheus. Prometheus is software built to monitor large, scalable systems and store historical runtime data over an extended time period. The AMQ Broker Prometheus plugin exports broker runtime metrics to Prometheus format, enabling you to use Prometheus itself to visualize and run queries on the data.
ENTMQBR-2299 - An option to reject messages without a JMSXUserID
Starting in AMQ Broker 7.4, you can track and log the origins of messages using the
_AMQ_VALIDATED_USER
message key. You can also configure the broker to reject a message that does not have a user name already populated by the client when it sends the message.
ENTMQBR-2345 - Enhancements to the databaseStoreType
In AMQ Broker 7.4, you can add an encrypted user name and password when configuring a
database-store
element in yourbroker.xml
configuration file.