1020 Commits

Author SHA1 Message Date
Jean-Baptiste Onofré
4a25366541 [maven-release-plugin] prepare release activemq-5.17.6 2023-10-25 07:25:09 +02:00
Matt Pavlovich
048d980923 [AMQ-9315] Add connectedTimestamp to Connection and JMX view
(cherry picked from commit 578d86d726d80715825e5f927ef8af50e181d754)
2023-10-24 08:52:10 -05:00
Matt Pavlovich
2f0ac0e069 [AMQ-9301] Add additional fields to o.a.activemq.broker.jmx.Connection
(cherry picked from commit 9f374dfcb50729693ae1ee55d58bfea27fef1c0a)
2023-10-24 08:52:00 -05:00
Martin Devlin
d069ff77bd AMQ-9187 - Queue Advisory message not sent
- a test case which demonstrates the bug.
  - the first test case sendDelayedMessage_usingNormalProducer works fine because it is using a normal named JMS MessageProducer. Included just for comparison purposes.
  - the 2nd test case sendDelayedMessage_usingAnonymousProducer shows the bug.
- the bug fix: swap the order of the AdvisoryBroker and SchedulerBroker BrokerFilters.
  - make AdvisoryBroker come after SchedulerBroker but before RegionBroker
  - this ensures that when a delayed message gets eventually forwarded to the RegionBroker, the RegionBroker will "see" the AdvisoryBroker when it invokes 'addDestination'. Thus, the AdvisoryBroker gets to send out the advisory message as expected.

