Commit Graph

763 Commits

Author SHA1 Message Date
Howard Gao cb8da54110 ARTEMIS-2716 Refactoring 2020-03-03 11:01:42 +00:00
Clebert Suconic 6a04a33e6e ARTEMIS-2637 Fixing checkstyle 2020-02-28 16:35:25 -05:00
Clebert Suconic ea3c592c82 ARTEMIS-2637 Adding additional logging and fixing checkstyle 2020-02-28 15:19:11 -05:00
Clebert Suconic 0cac669840 ARTEMIS-2637 Making UDP client discovery resilient
In case there is a hardware, firewal or any other thing making the UDP connection to go deaf
we will now reopen the connection in an attempt to go over possible issues.

This is also improving locking around DiscoveryGroup initial connection.
2020-02-28 11:54:27 -05:00
Clebert Suconic ddd8ed4402 ARTEMIS-1975 Real Large Message support into AMQP
This is a Large commit where I am refactoring largeMessage Body out of CoreMessage
which is now reused with AMQP.

I had also to fix Reference Counting to fix how Large Messages are Acked

And I also had to make sure Large Messages are transversing correctly when in cluster.
2020-02-25 15:25:01 +01:00
Justin Bertram d0758f34f6 ARTEMIS-2624 auto-create expiry resources 2020-02-20 17:44:56 -05:00
Justin Bertram b76f3b3a0d ARTEMIS-2587 auto-create dead-letter resources
This is a reimplementation of the IndividualDeadLetterQueueStrategy
from 5.x in a way that makes sense with the Artemis addressing model.
2020-02-20 17:44:56 -05:00
Christopher L. Shannon (cshannon) 3966e47338 ARTEMIS-2613: Add support for DivertBindings for federated addresses
This will allow federated addresses to create remote consumers based on
the existing of divert bindings and matching queue bindings
2020-02-17 12:15:18 -05:00
Justin Bertram 72429e1e49 ARTEMIS-2325 ack handler being invoked twice 2020-02-14 13:12:49 -05:00
Justin Bertram daae7e750a ARTEMIS-2619 allow disabling STOMP 'server' header 2020-02-12 19:38:38 -06:00
Francesco Nigro 5897909dc9 ARTEMIS-2617 use core pools to reduce GC on journal loading 2020-02-12 13:29:51 -05:00
Francesco Nigro 3282f105bb ARTEMIS-2604 Optimize journal loading
- Avoid some Properties Decoding, checking if we need certain properties like scheduled delivery
- Avoid creating some unnecessary SimpleString instances
- Removed some intermediate ActiveMQBuffer allocation
- Removed some intermediate UnreleasableByteBuf allocation
2020-02-05 11:13:53 -05:00
Sebastian Thomschke ba4e52ca40
NO-JIRA Fix compiler warning in FederationStreamConnectMessage v2
Second attempt to fix the following compiler warning that is reported in Travis builds, this time using the correct cast type `Class<?>[]` which prevents temporary object allocation because of var-args handling:

```java
/home/travis/build/apache/activemq-artemis/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/FederationStreamConnectMessage.java:151: warning: non-varargs call of varargs method with inexact argument type for last parameter;

         return (FederationPolicy) Class.forName(clazz).getConstructor(null).newInstance();

  cast to Class<?> for a varargs call
  cast to Class<?>[] for a non-varargs call and to suppress this warning
```
2020-02-03 19:22:04 +01:00
Francesco Nigro 09fe47884b Revert "NO-JIRA Fix compiler warning in FederationStreamConnectMessage"
This reverts commit 9fe17d40
2020-02-03 11:07:46 -05:00
Sebastian Thomschke 9fe17d4081
NO-JIRA Fix compiler warning in FederationStreamConnectMessage
This fixes the following compiler warning that is reported in Travis builds:

