ActiveMQ Artemis 2.7.0 Release Notes

A complete list of JIRAs for the 2.7.0 release can be found here.

A list of commits can be found here.

Bug

  • [ARTEMIS-1018] - Duplicate error ids on different error messages
  • [ARTEMIS-1058] - Jars in web tmp dir locked on Windows
  • [ARTEMIS-1536] - Incorrect Journal filesize calculation where specified size is lest that the block size when using AIO
  • [ARTEMIS-1604] - Artemis deadlock using MQTT Protocol
  • [ARTEMIS-1710] - Allow for management messages to exceed global-max-size limit
  • [ARTEMIS-1795] - The documentation regarding STOMP and message IDs is not correct
  • [ARTEMIS-1825] - Live-backup topology not correctly displayed on console
  • [ARTEMIS-1858] - Expired messages are not traversing bridge with AMQP
  • [ARTEMIS-1870] - Document Bug: Missing documentation for new parameter “jdbc-journal-sync-period” added for JDBC Persistence
  • [ARTEMIS-1872] - Correctly check for queue exists before creating shared queue
  • [ARTEMIS-1873] - AMQ222068: STOMP heartbeat handler is not stopped after StompConnection.destroy()
  • [ARTEMIS-1874] - NPE in ActiveMQMessage.setObjectProperty
  • [ARTEMIS-1875] - Redistribution of messages sometimes does not occur if original message sent using link routing via AMQP
  • [ARTEMIS-1876] - InVMNodeManager shouldn’t be used if no JDBC HA is configured
  • [ARTEMIS-1885] - max-consumers attribute in queue definition does not work for AMQP client.
  • [ARTEMIS-1887] - Setting default-max-consumers in addressing setting has no effect on the max-consumers property on matching address queues
  • [ARTEMIS-1890] - # any-word wildcard doesn’t match zero words if not used at the end of a wildcard expression
  • [ARTEMIS-1891] - Sending synchronization finished packet starves when thread pool is full
  • [ARTEMIS-1893] - subscription queues for non-durable subscriptions are not deleted when AMQP links are detached
  • [ARTEMIS-1896] - Centralize logging of authentication failures
  • [ARTEMIS-1900] - Race condition in STOMP auto-create causing errors (AMQ339016+AMQ119017)
  • [ARTEMIS-1902] - Message redistribution is not stopped when consumers count on remote node reaches 0 (AMQP)
  • [ARTEMIS-1915] - Expire Processing is holding a lock on the queue while scan is taking place
  • [ARTEMIS-1919] - artemis-core-client TLS SNI and verifyHost operation are not independent
  • [ARTEMIS-1920] - AMQP throws NPE if connection happens after a cluster restart
  • [ARTEMIS-1922] - Configuration reload does not work with include files
  • [ARTEMIS-1923] - Wrongly constructing binding journalimpl
  • [ARTEMIS-1924] - Adding the ability to configure the AMQP IdleTimeout
  • [ARTEMIS-1927] - Server is not disconnecting clients on connection reset by peer
  • [ARTEMIS-1928] - Message conversion on certain body types will cause NPE
  • [ARTEMIS-1929] - Race condition in STOMP with multiple, identical durable subcribers
  • [ARTEMIS-1930] - Durable subscription deleted even without durable-subscription-name (STOMP)
  • [ARTEMIS-1934] - the broker sends duplicate AMQP connection data in certain conditions
  • [ARTEMIS-1935] - Openwire connection logs failures on close for open sessions
  • [ARTEMIS-1936] - getQueueNames(String routingType) method should be mark as Operation instead of Attribute
  • [ARTEMIS-1939] - Remove space from parameter annotations name in ActiveMQServerControl
  • [ARTEMIS-1940] - premature release of pooled buffers during send can cause AMQP connection failures
  • [ARTEMIS-1941] - broker changes AMQP body section type during ‘Large’ message handling
  • [ARTEMIS-1942] - LDAP Configuration is missing
  • [ARTEMIS-1943] - Removing core specific attributes from broker
  • [ARTEMIS-1944] - Typo mistake in broker.xml at journal-buffer-timeout explanation
  • [ARTEMIS-1945] - InVMNodeManager shared state should be volatile
  • [ARTEMIS-1949] - fix IllegalMonitorStateException during shutdown
  • [ARTEMIS-1951] - Queue’s user can’t be updated
  • [ARTEMIS-1952] - NPE logged at warn if MQTT subscriber disconnects abruptly
  • [ARTEMIS-1958] - Artemis may not be able to delete pages when there are some empty page files
  • [ARTEMIS-1959] - server startup failure caused by ‘./artemis data print’
  • [ARTEMIS-1966] - Replication channel closed but not connection if flow controlled during replication
  • [ARTEMIS-1970] - Clean up LDAP connection in JAAS login module
  • [ARTEMIS-1978] - AMQP sequencing errors can occur when multi-frame deliveries are multiplexed on a session
  • [ARTEMIS-1979] - Table names with DB2 should be upper-cases
  • [ARTEMIS-1996] - MappedSequentialFileFactory may cause DirectByteBuffer memory leaks
  • [ARTEMIS-2000] - scaleDown/scaledownconnector call does not take routing type into account when creating queues on addresses
  • [ARTEMIS-2010] - LDAPLoginModule should actively detect unauthenticated Bind requests
  • [ARTEMIS-2014] - Treat inability to create directory for paging as critial
  • [ARTEMIS-2017] - Eliminate LRUCache from SelectorParser
  • [ARTEMIS-2019] - Refactor Artemis ServerPlugin to Seperate concerns
  • [ARTEMIS-2020] - Use prefixes when useJNDI=false in RA
  • [ARTEMIS-2023] - Support 1x prefixes for JMS destinations instantiated using session
  • [ARTEMIS-2027] - handle arriving AMQP deliveries being aborted
  • [ARTEMIS-2032] - Artemis RA connections disconnected after failover
  • [ARTEMIS-2033] - Add Spring Boot Integration Example
  • [ARTEMIS-2050] - It is possible to get AMQ224000: Failure in initialisation: java.lang.NullPointerException during shutdown of backup server with shared store
  • [ARTEMIS-2052] - DefaultConsumerWindowSize is not properly being applied
  • [ARTEMIS-2060] - OpenSSL integration broken after Netty upgrade
  • [ARTEMIS-2065] - Can’t change queue routing-type between restarts
  • [ARTEMIS-2066] - LegacyJMSConfiguration parser may deploy non-jms queues
  • [ARTEMIS-2072] - Significant performance degradation introduced after 2.4 when using auto create queues
  • [ARTEMIS-2074] - ActiveMQConnectionFactory URI is not changing Properties on ServerLocator
  • [ARTEMIS-2076] - Can’t change queue filter between restarts
  • [ARTEMIS-2078] - AMQP large messages aren’t consumed between cluster nodes with persistence disabled
  • [ARTEMIS-2081] - When config reload occurs with deletion policy enabled, queues not created by broker xml are removed
  • [ARTEMIS-2084] - Failover won’t happen when net cable is disconnected unless Netty Timeout is specified
  • [ARTEMIS-2088] - Page.write() should throw exception if file is closed
  • [ARTEMIS-2089] - DB2 sending larger message (1MB) crashes the whole server
  • [ARTEMIS-2092] - First page messages lost on server crash
  • [ARTEMIS-2093] - NPE thrown by NettyConnector::createConnection
  • [ARTEMIS-2094] - Configuration change loss after failover to slave
  • [ARTEMIS-2095] - TypedProperties thread safety
  • [ARTEMIS-2096] - AMQP: Refactoring AMQPMessage abstraction for better consistency and performance
  • [ARTEMIS-2098] - Potential NPE when decoding protocol
  • [ARTEMIS-2099] - Avoid possible double instantiation of properties
  • [ARTEMIS-2100] - address routing-type overridden on attaching AMQP sender
  • [ARTEMIS-2102] - delete paging directory or table if address is removed
  • [ARTEMIS-2103] - VirtualTopic doesn’t work correctly with multiple consumers
  • [ARTEMIS-2105] - Discovery group connectors can delay broker shutdown
  • [ARTEMIS-2106] - Failures during broker start are not clearly logged
  • [ARTEMIS-2107] - Clarify identity for authn failures in notification
  • [ARTEMIS-2108] - Potential StackOverflowError when load balancing disabled
  • [ARTEMIS-2110] - JDBC LeaseLocker repeated renew or renew after aquire can fail in error
  • [ARTEMIS-2111] - ManagementContext can leak
  • [ARTEMIS-2112] - Remove JMX properties from start scripts
  • [ARTEMIS-2114] - hawtio destination delete and purge buttons overlap when pane is resized
  • [ARTEMIS-2117] - Support custom last-value queue key & non-destructive queues
  • [ARTEMIS-2118] - Enhanced Message Groups Support
  • [ARTEMIS-2123] - Paging not stopped if there are no messages on one subscription
  • [ARTEMIS-2126] - Web server can leak
  • [ARTEMIS-2130] - Web console display blank ClientID for the core client.
  • [ARTEMIS-2131] - Error compacting journal
  • [ARTEMIS-2133] - Artemis tab not showing on IE browser
  • [ARTEMIS-2136] - Lack of synchronization on CoreMessage.copy may cause issues
  • [ARTEMIS-2137] - Console retry message is broken
  • [ARTEMIS-2139] - Message sent to JMSReplyTo from old client does not find correct bindings
  • [ARTEMIS-2140] - AMQP Shared Subscriptions fail because of RaceCondition
  • [ARTEMIS-2144] - tx begin failure in ra doesn’t get cleaned up
  • [ARTEMIS-2146] - Broker throws exception and becomes unresponsive during AMQP messaging
  • [ARTEMIS-2149] - CoreMessage may have issues encoding if messageChanged is called for any reason.
  • [ARTEMIS-2151] - JMS Selectors broken in some cases
  • [ARTEMIS-2155] - Failure to handle packet should force consumer to disconnect
  • [ARTEMIS-2156] - Message Duplication when using exclusive divert and clustering
  • [ARTEMIS-2158] - don’t get pagedMessage if it’s nontransactional
  • [ARTEMIS-2159] - OpenWire will allow one extra message to be sent after address is full
  • [ARTEMIS-2160] - Cluster connection non-default configuration elements ignored
  • [ARTEMIS-2162] - Remove -XX:+AggressiveOpts to improve JDK 11 compatibility
  • [ARTEMIS-2166] - Unable to delete queue with single quote using web console
  • [ARTEMIS-2174] - Broker reconnect to another with scale down policy cause OOM
  • [ARTEMIS-2175] - Duplicate messages when JMS bridge is stopped and restarted
  • [ARTEMIS-2183] - RefsOperation::getDeliveringMessages is broken
  • [ARTEMIS-2186] - Large message incomplete when server is crashed
  • [ARTEMIS-2187] - PageCursorInfo put into consumedPages when page is deleting
  • [ARTEMIS-2188] - Paged large message results in pagingStore sizeInBytes leak when the page is evicted
  • [ARTEMIS-2189] - Allow deleting temporary destination when originating session is closed
  • [ARTEMIS-2190] - Core JMS client leaks temporary destination names
  • [ARTEMIS-2192] - LegacyLDAPSecuritySettingPlugin uses hard-coded RDN types
  • [ARTEMIS-2194] - Typo in word “update” in class MessageCounterInfo
  • [ARTEMIS-2200] - NPE while dropping/failing large messages on paging
  • [ARTEMIS-2202] - Improve MSSQL support for JDBC storage
  • [ARTEMIS-2206] - The MQTT consumer reconnection caused the queue to not be cleared and throw a NullPointerException exception
  • [ARTEMIS-2207] - Page Cursor logging warn for previously acked messages
  • [ARTEMIS-2210] - Fix PagingStore creation synchronization issue
  • [ARTEMIS-2214] - ARTEMIS-2214 Cache durable&deliveryTime in PagedReference
  • [ARTEMIS-2215] - largemessage have been consumed but not deleted from the disk during backup and live sync
  • [ARTEMIS-2217] - ‘MQTTSessionState’ in the ‘SESSIONS ConcurrentHashMap’ never be removed
  • [ARTEMIS-2226] - (MQTT)In the cluster,the last consumer connection should close the previous consumer connection
  • [ARTEMIS-2227] - Missing Implementation-Version attribute in MANIFEST.MF
  • [ARTEMIS-2228] - Check message size sent over management API
  • [ARTEMIS-2230] - Exception closing advisory consumers when supportAdvisory=false
  • [ARTEMIS-2234] - Incorrect warning from LoggingConfigurationFileReloader
  • [ARTEMIS-2236] - Address Latency Impact caused by ARTEMIS-1451
  • [ARTEMIS-2238] - JMS Producer queueQuery does not work when addressName != queueName
  • [ARTEMIS-2242] - Enforce Address type broken by ARTEMIS-2229
  • [ARTEMIS-2244] - checkDepage method placed outside CRITICAL_DELIVER avoid critical analyzer timeout
  • [ARTEMIS-2246] - Documentation for configuration max-disk-usage is inaccurate.
  • [ARTEMIS-2247] - Value argument in artermis-service.xml is incorrect
  • [ARTEMIS-2248] - Don’t create sslEngine with sniHost in NettyConnector
  • [ARTEMIS-2251] - Large messages might not be deleted when server crashed
  • [ARTEMIS-2254] - Support UseTopologyForLoadBalancing on JMS ConnectionFactoryConfiguration
  • [ARTEMIS-2256] - Wrong Topology After Bridge Reconnected
  • [ARTEMIS-2257] - Synchronize SharedEventLoopGroup shutdownGracefully to prevent race conditions
  • [ARTEMIS-2259] - Client session not exist if reattach on new connection timeout
  • [ARTEMIS-2264] - PurgeOnNoConsumers prevent removal of messages with replication
  • [ARTEMIS-2274] - sending a close to JournalBufferSize message cause Critical IO Error

