Commit Graph

10459 Commits

Author SHA1 Message Date
Clebert Suconic 82c4df180e ARTEMIS-4690 Remove storageManager.addAddressSettings from the codebase 2024-03-14 13:38:28 -04:00
Justin Bertram 57ed2c30b3 ARTEMIS-4686 reduce number of FilterImpl instances
Whenever we create a queue with a filter we're instantiating 3 different
`org.apache.activemq.artemis.core.filter.impl.FilterImpl` objects. This
is wasteful and entirely avoidable.
2024-03-14 13:27:23 -04:00
Justin Bertram cb2b293810 ARTEMIS-4647 use specified call-timeout on backup connector 2024-03-13 23:22:31 -04:00
Justin Bertram 93e0826a38 ARTEMIS-4687 concurrent use of DocumentBuilder breaking Xpath filtering 2024-03-13 23:22:14 -04:00
Clebert Suconic 32138d64e4 ARTEMIS-4652 Adapting test to not throw XA_RETRY as requested 2024-03-13 20:25:22 -04:00
Domenico Francesco Bruscino 61b9753f80 ARTEMIS-4679 Config HA policy by using broker properties 2024-03-13 17:25:57 -04:00
Justin Bertram 269be13c5a ARTEMIS-4652 rollback of XAResource impl shouldn't return XA_RETRY
This fix was based on static analysis of the code and inspection of the
XA specification. There is no test associated with it due to the
difficult nature in reproducing the failure. This code has been
essentially the same for a decade and only now have there been any
reports of it actually sending back the wrong XA code.
2024-03-13 17:25:24 -04:00
Clebert Suconic d864780293 ARTEMIS-4684 Internal queues should not redistribute 2024-03-13 17:01:08 -04:00
Clebert Suconic 11b7671960 ARTEMIS-4684 Internal Queues should not redistribute
This is particularly true for the Mirrored SNF queue. Redistribution is not meant for internal queues. If an internal queue happens to have the same name on another server, it should not trigger redistribution when consumers are removed.

It would be possible to work around this by adding an address-setting specific to the address with redistribution disabled.

ClusteredMirrorSoakTest was intermittently failing because of this. For a few seconds while the mirror connection is still being made connections could move messages from one node towards another node if both have the same name.
2024-03-13 09:26:47 -04:00
Clebert Suconic c5b81d929d ARTEMIS-4682 Improving performance of reloading JDBC storage
- fixing leaks
- page.exists() would lead to a select(all) and find.
2024-03-11 20:58:27 -04:00
Justin Bertram 009687ef7c ARTEMIS-4648 support typed properties from CLI producer 2024-03-11 12:58:24 +00:00
Clebert Suconic 21368cf741 ARTEMIS-4678 JDBC User and password not used by CLI 2024-03-08 18:23:48 -05:00
Clebert Suconic 063968bb4f ARTEMIS-4677 Validating AutoCreate with Mirror and Clustering
There is no semantic change on this commit.