```
/home/travis/build/apache/activemq-artemis/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/FederationStreamConnectMessage.java:151: warning: non-varargs call of varargs method with inexact argument type for last parameter;

         return (FederationPolicy) Class.forName(clazz).getConstructor(null).newInstance();

  cast to Class<?> for a varargs call
  cast to Class<?>[] for a non-varargs call and to suppress this warning
```
2020-01-29 22:39:52 +01:00
Justin Bertram 97735ca72c [maven-release-plugin] prepare for next development iteration 2020-01-10 09:00:58 -06:00
Justin Bertram 25a947f6cb [maven-release-plugin] prepare release 2.11.0 2020-01-10 08:57:46 -06:00
Justin Bertram 9e9c0778b1 ARTEMIS-2516 support sys props in xinclude href 2020-01-09 14:04:09 -05:00
Justin Bertram 8d8eaebb65 ARTEMIS-2580 support pluggable SSL TrustManagerFactory 2019-12-19 17:53:52 -05:00
Howard Gao 044319da05 ARTEMIS-2560 Duplicate amqp messages over cluster
When AMQPMessages are redistributed from one node to
another, the internal property of message is not
cleaned up and this causes a message to be routed
to a same queue more than once, causing duplicated
messages.
2019-12-03 09:46:28 -05:00
Christopher L. Shannon (cshannon) fb54707e2d ARTEMIS-2549 - Add Downstream support to Federation
This commit introduces the ability to configure a downstream connection
for federation.  This works by sending information to the remote broker
and that broker will parse the message and create a new upstream back
to the original broker.
2019-11-20 08:47:16 -05:00
Justin Bertram 84067d8fef ARTEMIS-2504 implement retroactive addresses
A new feature to preserve messages sent to an address for queues that will be
created on the address in the future. This is essentially equivalent to the
"retroactive consumer" feature from 5.x. However, it's implemented in a way
that fits with the address model of Artemis.
2019-10-28 09:01:42 -04:00
Justin Bertram c0e77e96d1 ARTEMIS-2529 update address-settings mngmnt 2019-10-28 09:01:42 -04:00
brusdev 98746a20a1 ARTEMIS-2523 Deprecate the parameter failoverOnInitialConnection
The parameter failoverOnInitialConnection wouldn't seem to be used and
makes no sense any more, because the connectors are retried in a loop.
So someone can just add the backup in the initial connection.
2019-10-21 07:04:21 +02:00
Howard Gao a2504288c6 ARTEMIS-2500 CoreMessage doesn't make a ful copy of its props on moveHeadersAndProperties
When CoreMessage is doing copyHeadersAndProperties() it doesn't
make a full copy of its properties (a TypedProperties object).
It will cause problem when multiple threads/parties are modifying the
properties of the copied messages from the same message.

This will be particular bad if the message is a large message
where moveHeadersAndProperties is being used.
2019-09-23 20:06:41 -04:00
Clebert Suconic 91f4d0a633 [maven-release-plugin] prepare for next development iteration 2019-09-23 11:19:54 -04:00
Clebert Suconic 86a975fdad [maven-release-plugin] prepare release 2.10.1 2019-09-23 11:19:42 -04:00
Clebert Suconic 8b9819b2b6 NO-JIRA renaming method to reflect its real operation 2019-09-23 10:39:56 -04:00
Clebert Suconic 70c2200c54 ARTEMIS-2496 Revert catch up with zero-copy, as it's causing issues into some integration usage
Revert "ARTEMIS-2336 Use zero copy to replicate journal/page/large message file"

This reverts commit 85b93f0883.
2019-09-18 11:55:23 -04:00
Clebert Suconic d55ec37195 Revert "ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown"
This reverts commit 397cef699a.
2019-09-17 14:05:00 -04:00
Clebert Suconic 60b62940b9 ARTEMIS-2479 Initial connection will not work with infinite retry and multiple nodes 2019-09-10 15:02:27 -04:00
Andy Taylor 9a1a2b1369 ARTEMIS-2477 - create a less verbose and more descriptive warning when the native Netty jars are not present on the classpath
https://issues.apache.org/jira/browse/ARTEMIS-2477
2019-09-09 17:42:52 -04:00
Howard Gao 397cef699a ARTEMIS-2462 Allow store-forward queue to be deleted afte scaledown
After a node is scaled down to a target node, the sf queue in the
target node is not deleted.

Normally this is fine because may be reused when the scaled down
node is back up.

However in cloud environment many drainer pods can be created and
then shutdown in order to drain the messages to a live node (pod).
Each drainer pod will have a different node-id. Over time the sf
queues in the target broker node grows and those sf queues are
no longer reused.

Although use can use management API/console to manually delete
them, it would be nice to have an option to automatically delete
those sf queue/address resources after scale down.