New Feature

  • [ARTEMIS-856] - Support advanced destination options
  • [ARTEMIS-1545] - JMS MessageProducer fails to expose exception on send when message is sent non-persistent, but not authorised
  • [ARTEMIS-1856] - Add support for delays before deleting addresses and queues
  • [ARTEMIS-1892] - Allow whitespace in
  • [ARTEMIS-1917] - Support logging HTTP access
  • [ARTEMIS-2008] - Add a CLI command to purge queue
  • [ARTEMIS-2022] - Create count messages “group by” this property filter
  • [ARTEMIS-2028] - Add OpenTracing support
  • [ARTEMIS-2116] - Set text message content on producer CLI command
  • [ARTEMIS-2121] - Reload logging configuration at runtime
  • [ARTEMIS-2141] - Display “Filter” column in Consumers View of AdminUI
  • [ARTEMIS-2150] - Counts the number of delivering messages in this queue
  • [ARTEMIS-2241] - Support direct deliver for InVMAcceptors
  • [ARTEMIS-2243] - Support user and role manipulation for PropertiesLoginModule via management interfaces
  • [ARTEMIS-2245] - Implement Docker images
  • [ARTEMIS-2258] - The FileLockNodeManager directory should be configurable
  • [ARTEMIS-2262] - Correlate management response messages with request message.
  • [ARTEMIS-2263] - Add support to configure auto-delete-queue at the queue level
  • [ARTEMIS-2273] - Adding Audit Log