(cherry picked from commit 573ae71ec9197ae7392941239912bd62e7db2c87)
2023-10-20 17:56:21 +02:00
Jean-Baptiste Onofré
53f2b4a0cb [maven-release-plugin] prepare for next development iteration 2023-06-28 13:12:31 +02:00
Jean-Baptiste Onofré
de102ea21d [maven-release-plugin] prepare release activemq-5.17.5 2023-06-28 13:12:20 +02:00
Matt Pavlovich
cda1007ef6 [AMQ-9257] Disabled expire message checking when pauseDispatch=true (#1005)
(cherry picked from commit 9a5b61f6a28184cfe832871302ece16069ebb71d)
2023-06-08 08:25:03 -05:00
Christopher L. Shannon
1707cc194b AMQ-9262 - Fix network subscriptions for composite consumers (#1014)
This fixes network subscriptions that are generated on demand when a
consumer uses composite destinations. Before this fix conduit
subscriptions didn't work correctly. This fix now splits up the
composite dest and generates correct demand for each of the individual
destinations.

(cherry picked from commit 901956d4ddb6a0ea9fe5fedf39732117ab68f087)
2023-06-07 07:20:43 -04:00
Jean-Baptiste Onofré
ebab05897a [maven-release-plugin] prepare for next development iteration 2023-02-22 06:36:53 +01:00
Jean-Baptiste Onofré
720570e967 [maven-release-plugin] prepare release activemq-5.17.4 2023-02-22 06:36:43 +01:00
Christopher L. Shannon (cshannon)
50943caa6e AMQ-9217 - Fix IndividualDeadLetter strategy rollback
This fixes the rollback after the latest changes by using the
originalDestination property to look up the correct message audit on
rollback

(cherry picked from commit 459388185a3acd3a175d304b08af3c638e870292)
2023-02-16 11:00:33 -05:00
Matt Pavlovich
47962eea25 [AMQ-9217] Fix per-destination audits on IndividualDeadLetterStrategy
(cherry picked from commit 28f7eb7ee87c47e43cc3db11fcd550ef872327b3)
2023-02-16 11:00:27 -05:00
Michał Janczykowski
c5ecf53bdc [AMQ-9199] Fixed race condition in creating store directory
A store directory is created by MessageDatabase#getPageFile which
is called in two cases:
1. KahaDBStore.start() when creating a queue
2. KahaDBStore.size() which is performed when sending any persistent message

If both methods are called concurrently it's possible to get an IOException
thrown from the IOHelper.mkdirs method.

(cherry picked from commit 7de7ba2aa92dd1a98f48175fac5a538bd6e8579b)
2023-02-02 14:44:33 +01:00
Christopher L. Shannon (cshannon)
6d91d71c1a AMQ-9202 - Make sure Reentrant locks are acquired outside a try block
This is best practice and will prevent unlock from being attempted
inside of a finally block when the thread doesn't actually own the
lock which can happen when the lock attempt throws an exception
such as calling lockInterruptibly()

(cherry picked from commit ed924cddac90b96bdc47b215852a68155d818bcd)
2023-02-01 11:33:14 -05:00
Jean-Baptiste Onofré
5926eee624 [maven-release-plugin] prepare for next development iteration 2022-11-29 14:49:59 +01:00
Jean-Baptiste Onofré
80a5ee343f [maven-release-plugin] prepare release activemq-5.17.3 2022-11-29 14:49:50 +01:00
Dmytro Chebotarskyi
c35687052a Added additional logging on BrokerService startup
(cherry picked from commit dc55028c00fcb8a4574b7c390d19f85220c1edfe)
2022-11-29 08:02:52 +01:00
Christopher L. Shannon (cshannon)
20dc305a49 AMQ-9175 - Properly set broker on ConnectionContext inside
MemoryTransactionStores

This fixes a NPE when using the messageDelivered advisory and
transactions

(cherry picked from commit f83c5f1ba156ed850acf76dc42f944b4150d21f8)
2022-11-21 11:12:07 -05:00
Christopher L. Shannon (cshannon)
f90a7bf535 AMQ-9168 - Send message expired advisory and not discard advisory when
Topic subscriptions expire a message

This fixes topic subs to send the right advisory type, if enabled, when
the server discards a message on dispatch to a topic sub. Also add some
more expiration tests for other subscription types

(cherry picked from commit 757a712890996d71cf380c56fc2cefbd5a82ec88)
2022-11-16 06:47:17 -05:00
Christopher L. Shannon (cshannon)
46cdecf05f (AMQ-9156, AMQ-9167) - Update TopicSubscription to use a new counter for
current dispatched count

The previous way of computing the count of using total dispatched minus
total dequeued didn't work in the case of destination removal and
messages were not acked. The counter is needed as the dispatched list is
optional unlike prefetch subs.

(cherry picked from commit 8554a1464c6471f81ebbcd6c482376ae32cf6808)
2022-11-15 17:02:11 -05:00
Matt Pavlovich
d830dc2954 [AMQ-9163] Add 'Started' attribute to ConnectorView (#932)
(cherry picked from commit c25975389f031a787414b404c848a4757f7180e5)
2022-11-15 10:18:06 +01:00
Christopher L. Shannon (cshannon)
8062423dcd AMQ-9159 - In topic subscriptions only remove nodes from dispatched list if
they match the destination on destination removal

(cherry picked from commit 837df23be66f9d22e4df61ae40cd70de34e064a7)
2022-11-10 16:18:28 -05:00
Christopher L. Shannon (cshannon)
3bd099f469 AMQ-9156 - fix formatting 2022-11-03 10:44:26 -04:00
Christopher L. Shannon (cshannon)
9c5a6219ea AMQ-9156 - Make sure in flight metrics are properly decremented on
subscription destroys and dispatch failures

(cherry picked from commit 58666afffde7eb43509d155e709e76e6fdba8084)
2022-11-03 10:42:45 -04:00
Christopher L. Shannon (cshannon)
8cc7a45455 AMQ-9107 - rework performance improvement for consumer closing in
managed region broker

This new approach just looks matching Subscriptions from the region for the
destination which prevents having to store another map and falls back to
the old approach if something went wrong.

(cherry picked from commit d46b74d674c2a67193bb95384290da266adf9a25)
2022-11-03 06:50:44 -04:00
Christopher L. Shannon (cshannon)
bc9e728123 AMQ-9153: Fix slow consumer advisory for queue subscriptions
Due to changes with Queues to check if consumers are full before adding
more messages to the subscription, the Queue dispatch logic needed to be
updated to mark subscriptions as slow and send advisories if configured
instead of relying on the subscription itself to do it.

(cherry picked from commit 596ee316874894ad0342475d8f242913bd507cd1)
2022-11-01 10:31:50 -04:00
Lucas Tétreault
51c390737a remove consumers more efficiently
(cherry pick from commit b7f73d4875d767f704c6720e66da1bf8609d7ed7)
2022-10-13 05:58:32 +02:00
Robbie Gemmell
aad85e2c4a AMQ-9074: use -noindex to remove various .js files, disable html source listings for javadoc
(cherry picked from commit 52574a794a97e0d3d64d6c26a5b5a545facfdc95)
2022-09-07 18:04:01 -04:00
Jean-Baptiste Onofré
cad3839fe1 [maven-release-plugin] prepare for next development iteration 2022-08-25 09:22:35 +02:00
Jean-Baptiste Onofré
b6ecffe80a [maven-release-plugin] prepare release activemq-5.17.2 2022-08-25 09:22:27 +02:00
Jean-Baptiste Onofré
7ad4c551fd [AMQ-9049] Mention dicarded messages in getTotalDequeueCount operation of BrokerViewMBean
(cherry picked from commit 7159b4410baea64db104f1e06e70675446b71585)
2022-08-18 07:26:47 +02:00
Zishuo Ding
2a7570d7d8 Refine the logging messages
(cherry picked from commit f2c9a6c7181d18efb48c96b6312a8b8fa6705bbc)
2022-08-17 07:49:06 +02:00
Lucas Tétreault
020519f54f Clean up remaining Xalan references
(cherry picked from commit 7b3f13feda883c56b4b685970d9fe57f030a4c34)
2022-08-12 08:08:37 +02:00
Lucas Tétreault
c44008e852 [AMQ-9005] remove xalan dependency due to it being end of life
(cherry picked from commit e550748b4cb2da128a9ea5ac886cc6700f4e9c97)
2022-08-01 06:39:51 +02:00
Jean-Baptiste Onofré
8abb50aa16 [maven-release-plugin] prepare for next development iteration 2022-04-25 14:23:42 +02:00
Jean-Baptiste Onofré
0898aab016 [maven-release-plugin] prepare release activemq-5.17.1 2022-04-25 14:23:33 +02:00
Jean-Baptiste Onofré
bd08484445 [maven-release-plugin] prepare for next development iteration 2022-03-09 21:47:58 +01:00
Jean-Baptiste Onofré
1f3ccad9bb [maven-release-plugin] prepare release activemq-5.17.0 2022-03-09 21:47:47 +01:00
Jean-Baptiste Onofré
a9cb53bd38 Cancel 5.17.0 release 2022-03-09 21:42:04 +01:00
Jean-Baptiste Onofré
2582384511 [maven-release-plugin] prepare for next development iteration 2022-03-07 15:41:59 +01:00
Jean-Baptiste Onofré
8ad238bb7d [maven-release-plugin] prepare release activemq-5.17.0 2022-03-07 15:41:49 +01:00
Christopher L. Shannon (cshannon)
da9e5276f1 AMQ-8520: Log4j2 test fixes
Also fixes Log4jConfigView

(cherry picked from commit ae30dce4e24ce5e0467d2a3219627cbefef1f0ae)
2022-03-03 16:42:22 -05:00
Christopher L. Shannon (cshannon)
8a4c928806 Revert "[AMQ-7309] Update to jakarta.jms/jakarta.jms-api:2.0.3 (#682)"
This reverts commit 67256c61b1560127e3a56ba9dede61cad3001f4a.
2022-03-01 10:25:01 -05:00
Jean-Baptiste Onofré
e597017200
Merge pull request #662 from jbonofre/AMQ-7426
[AMQ-7426] Upgrade to log4j2
2022-02-27 13:23:53 +01:00
Matt Pavlovich
9956dd602a
[AMQ-8440] Set sendDuplicateFromStoreToDLQ to 'false' by default (#773) 2022-02-24 08:45:35 -06:00
jbonofre
472dcf8497 [AMQ-7426] Upgrade to log4j2 2022-02-24 15:20:51 +01:00
Christopher L. Shannon (cshannon)
df354fa023 AMQ-8509: Update TempStore Usage test to verify cleanup
Add a unit test to the previous tests added in AMQ-7085 to verify
TempUsage is cleaned up and stopped on Queue.stop()
2022-02-23 07:41:24 -05:00
Artur Pedroso
d1e9ba68b3 AMQ-8509: Fix TempUsage memory leak
If you have an application that creates lots of queues it will eventually
fail with OOM because TempUsage is started on Queue#start but never stopped.

The `systemUsage.getTempUsage().start()` used on the Queue#start
adds elements on a List from TempUsage parent and these elements
are never removed.

To reproduce this issue you need to leave an application
running for a long time creating different queues.

The only way to avoid the leak right now is to stop the BrokerService,
which isn't a solution.
2022-02-23 07:38:58 -05:00
Endre Stølsvik
9167a79b79 StatisticsBrokerPlugin: Add feat: request destination firstMessageTimestamp
Adding a feature (STATS_FIRST_MESSAGE_TIMESTAMP) to the
StatisticsBrokerPlugin's destination-statistics for getting the
timestamp of the first message in the destination(s) being requested: If
you on the query-message set the property
StatisticsBroker.STATS_FIRST_MESSAGE_TIMESTAMP to anything (e.g. boolean
true), a long value "firstMessageTimestamp" will be added to the
statistics reply message(s). Since the reply message has JMSTimestamp
set, which is the broker's now-timestamp, you may also on the query side
calculate the age of the first message in milliseconds. The key name was
chosen since that is the name of the corresponding feature in Artemis.

This extension of the existing feature is implemented to be as
non-intrusive as possible, adding very little runtime cost if not
requested. It also seems like the runtime cost for enabling this
feature, thus finding and adding the firstMessageTimestamp, is small.

While at it, also slightly improving an existing feature
(STATS_DENOTE_END_LIST) where a reply to a destination query can be
"null terminated": After sending the relevant replies, the
StatisticsBroker also sends an empty message. This feature is relevant
if the query is a wildcard query, thus returning multiple messages: The
empty message denotes the end of the replies. However, to activate this
feature, a somewhat complicated query destination had to be constructed.
Adopting the solution for the other StatisticsBroker feature where you
may reset the broker statistics by adding a property to the query
message, this null-termination feature now /also/ checks for the
presence of this query modifier STATS_DENOTE_END_LIST as a property.
(This property based solution was thus also adopted for the present
'firstMessageTimestamp' solution, as it was found much more intuitive).

Added tests for both the STATS_FIRST_MESSAGE_TIMESTAMP query modifier,
and the improved STATS_DENOTE_END_LIST property-based query modifier.

Had to make the Topic.doBrowse(List browseList, int max) public - the
corresponding method for Queue was already public.

Made the evaluation of whether this is a StatisticsBroker-relevant
message a microscopic bit more performant (exiting faster if not
relevant): To the initial test of whether the message is relevant, which
only checked for replyTo being set, a check for 'destination.
startsWith("ActiveMQ.Statistics")' was added. Only if so, the rest of
the evaluations kick in. Also using 'string.startsWith(..)' instead of
the verbose 'string.regionMatches(..)'.

Removed an unused import on PartitionBrokerTest.java, as IntelliJ
complained about not finding it.
2022-01-25 09:45:48 +01:00
Matt Pavlovich
6a944a05d9 [AMQ-8462] Remove double call to listConnectionStates during connection close 2022-01-24 09:21:19 -06:00