I wrote a test to validate a scenario and this is to keep the test in the codebase.
2024-03-07 15:36:29 -05:00
Justin Bertram 7742936583 ARTEMIS-4676 use ActionContext consistently for logging in CLI commands 2024-03-07 15:36:16 -05:00
Clebert Suconic fd1ef367d3 ARTEMIS-4670 Slow processing with Large Messages and JDBC 2024-03-07 13:09:58 -05:00
Jan Šmucr 3c580c9351 ARTEMIS-4579 Add `peekFirstMessage*` and `peekFirstScheduledMessage*` functions 2024-03-07 10:45:14 -06:00
Clebert Suconic 9cd48602ab ARTEMIS-4664 Just fixing a typo on the test method name 2024-03-07 10:51:36 -05:00
AntonRoskvist 45533c38da ARTEMIS-4664 - autoCreatedResource can get removed while receiving batch of messages 2024-03-07 10:45:41 -05:00
Emmanuel Hugonnet 56ec308045 ARTEMIS-4672 - Upgrade Netty to 4.107.Final
* Upgrading netty-tcpnative to 2.0.63
 * Upgrading netty to 4.107.Final

Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
2024-03-07 12:42:30 +00:00
Clebert Suconic c83ed8957d ARTEMIS-4668 Moving AMQP Large Message file handling away from Netty thread 2024-03-06 15:21:01 -05:00
Clebert Suconic 5ce70f9e37 ARTEMIS-4669 Clarify Storage Manager usage around large messages 2024-03-05 17:27:18 -05:00
Justin Bertram 661a4e6fdc ARTEMIS-4655 report logging metrics
It may be useful to configure alerts for ERROR or WARN events in the log
which may go unnoticed otherwise.
2024-03-05 09:37:11 +00:00
Clebert Suconic b5791344b4 ARTEIS-4651 Speeding up delivery resume when SNF is paged 2024-03-04 10:47:12 -05:00
Timothy Bish f9f5ed373f ARTEMIS-4665 Fix AMQP federation pull consumer test failures
Fix intermittent test failures in pull consumer test by asserting that there
are the expected number of message on the queue before running the JMS consume
cycle to consume credit and trigger federation credit to flow.
2024-03-01 08:12:22 -08:00
Timothy Bish cffc72fd51 ARTEMIS-4665 Add additional state checks to fix test failures in CI
Tests need to ensure federation links are up before sending to and address
or the sent message can get discarded before the federation consumer is there
to receive it.
2024-02-29 13:44:59 -08:00
Robbie Gemmell c7f536c8b8 ARTEMIS-4631: update to Spring 5.3.32 2024-02-29 16:16:27 +00:00
Robbie Gemmell 155634b115 ARTEMIS-4621: update to PostgreSQL 42.7.2 2024-02-29 16:16:27 +00:00
Gary Tully 6fe603f717 NO-JIRA add comment on current directory to the image build readme 2024-02-29 15:15:16 +00:00
Justin Bertram b10e752e6e
NO-JIRA add optional metrics doc details 2024-02-28 14:08:20 -06:00
Timothy Bish fd5d9b9ad0 ARTEMIS-4658 Prevent reflections when using dual address federation
When federation is configured in two directions between nodes for an address
the message can reflect from one node to another if max hops is not set or not
set correctly and in some federation topologies the max hops value can't solve
the issue and still result in a working configuration. This reflection should
be prevented at the federation consumer level for address consumers.
2024-02-28 16:37:18 +00:00
Robbie Gemmell 723c11ac15 ARTEMIS-4656: remove superflous artemis-spring-integration module 2024-02-27 16:02:54 +00:00
Clebert Suconic b4aa652c7b NO-JIRA Improving AuditLoggerTest::testAuditHotLog* tests
These tests are using an asynchronous feature. the check on Log has to use the Wait.assertEquals

I had to make a few changes to the methods to allow the use of Wait
2024-02-27 10:46:43 -05:00
Clebert Suconic c6cf68fe5c ARTEMIS-4651 Reverting test change on PagedMirrorSmokeTest as it wasn't needed 2024-02-26 11:26:05 -05:00
Clebert Suconic db94b18b73 ARTEMIS-4651 Performance improvements on Mirror and Paging 2024-02-26 11:01:04 -05:00
Albertas Vyšniauskas f4b59c9b25 ARTEMIS-4646 Reuse only acknowledged MQTT IDs
Generate MQTT message IDs from full allowed range of 1-65535 and skip
currently used values. Do not use atomic integer for current ID, because
all accesses and modifications are performed in synchronized context.
2024-02-22 10:54:46 -06:00
Clebert Suconic 4c0ed67897 ARTEMIS-4650 PWD CLI Command
little tool showing current folders on the CLI. Useful to figure out where you're at when using the shell.