Improvement

  • [ARTEMIS-196] - Implementing Consumer Priority
  • [ARTEMIS-1778] - let artemis test suite be used against an external security enabled broker
  • [ARTEMIS-1866] - Make wait time for reply configurable once vote goes out to acquire a quorum.
  • [ARTEMIS-1867] - Support FQQN for producers
  • [ARTEMIS-1888] - Add forceSSLParameters flag to core client to prefer local SSL properties over System properties
  • [ARTEMIS-1895] - Add duplicate metadata failure callback to ActiveMQServerPlugin
  • [ARTEMIS-1897] - STOMP should use core session for authentication
  • [ARTEMIS-1903] - Log STOMP ERROR frames at WARN on the broker
  • [ARTEMIS-1947] - Return meta-data in JSON session management ops
  • [ARTEMIS-1961] - Track routed and unrouted messages sent to an address
  • [ARTEMIS-1971] - Support connection pooling in LDAPLoginModule
  • [ARTEMIS-1977] - ASYNCIO can reduce sys-calls to retrieve I/O events
  • [ARTEMIS-1980] - Warn on failed check of table existence should be info
  • [ARTEMIS-1981] - JDBCJournalImpl constructor isn’t using tableName parameter
  • [ARTEMIS-1987] - Support configuring a default consumer window size via Address Settings
  • [ARTEMIS-2003] - Add support for Bridge metrics
  • [ARTEMIS-2018] - Artemis ServerPlugin support for Bridging events
  • [ARTEMIS-2044] - Add broker plugin methods to handle errors during “send”/”route” operations
  • [ARTEMIS-2045] - [AMQP] Add support for setting delivery annotations on outgoing messages
  • [ARTEMIS-2051] - Add trace logging for JDBC
  • [ARTEMIS-2058] - Allow setting of any value (not just bytes) in AMQPMessage.extraProperties
  • [ARTEMIS-2062] - AMQP: Reduce lock contention and allocations on message processing
  • [ARTEMIS-2063] - Improve logging around address & queue deployment
  • [ARTEMIS-2064] - Make address & queue deployment more robust
  • [ARTEMIS-2067] - AMQP: Cleanup some proton event handling code
  • [ARTEMIS-2068] - broker should avoid reading any file to get AMQP large msg size
  • [ARTEMIS-2075] - Extra backups only try to replicate once
  • [ARTEMIS-2085] - Improve validation of MDB activation config properties values
  • [ARTEMIS-2087] - Support masked passwords in management.xml
  • [ARTEMIS-2125] - Queue preference changes to display columns not persistent through page refresh
  • [ARTEMIS-2127] - Add auth details to consumer created notification
  • [ARTEMIS-2142] - Support JMSXGroupSeq -1 to close/reset Groups
  • [ARTEMIS-2157] - Add Information on Paths for CriticalAnalyzer
  • [ARTEMIS-2163] - Classloading issue if artemis-commons is not in ther same classloader as artemis-client-* or artemis-server
  • [ARTEMIS-2169] - Allow configuration of RMI registry port
  • [ARTEMIS-2170] - Optimized CoreMessage’s checkProperties and cleanupInternalProperties methods
  • [ARTEMIS-2178] - Support routing-type configuration on core bridge
  • [ARTEMIS-2179] - Add management method to get cluster-connection names
  • [ARTEMIS-2196] - Avoid creating RandomAccessFile when FileChannel is needed
  • [ARTEMIS-2198] - Reduce GC pressure on TransactionImpl and OperationContextImpl
  • [ARTEMIS-2205] - Make AMQP Processing Single Threaded and other AMQP perf improvements
  • [ARTEMIS-2208] - Unit Tests POM file contains version value and not parameter
  • [ARTEMIS-2211] - Refactor ByteBuffer pooling, alignment and zeroing
  • [ARTEMIS-2212] - Avoid using CLQ on ServerConsumerImpl
  • [ARTEMIS-2216] - Use a specific executor for pageSyncTimer
  • [ARTEMIS-2220] - Fix PageCursorStressTest::testSimpleCursorWithFilter NPE
  • [ARTEMIS-2221] - Avoid unnecessary Bindings instance creation
  • [ARTEMIS-2222] - why the position remains unchanged if ignored is set to true
  • [ARTEMIS-2224] - Reduce contention on LivePageCacheImpl
  • [ARTEMIS-2235] - Username and password logged in browser log
  • [ARTEMIS-2239] - Zero-copy NIO/MAPPED TimedBuffer
  • [ARTEMIS-2240] - ActiveMQThreadPoolExecutor should use LinkedTransferQueue
  • [ARTEMIS-2249] - Update proton cpp example to use correct latest client libs
  • [ARTEMIS-2260] - Move artemis-native as its own project, as activemq-artemis-native
  • [ARTEMIS-2265] - Support Federated Queues and Addresses
  • [ARTEMIS-2269] - Karaf config should use predefined etc-dir instead of hard-coded etc
  • [ARTEMIS-2271] - Upgrade to Netty Libs to Latest