In this PR it added a boolean configuration parameter called
cleanup-sf-queue to scale down policy so that if the parameter
is "true" the broker will send a message to the
target broker signalling that the SF queue is no longer
needed and should be deleted.

If the parameter is not defined (default) or is "false"
the scale down won't remove the sf queue.
2019-08-28 21:16:38 +08:00
Clebert Suconic 5016f69daa [maven-release-plugin] prepare for next development iteration 2019-08-26 10:42:13 -04:00
Clebert Suconic f092d5396a [maven-release-plugin] prepare release 2.10.0 2019-08-26 10:42:01 -04:00
Justin Bertram 51c2022f38 ARTEMIS-2457 implement ring queue 2019-08-25 23:29:44 -04:00
yang wei 448449c88e ARTEMIS-2368 Fix races on closing consumer 2019-08-19 16:49:06 +01:00
yang wei 76d420590f ARTEMIS-2399 Improve performance when there are a lot of subscribers 2019-08-19 16:43:44 +01:00
Clebert Suconic 205a1399e7 ARTEMIS-2440 Call timeout should retry the connection asynchronously 2019-08-05 12:12:33 -04:00
Clebert Suconic cd723aa528 ARTEMIS-2440 Connection.fail on sendBlock should be asynchronous
This is following up on ARTEMIS-2327.
2019-08-02 16:37:12 -04:00
Justin Bertram 8484c8a43b ARTEMIS-2389 add details to conn failure logging 2019-07-22 09:56:55 -04:00
Clebert Suconic 200b3e1033 NO-JIRA Simple test fixes 2019-07-19 17:51:04 -04:00
Clebert Suconic 2d7d714260 ARTEMIS-2428 Exposing timeout on configuration and changing it to 0 on the testsuite 2019-07-19 12:09:23 -04:00
Emmanuel Hugonnet 3aa3fa777f ARTEMIS-2401 Implement the Pause method for an Address
Adding support to pause an Address and all its bound queues.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-2401
2019-07-18 16:29:52 -04:00
yang wei 85b93f0883 ARTEMIS-2336 Use zero copy to replicate journal/page/large message file 2019-07-15 23:51:42 +01:00
Dmitry Volodin dbb3a90fe6 ARTEMIS-2322: Expose Queue.getRate() data as JMX metric 2019-07-15 16:34:31 -04:00
yang wei 665a69886e ARTEMIS-2350 Fix ClassNotFoundException while invoking ActiveMQServerControlImpl::listConsumers 2019-06-25 14:06:12 -05:00
Francesco Nigro bfe6b70c5a ARTEMIS-2374 JournalStorageManager::addBytesToLargeMessage leaks ByteBuffer 2019-06-10 15:52:58 +02:00
Clebert Suconic a7e5e6d074 NO-JIRA test improvements 2019-05-31 19:06:15 -04:00
Justin Bertram dbb2b54fa7 [maven-release-plugin] prepare for next development iteration 2019-05-29 22:02:00 -05:00
Justin Bertram 88c686cc99 [maven-release-plugin] prepare release 2.9.0 2019-05-29 21:59:18 -05:00
Justin Bertram 5768f6e2f3 ARTEMIS-2308 Support exporting metrics 2019-05-29 15:07:45 -04:00
Clebert Suconic 7fa1b13cc4 ARTEMIS-2360 Removing commented out code 2019-05-29 15:04:13 -04:00
Clebert Suconic b8a2580410 ARTEMIS-2360 IOOBE when dealing with older clients concurrently 2019-05-29 15:02:13 -04:00
Andy 959c38bd8d ARTEMIS-2352 - Add the ability to reject messages without a validated user set
https://issues.apache.org/jira/browse/ARTEMIS-2352
2019-05-29 09:42:38 -04:00
Clebert Suconic 2ae732cfc8 [maven-release-plugin] prepare for next development iteration 2019-05-16 09:58:27 -04:00
Clebert Suconic 481b9824a8 [maven-release-plugin] prepare release 2.8.1 2019-05-16 09:58:15 -04:00
Francesco Nigro 49836eca52 ARTEMIS-2321 PageCursorProviderImpl can use primitive maps 2019-05-13 10:24:17 -04:00
Clebert Suconic 408cd3745c ARTEMIS-2333 Applying proper fix on Stomp delivery
When connection is dead, the StompSession may deliver a message and if AUTO-ACK it would ack and lose the message
2019-05-08 18:16:23 -04:00
Clebert Suconic 7e8829bee4 ARTEMIS-2333 NettyConnection is not writeable if disconnected
This is fixing StompV12Test
2019-05-08 14:33:08 -04:00
Emmanuel Hugonnet ee7d5bd0f1 ARTEMIS-2319 Upgrading jboss-logging dependencies
* Upgrading versions
* Adding wildfly-common dependency as jboss-logmanager now depends on it
for simple common operations such as getting hostname or process id
* Updating bootclasspath with wildfly-common
2019-05-07 16:13:48 -04:00
Michael André Pearce b60c304c70 ARTEMIS-2327 ExceptionListener invoked when connection level exception
Add tests
Add fix - if timeout occurs on sending packet, calls same code that is invoked if timeout occurs on during ping aligning logic, and ensuring JMS connection exception listener gets invoked to inform the client logic to react.
2019-05-03 23:11:21 -04:00
Clebert Suconic 56152a9e7c [maven-release-plugin] prepare for next development iteration 2019-05-02 16:39:10 -04:00
Clebert Suconic a8e7f9d07a [maven-release-plugin] prepare release 2.8.0 2019-05-02 16:38:58 -04:00
Jiri Danek b33874488b ARTEMIS-2320 Assorted small code fixes, mostly from IntelliJ autofixes 2019-04-29 11:28:10 +01:00
Jiri Danek f7a36300ef ARTEMIS-2320 Fix IntLongMath errorprone warning
Expression of type int may overflow before being assigned to a long
    (see https://errorprone.info/bugpattern/IntLongMath)
2019-04-29 11:27:29 +01:00
Clebert Suconic 228f6af4ca [maven-release-plugin] prepare for next development iteration 2019-04-25 16:52:09 -04:00
Clebert Suconic 09d2ba18a7 [maven-release-plugin] prepare release 2.8.0 2019-04-25 16:51:57 -04:00
Justin Bertram 73bdbad8b4 ARTEMIS-2310 support system prop sub in xincludes
Historically the broker has read the XML configuration file as a String,
substituted system properties, and then parsed that String into an XML
document. However, this method won't substitute system properties in the
files which are imported via xinclude. In order to substitue system
properties in xincluded files the substitution needs to be performed
after the file is parsed into an XML document. This commit implements
that change and refactors the XMLUtil class a bit to eliminate redundant
code, obsolete comments, etc.
2019-04-25 10:51:12 -04:00
Clebert Suconic 15a335df01 ARTEMIS-2318 HornetQ Protocol Manager should copy the messages before replacing message properties 2019-04-24 16:27:32 -04:00
Clebert Suconic 1e35175a4d ARTEMIS-2311 Dealing with Protocol conversions and JMSReplyTo 2019-04-22 21:45:24 -04:00
Justin Bertram 755fa0c3a6 ARTEMIS-2315 ClientSession.createQueue routing-type bug 2019-04-22 16:58:40 -04:00
Clebert Suconic 33d6721ffc ARTEMIS-2314 Improving Test and compatibility check on FQQN 2019-04-22 16:34:15 -04:00
Michael André Pearce 18bcd21c3e ARTEMIS-2306 Make group first off by default, unless configured 2019-04-17 16:25:42 -04:00
Michael André Pearce 98b3177e6e ARTEMIS-2306 Make key used for group first for consumer configurable
Add tests
Add implementation details
2019-04-16 15:43:16 -04:00
Michael André Pearce 05628ce92e ARTEMIS-2306 Support ActiveMQ5 feature JMSXGroupFirstForConsumer
Implement using the ActiveMQ5 JMSXGroupFirstForConsumer, property as default, but make it possible for future to make it configurable easily. (Not this PR)
Add test
2019-04-16 15:43:16 -04:00
Michael André Pearce ed9270fc79 NO-JIRA Fix small ActiveMQServerControl api break with 2.6.4
In adding auto-delete queue level feature, its been noticed as some feature bits were added during hot fix branch, that there's api break with the 2.6.x hotfix branch.

This addresses that by fixing this in 2.7.x
2019-04-16 14:30:33 +01:00
Clebert Suconic da4f95cf71 ARTEMIS-2305 ACK counters to only increment after commit
Also including a new metric for ack attempts that will keep the former semantic.
2019-04-12 14:34:51 -04:00
Michael André Pearce e7bdc58c49 ARTEMIS-2301 Minor change on Epoll and kQueue.isAvailable
small fix to logging
2019-04-12 11:51:59 +01:00
Clebert Suconic cf2540ebb1 ARTEMIS-2301 Minor change on Epoll and kQueue.isAvailable
just checking for NoClassDefFound and return false
2019-04-11 18:06:50 -04:00
Clebert Suconic 720f60ace2 ARTEMIS-2297 Avoiding Split Brains during replication catch up when no quorum is established 2019-04-10 07:52:08 -04:00
Michael André Pearce 369c429d8a ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue
Adjust auto-delete defaults based on if queue autocreated
2019-04-02 19:06:08 +01:00
Clebert Suconic 516b1a1b9f [maven-release-plugin] prepare for next development iteration 2019-03-14 12:41:04 -04:00
Clebert Suconic c3eb6c12ad [maven-release-plugin] prepare release 2.7.0 2019-03-14 12:40:52 -04:00
yang wei 59c966902c ARTEMIS-2257 Synchronize SharedEventLoopGroup shutdownGracefully 2019-03-14 12:09:52 -04:00
onlyMIT 4484d05cf0 ARTEMIS-2226 last consumer connection should close the previous consumer connection
Multiple consumers using the same clientId in the cluster, the last consumer connection should close the previous consumer connection!

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address apache-rat-plugin:0.12:check

ARTEMIS-2226 last consumer connection should close the previous consumer connection

to address checkstyle

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

adjust the code structure

ARTEMIS-2226 last consumer connection should close the previous consumer connection

add javadoc
2019-03-12 19:57:31 +00:00
yang wei c1dcd4bec9 ARTEMIS-2259 Client session not exist if reattach on new connection timeout 2019-03-12 15:54:56 -04:00
Keith Wall 95bcfaeb70 ARTEMIS-2262: Correlate management response messages with the request 2019-03-08 12:11:58 -05:00
Michael André Pearce 4a5af776d8 ARTEMIS-2265 Support Federated Queues and Addresses
Implement Federated Queue (builds on recent consumer priority)
Implement Federated Address (builds on recent queue level auto-delete)
Add Functional Tests
Add Failure Tests (remote and local shutdowns)
Add Documentation
2019-03-07 14:37:00 -05:00
Michael André Pearce 9b01e9521c ARTEMIS-2263 Support queue level auto-delete configuration
Add ability to configure when creating auto created queues at the queue level
Add support for configuring message count check
Add test cases
Update docs
2019-02-27 08:13:19 +00:00
Clebert Suconic da3d7a2940 ARTEMIS-2243 Fixing ClassLoding and dependency to security domain on method parameter 2019-02-25 20:12:20 -05:00
Michael André Pearce c4e68b6046 ARTEMIS-2118 Enhanced Message Groups Support
Support using group buckets on a queue for better local group scaling
Support disabling message groups on a queue
Support rebalancing groups when a consumer is added.
2019-02-21 19:58:34 -05:00
Otavio R. Piske 6d65975f36 NO-JIRA Removes redundant initializers 2019-02-20 17:11:41 -05:00
Otavio R. Piske 69582ef642 NO-JIRA Inline some variables to simplify the code flow 2019-02-20 17:11:36 -05:00
Otavio R. Piske d2bf02082f NO-JIRA Simplify the assignment of the initialConnectors 2019-02-20 17:11:22 -05:00
Otavio R. Piske 3dce4e645a NO-JIRA Remove unnecessary semicolon 2019-02-20 17:11:06 -05:00
Otavio R. Piske eb582a676f NO-JIRA Remove redundant modifiers 2019-02-20 17:11:00 -05:00
Clebert Suconic d59bdca73f ARTEMIS-2256 Update Topology back after a bridge reconnected
https://issues.apache.org/jira/browse/ARTEMIS-2256
2019-02-19 16:10:40 -05:00
Clebert Suconic d2df7b7e85 ARTEMIS-2246 Setting the max-disk-usage as 100 on the testsuite
This is to avoid issues with CI and Dev Machiens, while still preserving
a sensible default for production systems.
2019-02-07 15:07:49 -05:00
Justin Bertram a38cdfa811 ARTEMIS-2246 clarify docs for defaults; change max-disk-usage default 2019-02-07 11:13:04 -05:00