AMQ Clients 2.5 Release Notes
Release Notes for Red Hat AMQ Clients
Chapter 1. Features
- AMQ .NET now supports .NET Core 2.1.
- File-based configuration is now available on Windows.
- AMQ JMS and AMQ Python now offer distributed tracing based on OpenTracing.
Distributed tracing in AMQ Clients is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/.
Chapter 2. Enhancements
2.1. AMQ C++, AMQ Python, AMQ Ruby
ENTMQCL-1358 - Use the system certificate authority by default
When SSL/TLS is enabled, the clients now use the system-defined certificate authority by default if the user does not specify one.
2.2. AMQ C++
ENTMQCL-1282 - Use library-level defaults for no-args connect
connect()method with no arguments now uses library-defined default connection options if the
connect.jsonfile is not found. Previously it raised an exception.
ENTMQCL-1577 - Allow connection options to be updated for automatic reconnect
The client API now offers methods for updating the connection options used during reconnect attempts.
Chapter 3. Fixed issues
3.1. AMQ C++, AMQ Python, AMQ Ruby
ENTMQCL-1376 - The settlement callback is not called when the client receives multiple disposition updates
In earlier releases of the product, the client could fail to call its settlement callback (
on_settled) when it received multiple disposition updates, such as when it received
releasedfrom the remote peer but did not yet receive
In this release, the client only auto-settles messages after it gets the settlement from the receiver, ensuring that the settlement callback is called at the right time.
Chapter 4. Known issues
ENTMQCL-546 - Transactions introduce unexpected link events
Starting a transaction internally opens a sending link for controlling the transaction. This special link can trigger extra application events.
Workaround: Code using transactions should ensure link handler functions are processing the link they expect.
Chapter 5. Important notes
5.1. AMQ C++
The AMQ C++ messaging API includes classes and methods that are not yet proven and can change in future releases. Be aware that use of these interfaces might require changes to your application code in the future.
These interfaces are marked Unsettled API in the API reference. They include the interfaces in the
proton::ionamespaces and the following interfaces in the
API elements present in header files but not yet documented are considered unsettled and are subject to change.
Interfaces marked Deprecated in the API reference are scheduled for removal in a future release.
This release deprecates the following interfaces in the
void_function0- Use the
workclass or C++11 lambdas instead.
default_container- Use the
url_error- Use a third-party URL library instead.
5.2. Preferred clients
In general, AMQ clients that support the AMQP 1.0 standard are preferred for new application development. However, the following exceptions apply:
- If your implementation requires distributed transactions, use the AMQ Core Protocol JMS client.
- If you require MQTT or STOMP in your domain (for IoT applications, for instance), use community-supported MQTT or STOMP clients.
The considerations above do not necessarily apply if you are already using:
- The AMQ OpenWire JMS client (the JMS implementation previously provided in A-MQ 6)
- The AMQ Core Protocol JMS client (the JMS implementation previously provided with HornetQ)
5.3. Legacy clients
Deprecation of the CMS and NMS APIs
The ActiveMQ CMS and NMS messaging APIs are deprecated in AMQ 7. It is recommended that users of the CMS API migrate to AMQ C++, and users of the NMS API migrate to AMQ .NET. The CMS and NMS APIs might have reduced functionality in AMQ 7.
Deprecation of the legacy AMQ C++ client
The legacy AMQ C++ client (the C++ client previously provided in MRG Messaging) is deprecated in AMQ 7. It is recommended that users of this API migrate to AMQ C++.
The Core API is unsupported
The Artemis Core API client is not supported. This client is distinct from the AMQ Core Protocol JMS client, which is supported.