Test

  • [ARTEMIS-1853] - Adding Netty OpenSSL provider test
  • [ARTEMIS-1868] - Openwire doesn’t add delivery count in client ack mode
  • [ARTEMIS-1894] - NetworkHeathTest hits apache.org (or fails to) as a side effect
  • [ARTEMIS-2104] - Implement tests for Import/Export (replay) of messages
  • [ARTEMIS-2201] - Create tests on DEFAULT_JOURNAL_FILE_OPEN_TIMEOUT value

Task

  • [ARTEMIS-1882] - Verify PKCS12 keystores work
  • [ARTEMIS-1912] - Review Documentation
  • [ARTEMIS-1913] - Dependency to tcpnative should be optional
  • [ARTEMIS-1914] - NPE on ConfigurationImpl if maskPassword=null
  • [ARTEMIS-1918] - RemotingConnectionImpl contains unused private clientID field used by toString()
  • [ARTEMIS-1926] - Refactor SSLSupport
  • [ARTEMIS-1931] - Create a Camel example
  • [ARTEMIS-1938] - AMQP: Update Qpid JMS (and Netty) and Proton-J to latest
  • [ARTEMIS-1948] - AMQPLite example with a High Performant Producer and Consumer
  • [ARTEMIS-1950] - Clarify STOMP durable subscription header names
  • [ARTEMIS-1954] - Eliminate all possible usage of JMSServerManager
  • [ARTEMIS-1956] - Move MessageCounterInfo from server module to core-client module
  • [ARTEMIS-1957] - Update management notification documentation
  • [ARTEMIS-1974] - Document LDAP role expansion functionality
  • [ARTEMIS-1991] - Document Advanced Destination Options
  • [ARTEMIS-2036] - Recompile libaio on an older kernel version for compatibility with older boxes.
  • [ARTEMIS-2086] - Remove HDRHistogram dependency
  • [ARTEMIS-2148] - getDoubleProperty changes the message

Apache, ActiveMQ, Apache ActiveMQ, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright © 2024, The Apache Software Foundation. Licensed under Apache License 2.0.