I get myself typing pwd all the time I am using the CLI, trying to figure out what is my current location and broker being used.
this would be useful to make sure you are going to use the right broker when multiple CLI instances are running from multiple terminals.
2024-02-21 18:05:47 -05:00
Timothy Bish 91556729f1 ARTEMIS-4653 Create federation consumers for specific queue consumer filters
When Queue consumers attach with filters use those instead of the Queue
filter to filter the messages that are federated to avoid stranding of
messages on the local broker. This will result in multiple federation
consumers if the various attached local consumers all use different
filters but does keep unwanted messages on the remote so that consumers
there can consume those.
2024-02-21 16:53:49 +00:00
Justin Bertram 7d3ed3e0de
Clarify classic wording 2024-02-19 16:06:40 -06:00
Albertas Vyšniauskas 0d1d88a72a ARTEMIS-4649 Use unique STOMP message ID per subscription
Use combined consumer and message ID as STOMP message ID.
2024-02-19 12:31:17 -06:00
Timothy Bish ddbf357625 ARTEMIS-4645 Update broker connection tests to use unique broker names
Use the test name to create unique names for broker connections in the tests and
the associated test logs
2024-02-16 10:18:08 +00:00
Timothy Bish b8800337df ARTEMIS-4642 Fix tracked federated demand when links are rejected or blocked
Under some scenarios federation demand tracking is losing track of total demand
for a federated resource leading to teardown of federated links before all local
demand has been removed from the resource. This occurs most often if the attempts
to establish a federation link are refused because the resource hasn't yet been
created and an eventual attach succeeds, but can also occur in combination with
a plugin blocking or not blocking federation link creation in some cases.
2024-02-15 17:08:39 +00:00
Robbie Gemmell 42a2e4637f ARTEMIS-4644: convert some broker-connection tests to use the ProtonJ2 test peer
Changes from myself and Tim Bish
2024-02-15 17:02:07 +00:00
Justin Bertram 77d9f10a3d ARTEMIS-4588 30 second pause for large msgs + federation
Large message support was added to
o.a.a.a.c.s.f.FederatedQueueConsumerImpl#onMessage via cf85d35 for
ARTEMIS-3308. The problem with that change is that when onMessage
returns o.a.a.a.c.c.i.ClientConsumerImpl#callOnMessage will eventually
call o.a.a.a.c.c.i.ClientLargeMessageImpl#discardBody which eventually
ends up in o.a.a.a.c.c.i.LargeMessageControllerImpl#popPacket waiting 30
seconds (i.e. the default readTimeout) for more packets to arrive (which
never do). This happens because the FederatedQueueConsumer short-cuts
the "normal" process by using LargeMessageControllerImpl#take.

This commit fixes that by tracking the number of bytes "taken" and then
looking at that value later when discarding the body effectively
skipping the 30 second wait.
2024-02-14 11:07:11 -06:00
Alexey Markevich 9cd598ebf4 ARTEMIS-1230 Added artemis-bom 2024-02-14 10:33:19 +00:00
Robbie Gemmell da0287ddba update actions to resolve deprecation warnings, and bump OS version 2024-02-13 11:46:19 +00:00
Domenico Francesco Bruscino 5969c20777 ARTEMIS-4628 Upgrade vertx version to 4.5.3 2024-02-13 09:39:45 +00:00
Timothy Bish 94b6c0ec6e ARTEMIS-4641 Support events for add of missing federation resources
When an AMQP federation instance attempts to federate an address or queue
it can fail if the remote address or queue is not present or cannot be
created based on broker policy. A federation link can also closed if the
federated resource is removed from the remote broker by management etc.
In those cases the remote broker should note the resources that were
targets of federation and send alerts to the source federation broker to
notify it that these resources become available for federation and the
source should attempt again to create federation links if demand still
exists. This allows an AMQP federation instance to heal itself based on
updates from the remote.
2024-02-12 17:54:05 +00:00
Domenico Francesco Bruscino 29781bd5da ARTEMIS-4586 Auto reload web binding SSL stores on change 2024-02-09 17:20:56 +00:00
Justin Bertram 20840cfdf1 ARTEMIS-4639 NPEs when TopologyMember's primary is null 2024-02-09 10:43:50 +00:00
Justin Bertram 311e9382a2
NO-JIRA fix STOMP doc formatting 2024-02-08 11:28:10 -06:00