Commit Graph

1838 Commits

Author SHA1 Message Date
Bernd Gutjahr 100d070942 ARTEMIS-2878 Add numberOfPages as metric
Added metric 'number.of.pages' to provide numberOfPages for an address.
2020-09-16 09:16:55 -05:00
Justin Bertram 9a90248f49 ARTEMIS-2889 better support for JMS topics with legacy LDAP plugin 2020-09-16 10:14:57 -04:00
Justin Bertram e47eb5ae20 ARTEMIS-589 flow control for individual STOMP subscribers 2020-09-16 10:13:47 -04:00
Justin Bertram 276a8bb029 ARTEMIS-2893 concurrent user admin actions can corrupt properties
When performing concurrent user admin actions (e.g. resetUser, addUser,
removeUser on ActiveMQServerControl) when using the
PropertiesLoginModule with reload=true the underlying user and role
properties files can get corrupted.

This commit fixes the issue via the following changes:
 - Add synchronization to the management commands
 - Add concurrency controls to underlying file access
 - Change CLI user commands to use remote methods instead of modifying
   the files directly. This avoids potential concurrent changes. This
   change forced me to modify the names of some of the commands'
   parameters to disambiguate them from connection-related parameters.
2020-09-16 10:11:23 -04:00
Justin Bertram 6be8966164 ARTEMIS-2901 support namespace for temporary queues 2020-09-16 10:10:28 -04:00
Howard Gao fe5b81fd55 ARTEMIS-2854 Non-durable subscribers stop receiving after failover
In a cluster scenario where non durable subscribers fail over to
backup while another live node forwarding messages to it,
there is a chance that the the live node keeps the old remote
binding for the subs and messages go to those
old remote bindings will result in "binding not found".
2020-09-16 10:03:36 -04:00
Andy Taylor c29a8cda5c ARTEMIS-2902 - expose at queue control messages held in a prepared tx
https://issues.apache.org/jira/browse/ARTEMIS-2902
2020-09-15 11:08:59 -04:00
Clebert Suconic 27c7385315 NO-JIRA using correct queue on RefOperation::rollback and remove TODO
this does not represent an issue as there are no semantic changes here.
I am doing this for correctness
2020-09-15 08:15:07 -04:00
Clebert Suconic 7cf5289efa ARTEMIS-2900 Expose property (getWholeMessageSize) so users can intercept size of messages and large messages 2020-09-14 15:35:46 -04:00
Justin Bertram cf92c16339 ARTEMIS-2886 put address/FQQN into new security manager interface
The default JAAS security manager doesn't need the address/FQQN for
authorization, but I'm putting it back into the interface because there
are other use cases which *do* need it.
2020-09-14 15:35:24 -04:00
gtully ec1c5a96c7 ARTEMIS-2895 - ensure propagated credentials are visible for bind and removed for subsequent mapping operations 2020-09-07 16:32:57 +01:00
Justin Bertram f5a6189e2d ARTEMIS-2890 FQQN security-settings + JMS not working 2020-09-03 16:52:51 -04:00
Luis De Bello 5087471ed3 ARTEMIS-2696 Releasing ByteBuf after reading content on WebSocket 2020-09-03 16:05:27 -04:00
Clebert Suconic c3887ed710 ARTEMIS-2887 Adding back Message.toString on audit logger 2020-08-26 21:48:30 -04:00
Justin Bertram 90853409a0 ARTEMIS-2886 optimize security auth
Both authentication and authorization will hit the underlying security
repository (e.g. files, LDAP, etc.). For example, creating a JMS
connection and a consumer will result in 2 hits with the *same*
authentication request. This can cause unwanted (and unnecessary)
resource utilization, especially in the case of networked configuration
like LDAP.

There is already a rudimentary cache for authorization, but it is
cleared *totally* every 10 seconds by default (controlled via the
security-invalidation-interval setting), and it must be populated
initially which still results in duplicate auth requests.

This commit optimizes authentication and authorization via the following
changes:

 - Replace our home-grown cache with Google Guava's cache. This provides
simple caching with both time-based and size-based LRU eviction. See more
at https://github.com/google/guava/wiki/CachesExplained. I also thought
about using Caffeine, but we already have a dependency on Guava and the
cache implementions look to be negligibly different for this use-case.
 - Add caching for authentication. Both successful and unsuccessful
authentication attempts will be cached to spare the underlying security
repository as much as possible. Authenticated Subjects will be cached
and re-used whenever possible.
 - Authorization will used Subjects cached during authentication. If the
required Subject is not in the cache it will be fetched from the
underlying security repo.
 - Caching can be disabled by setting the security-invalidation-interval
to 0.
 - Cache sizes are configurable.
 - Management operations exist to inspect cache sizes at runtime.
2020-08-26 13:36:24 -05:00
Domenico Francesco Bruscino 32bf9680f2 [maven-release-plugin] prepare for next development iteration 2020-08-24 16:03:24 +02:00
Domenico Francesco Bruscino a549fcedde [maven-release-plugin] prepare release 2.15.0 2020-08-24 16:03:12 +02:00
Justin Bertram d86067a65b ARTEMIS-2872 support FQQN syntax for security-settings 2020-08-22 18:24:40 -05:00
Michael Pearce 2c506cc52a [ARTEMIS-2863] Add support to pause dispatch when group rebalance
Add test case
Add implementation
Add docs
2020-08-19 12:04:50 -04:00
franz1981 40f20cfe6a ARTEMIS-2877 Fix journal replication scalability
This is allowing journal appends to happen in burst
during replication, by batching replication response
into the network at the end of the append burst.
2020-08-17 13:01:41 -04:00
Justin Bertram fa5b56ef1d ARTEMIS-2881 deadlock when destroying q and depaging
I couldn't reproduce this with a test, but static code analysis led me
to this solution which is similar to the fix done for ARTEMIS-2592 via
e397a17796.
2020-08-17 10:34:20 -05:00
Clebert Suconic c551df770c ARTEMIS-2868 Protect Topology Updates from Split Brain on broker shutdown as well 2020-08-07 12:39:20 -04:00
Clebert Suconic 27cb9b37b1 ARTEMIS-2868 Protect Topology Updates from Split Brain 2020-08-06 17:40:57 -04:00
Clebert Suconic 9842f45a49 ARTEMIS-2867 Do not cache IPs on DNS Entries for NetworkHealthCheck
In case of a DNS outage, the pinger should still fail
If we cache the InetAddress this would not be possible
2020-08-06 17:40:41 -04:00
Michael Pearce 486896d99e ARTEMIS-2873 Config-managed queues are auto-deleted
auto-delete-queues and auto-delete-created-queues should only apply to
NON configuration managed queues.
2020-08-06 15:19:57 -05:00
Justin Bertram 8473946646 ARTEMIS-2865 LegacyLDAPSecuritySettingPlugin can change default security match 2020-08-06 15:36:05 -04:00
Justin Bertram 1ae8069864 ARTEMIS-2869 JDBC XML conf can't use custom pwd codec 2020-08-04 17:05:19 -05:00
Francesco Nigro 60e25b763c ARTEMIS-2844 Improve binding query performance by reusing AddressImpl instances 2020-07-30 23:32:10 -04:00
Justin Bertram 4c79b25dc2 ARTEMIS-2840 missing AddressControl audit logging 2020-07-30 12:01:25 -04:00
Clebert Suconic c00b210629 ARTEMIS-2858 DNS Tests on reconnects and backups
There are no fixes as part of this test addition.  As I wrote this test as I was debugging DNS issues.
2020-07-29 17:56:55 -04:00
Clebert Suconic 3d86d78828 ARTEMIS-2587 Exposing ActiveMQServer::isActivate through management at ActiveMQServerControl 2020-07-29 11:41:41 -04:00
brusdev 18b8df0f09 ARTEMIS-2855 Define a new broker plugin to track XA transactions 2020-07-29 10:40:55 -04:00
Justin Bertram cd7f52d4ba ARTEMIS-2856 consumer can be created on closed session
Due to a lack of concurrency protections it's possible to create a
consumer on a closed session. I've not been able to reproduce this with
a test, but I've seen it in the wild. Static code analysis points to a
need for better concurrency controls around closing the session and
creating consumers.
2020-07-29 10:40:33 -04:00
franz1981 f2d0d300f5 ARTEMIS-2853 page-max-concurrent-io cannot be disabled 2020-07-24 14:35:08 +02:00
Clebert Suconic ccc0fa7100 ARTEMIS-2843 non-destructive LVQ not delivering msg to consumer 2020-07-20 12:01:23 -04:00
Clebert Suconic 6690ba1d24 [maven-release-plugin] prepare for next development iteration 2020-07-09 12:49:08 -04:00
Clebert Suconic a76f41a7ed [maven-release-plugin] prepare release 2.14.0 2020-07-09 12:48:54 -04:00
Howard Gao 8c25daee98 ARTEMIS-2835 Porting HORNETQ-1575 and HORNETQ-1578
2 of 2) - Porting of HORNETQ-1578

Exceptions are swallowed, making it hard to diagnose issues
2020-07-08 11:27:36 -04:00
Clebert Suconic 61d2f58aab ARTEMIS-2828 Fixing ManagementServiceImplTest 2020-07-07 21:35:06 -04:00
Clebert Suconic a7aafc0ab4 NO-JIRA small tweak on ActiveMQTestBase 2020-07-07 15:26:35 -04:00
Clebert Suconic 832bd85941 ARTEMIS-2828 Fixing tests after main change on ManagementServiceImpl
This is almost a NO-JIRA, but since I'm fixing ManagementServiceImplTest.testGetResources broken after this
I'm commiting this change associated with ARTEMIS-2828
2020-07-07 12:22:38 -04:00
Justin Bertram f5d5710133 ARTEMIS-2834 leaking meters
Move all of the meter registration code into the ManagementServer
implementation to provide better life-cycle management.
2020-07-07 08:18:28 -04:00
Justin Bertram fd207e75b0 ARTEMIS-2829 wrong return type for getDiskStoreUsage
Since getDiskStoreUsage on the ActiveMQServerControl is converting a
double to a long the value is always 0 in the management API. It should
return a double instead.
2020-07-07 08:18:28 -04:00
Justin Bertram cb7cd729d7 ARTEMIS-2828 add addressSize metric
Adding this metric required moving the meter registration code from the
AddressInfo class to the ManagementService in order to get clean access
to both the AddressInfo and AddressControl classes.
2020-07-07 08:18:28 -04:00
Justin Bertram ac8ffedf66 ARTEMIS-2827 add addressMemoryUsagePercentage as metric 2020-07-07 08:18:28 -04:00
Justin Bertram 26091f1907 ARTEMIS-2825 wrong calc for DiskStoreUsagePercentage
The calculation used by
ActiveMQServerControlImpl.getDiskStoreUsagePercentage() is incorrect. It
uses disk space info with global-max-size which is for address memory.
Also, the existing getDiskStoreUsage() method *already* returns a
percentage of total disk store usage so this method seems redundant.
2020-07-07 08:18:28 -04:00
Clebert Suconic 3f99c4b846 ARTEMIS-2797 Fixing updateQueue on filter / fixing ActiveMQServerControlTest 2020-07-06 21:45:27 -04:00
Jan Šmucr 6cc370e169 ARTEMIS-2797 Fixing redeploy mechanism
Queue settings are reset to their default values upon broker.xml reload ONLY.
Regular calls to PostOfficeImpl#updateQueue are no longer affected.
2020-07-06 15:02:03 -04:00
brusdev d02f5db9b8 ARTEMIS-2833 Fix metrics configuration backwards compatibility 2020-07-01 08:35:17 -04:00
Clebert Suconic 257d353896 ARTEMIS-2797 Logging redeployment errors and speeding RedeployTest 2020-07-01 08:33:01 -04:00
Clebert Suconic 562bb965ae ARTEMIS-2797 Fixing user update Null
UpdateQueueTest::testUpdateQueueWithFilter was broken.
2020-06-29 22:58:35 -04:00
Clebert Suconic f79a4be4c1 ARTEMIS-2831 Avoiding StackOverFlowException when setDLAOnNoRoute(true) 2020-06-29 16:50:00 -04:00
Clebert Suconic 51d1ed4e11 ARTEMIS-2819 Proper fix (previous fix was breaking the testsuite) 2020-06-29 15:37:55 -04:00
Jan Šmucr 85e07a8afe ARTEMIS-2820 Undeploy diverts by removing them from broker.xml 2020-06-24 22:01:56 +01:00
qihongxu e6343b604e ARTEMIS-2806 deployQueue missing address argument 2020-06-24 14:35:07 -05:00
Bas Elzinga 5621c403ad ARTEMIS-2821 Stop the timeout future when channel is closed 2020-06-24 13:33:30 -05:00
Keith Wall efb1bd3f9f ARTEMIS-2819 exact match address setting removal ineffective 2020-06-24 12:54:05 -05:00
Jan Šmucr 5070e7a72c ARTEMIS-2797 - Reset queue properties by unsetting them in broker.xml
Now it is possible to reset queue parameters to their defaults by removing them
from broker.xml and redeploying the configuration.

Originally this PR covered the "filter" parameter only.
2020-06-23 11:20:03 +02:00
Havret 3e394b45e9 ARTEMIS-2815: Fix null pointer exception on attempt to update queue without filter 2020-06-23 09:36:45 +01:00
Justin Bertram 0908cac668 ARTEMIS-2810 support all address-settings via mgmnt 2020-06-18 09:15:53 -04:00
Robbie Gemmell 0f72455349 ARTEMIS-2109: add StaticQualifiedUsingExpression check in place of older removed StaticAccessedFromInstance, and fix error. 2020-06-17 16:31:09 -04:00
Justin Bertram 79e05774b8 ARTEMIS-2807 avoid notifications on critical IO error 2020-06-17 13:52:36 -04:00
Justin Bertram 9d4ec41935 ARTEMIS-2803 fix semantic change 2020-06-15 14:20:35 -04:00
Justin Bertram 51ecab5141 ARTEMIS-2803 avoid NPE w/o cluster-connection 2020-06-15 09:28:43 -04:00
Robbie Gemmell d2c46762e8 ARTEMIS-2109: fix javadoc errors, remove doclint config for JDK8, remove superfluous plugin versions, update to 3.0.1 javadoc plugin
Using 3.0.1 like the current apache parent pom [not being used], and also as newer ones break build.
2020-06-11 18:50:01 +01:00
Emmanuel Hugonnet efe0f468de ARTEMIS-2109: Updating the build to be able to execute it on Java 11 and Java 8. 2020-06-11 18:50:01 +01:00
Michael Pearce 99f6c7bf20 ARTEMIS-2787 - Add ability to disable and enable a queue
Add feature
Add tests
Add docs
Add missing bits noticed in ring-size
Address comments
2020-06-08 18:02:48 -04:00
Francesco Nigro 65c4c45fc2 ARTEMIS-2793 quorum logging implies it happens when single pair 2020-06-05 09:16:41 +02:00
Justin Bertram 7096bc187a ARTEMIS-2649 always over-write ORIG message props
ORIG message propertes like _AMQ_ORIG_ADDRESS are added to messages
during various broker operations (e.g. diverting a message, expiring a
message, etc.). However, if multiple operations try to set these
properties on the same message (e.g. administratively moving a message
which eventually gets sent to a dead-letter address) then important
details can be lost. This is particularly problematic when using
auto-created dead-letter or expiry resources which use filters based on
_AMQ_ORIG_ADDRESS and can lead to message loss.

This commit simply over-writes the existing ORIG properties rather than
preserving them so that the most recent information is available.
2020-06-01 15:19:34 -04:00
Justin Bertram 0443128b81 ARTEMIS-2783 user not set on shared queue 2020-05-28 16:38:26 -04:00
Clebert Suconic 39b3dd1044 ARTEMIS-2781 Adding getAllQueueNames; fixing tests 2020-05-28 16:36:59 -04:00
brusdev a7df87adf9 ARTEMIS-2778 AcceptorControl returns only transport parameters
Fix AcceptorControl to return all acceptor parameters.
2020-05-28 14:01:00 -05:00
Clebert Suconic 2fbd801e78 NO-JIRA Fixing intermittent failure on PagingReceiveTest 2020-05-28 13:38:42 -04:00
Clebert Suconic 06276ff26f NO-JIRA Fixing intermittent failure on PagingReceiveTest 2020-05-28 12:41:19 -04:00
brusdev 9a7620fd71 ARTEMIS-2770 Update diverts using the management API 2020-05-26 20:31:19 -04:00
Justin Bertram fd11a1e079 ARTEMIS-2781 return only local queue names for AddressControl.getQueueNames() 2020-05-26 17:30:38 -05:00
brusdev 3bcea4e78e ARTEMIS-2774 Remove the divert transformer on divert destroying 2020-05-21 16:27:54 -04:00
Justin Bertram 4b7b612eb9 ARTEMIS-2771 support JVM GC & thread metrics 2020-05-20 15:53:15 -04:00
Clebert Suconic faa83b2ba6 [maven-release-plugin] prepare for next development iteration 2020-05-16 18:38:47 -04:00
Clebert Suconic 5f49d89264 [maven-release-plugin] prepare release 2.13.0 2020-05-16 18:38:34 -04:00
Clebert Suconic 55582772f9 ARTEMIS-2767 Perf Improvement. Routing = null should still reuse context 2020-05-16 11:39:15 -04:00
Clebert Suconic c99fcd501b [maven-release-plugin] prepare for next development iteration 2020-05-15 16:42:54 -04:00
Clebert Suconic 47fafac760 [maven-release-plugin] prepare release 2.13.0 2020-05-15 16:42:41 -04:00
Emmanuel Hugonnet a88815d9b3 [ARTEMIS-2704]: Provide a SPI to manage and cache SSLContext.
* Adding a new SPI to allow for SSLContext reuse accross the broker.
 * Providing a default behaviour similar to the existing one.

[ARTEMIS-2718]: Take advantage of ARTEMIS-2704 to cache SSLContexts.
* Adding a cache for SSLContexts and reusing them accross acceptors and
  connectors.

Issue: https://issues.apache.org/jira/browse/ARTEMIS-2704
Issue: https://issues.apache.org/jira/browse/ARTEMIS-2718
2020-05-15 16:19:50 -04:00
Justin Bertram 3bd0d8bf38 ARTEMIS-2758 support disabling metrics per address 2020-05-14 15:16:23 -04:00
brusdev be41019b50 ARTEMIS-2760 Filter AddressQueueReaper misleading error messages 2020-05-13 15:01:25 -05:00
Clebert Suconic 4fe4220ff0 ARTEMIS-2372 / ARTEMIS-2740 Improving Message Annotations support in AMQP
- when sending messages to DLQ or Expiry we now use x-opt legal names
- we now support filtering thorugh annotations if using m. as a prefix.
- enabling hyphenated_props: to allow m. as a prefix
2020-05-13 10:55:36 -04:00
Christopher L. Shannon (cshannon) 80ce96768e ARTEMIS-2752: Properly cleanup Federated Address Divert consumers
DivertBindings are now properly cleaned up when a queue binding is
removed that matches the divert. The correct key is now used to remove
the queue address from the set and the correct address is now used to
remove the remote consumer.
2020-05-11 14:56:24 -04:00
Andy Taylor 5737f965d2 ARTEMIS-2749 - Broadcast Group Control Improvements
added some default behaviour for when overridden

https://issues.apache.org/jira/browse/ARTEMIS-2749
2020-05-11 10:28:19 -05:00
Clebert Suconic 7438d7ff07 ARTEMIS-2750 Fixing out of order cancellations in AMQP 2020-05-04 13:15:56 -04:00
Andy Taylor 2ab381565c ARTEMIS-2749 - Broadcast Group Control Improvements
https://issues.apache.org/jira/browse/ARTEMIS-2749
2020-05-04 16:20:08 +01:00
Andy Taylor 8a04ee07de ARTEMIS-2648 - audit logging improvements
https://issues.apache.org/jira/browse/ARTEMIS-2648
2020-05-04 15:19:08 +01:00
Justin Bertram 0b155cf5ea ARTEMIS-2666 mngmnt for duplicate ID cache 2020-05-01 13:13:45 -05:00
Justin Bertram ea09a0fd39 ARTEMIS-2638 retro resources created recursively w/# match 2020-05-01 11:56:02 -05:00
Justin Bertram d53b2bcef6 ARTEMIS-2745 queue registering wrong metrics 2020-04-30 14:53:36 -05:00
Clebert Suconic 4c28297685 ARTEMIS-2741 Passing call timeout to cluster connection bridge
This one should improve eventual failures on ClusterConnectionControlTest
to validate this, run ClusterConnectionControlTest::testNotifications in a loop

you will see eventually the test taking longer to shutdown the executor as the call could be blocked.
2020-04-28 22:56:21 -04:00
Clebert Suconic 54c4611229 NO-JIRA test output cleanup 2020-04-28 21:48:21 -04:00
Justin Bertram 6709883d0e ARTEMIS-2738 implement per-acceptor security domains 2020-04-28 21:45:38 -04:00
Clebert Suconic 2ebf3c8e1b ARTEMIS-2372 Filtering on Message Annotations 2020-04-28 11:18:30 -04:00
Francesco Nigro 0abb06322c ARTEMIS-2717 Isolate the current Quorum Vote implementation 2020-04-23 18:24:11 -04:00
Justin Bertram 4b97e06890 ARTEMIS-2726 implement min/max expiry-delay 2020-04-23 17:56:51 -04:00
Clebert Suconic 3541ebf218 ARTEMIS-2732 Cleanup on testsuite logging 2020-04-22 23:08:46 -04:00
Clebert Suconic 11a3e810bb [maven-release-plugin] prepare for next development iteration 2020-04-21 17:06:21 -04:00
Clebert Suconic 30272e0c2f [maven-release-plugin] prepare release 2.12.0 2020-04-21 17:06:08 -04:00
Clebert Suconic 974609d206 ARTEMIS-2728 Fixing Deadlock with LargeServerMessage
verified by LargeMessageTest::testTwoBindingsAndRestart
2020-04-20 14:40:46 -04:00
brusdev 1d8e9f7fff ARTEMIS-2724 The setting auto-delete-created-queues doesn't work
Set the default auto-delete for created queues.
2020-04-20 14:16:37 -04:00
Clebert Suconic d81c0f44eb NO-JIRA Fixing intermittent failures 2020-04-20 11:38:03 -04:00
Clebert Suconic a000164169 ARTEMIS-2721 Activation keeps retrying even after server.stop()
This won't be an issue on a real server (Production system)

however, on the testsuite or while embedded this could cause issues,
if a same instance is stopped then started.

This is the reason why BackupAuthenticationTest was intermittently failing.

I also adapted the test since I would need to stop the server and reactivate it in order to change the configuration.
The previous test wasn't acting like a real server.
2020-04-17 18:26:22 -04:00
Clebert Suconic 45a4f6fc39 ARTEMIS-2720 Additional test
I wrote a small / quick test while I was testing the PR #3089
and I decided to keep it with the PR
2020-04-17 16:33:04 -04:00
Justin Bertram 6441068b95 ARTEMIS-2720 optimize match searching 2020-04-17 16:31:52 -04:00
Justin Bertram c841b84b3e ARTEMIS-2720 optimize cache clearing 2020-04-17 16:31:52 -04:00
Clebert Suconic d231e2ac63 [maven-release-plugin] prepare for next development iteration 2020-04-16 16:16:41 -04:00
Clebert Suconic 9636f4a3b0 [maven-release-plugin] prepare release 2.12.0 2020-04-16 16:16:28 -04:00
Clebert Suconic d9aacec8bb ARTEMIS-1975 Fixing Typo on QueueImpl::errorProcessing 2020-04-16 10:52:45 -04:00
Justin Bertram 410a552894 ARTEMIS-2711 use peer host:port for acceptor SSL engine 2020-04-16 10:32:54 -04:00
Clebert Suconic ad60a0b02b ARTEMIS-1975 Dealing with connection drops on AMQP Large Message 2020-04-15 22:26:58 -04:00
Francesco Nigro 46060b89ff ARTEMIS-2676 PageCursorProviderImpl::cleanup can save decoding pages without large messages 2020-04-15 22:20:50 -04:00
Francesco Nigro 5a829ff1f4 ARTEMIS-2713 Master failback can trigger a useless quorum vote on slave failover 2020-04-15 21:56:34 -04:00
Francesco Nigro e4c5ea719f ARTEMIS-2713 Added ReplicatedMultipleFailbackTest 2020-04-15 21:56:34 -04:00
Justin Bertram f0b4afa672 ARTEMIS-2714 log details for 'Address already in use'
Currently when the broker hits the common 'Address already in use' issue
when starting the process terminates with a vague exception. The user is
left to guess which acceptor actually failed. If the broker has lots of
acceptors it is a tedious process to identify the problematic
configuration. This commit adds details to the exception message about
which acceptor failed and which host:port it was attempting to bind to.
2020-04-15 15:48:59 -04:00
Justin Bertram 40a6bab898 ARTEMIS-2708 JDK bug causes missed props reload 2020-04-13 16:02:35 -04:00
Justin Bertram 701b4e4794 ARTEMIS-2692 refactor queue creation
This commit changes all tests to use the new methods.
2020-04-13 14:25:30 -05:00
Justin Bertram 2efa44daf5 ARTEMIS-2692 refactor queue creation
This commit does the following:
- Deprecates existing overloaded createQueue, createSharedQueue,
  createTemporaryQueue, & updateQueue methods for ClientSession,
  ServerSession, ActiveMQServer, & ActiveMQServerControl where
  applicable.
- Deprecates QueueAttributes, QueueConfig, & CoreQueueConfiguration.
- Deprecates existing overloaded constructors for QueueImpl.
- Implements QueueConfiguration with JavaDoc to be the single,
  centralized configuration object for both client-side and broker-side
  queue creation including methods to convert to & from JSON for use in
  the management API.
- Implements new createQueue, createSharedQueue & updateQueue methods
  with JavaDoc for ClientSession, ServerSession, ActiveMQServer, &
  ActiveMQServerControl as well as a new constructor for QueueImpl all
  using the new QueueConfiguration object.
- Changes all internal broker code to use the new methods.
2020-04-13 14:25:30 -05:00
Clebert Suconic 679bc1a3a0 ARTEMIS-2698 Fixing Typos on exposed group properties 2020-04-08 16:00:26 -04:00
brusdev 5f5c47e8a5 ARTEMIS-2693 Improve log of starting acceptor errors
Add the log of starting acceptor errors to simplify the detection of the
failing acceptor in case of multiple acceptors.
2020-04-08 15:44:26 -04:00
brusdev 24c0601519 ARTEMIS-2684 NullPointer exception when slave tries to scale down
Check the parentServer before to access to its configuration and storageManager.
2020-04-08 15:42:26 -04:00
brusdev 0f200a4798 ARTEMIS-2698 Expose queue group attributes 2020-04-08 12:53:56 -04:00
Francesco Nigro 124ed872a6 ARTEMIS-2702 QuorumVoteServerConnect with requestToStayLive is voting order sensitive 2020-04-08 12:53:03 -04:00
Clebert Suconic af796d5ce4 ARTEMIS-2701 Improving DLQ/check over previously removed records 2020-04-06 12:25:35 -04:00
brusdev 38a79be314 ARTEMIS-2691 Improve critical analyzer LOG policy
Reset the critical component timer after the expiration to allow further LOG
actions after the first expiration.
2020-04-04 18:19:46 -04:00
Clebert Suconic 4e1840dce2 NO-JIRA Fixing PagingStore not initialized exception during shutdown 2020-04-03 10:41:27 -04:00
Atri Sharma 505b3b0fdc ARTEMIS-2636: Add Disk Store Usage Metrics
ARTEMIS-2688: Check Arguments In FileStoreMonitor.calculateUsage
2020-04-02 11:04:42 -04:00
Francesco Nigro 493ce497c7 ARTEMIS-1975 Fix AMQP paged large message usage counter 2020-04-01 17:46:26 -04:00
Atri Sharma 405eb969c1 ARTEMIS-2636: Introduce Disk Usage Metrics
ARTEMIS-2636: This commit introduces metrics to publish the amount of disk used currently
2020-03-30 22:27:58 -04:00
Justin Bertram 59e07c9780 ARTEMIS-2681 timestamp not set on notif msgs 2020-03-27 15:42:26 -04:00
Clebert Suconic ddb67ccdb1 ARTEMIS-1975 Fixing deadlock after error processing 2020-03-26 16:07:18 -04:00
Clebert Suconic ca50b3449e ARTEMIS-1975 Removing ThreadLocal for StorageManager 2020-03-25 21:54:46 -04:00
Justin Bertram fdfe3ba3fa ARTEMIS-2679 deprecate message-expiry-thread-priority
Due to the changes in 6b5fff40cb the
config parameter message-expiry-thread-priority is no longer needed. The
code now uses a ScheduledExecutorService and a thread pool rather than
dedicating a thread 100% to the expiry scanner. The pool's size can be
controlled via scheduled-thread-pool-max-size.
2020-03-25 16:43:38 -04:00
Justin Bertram d0afa6a7e6 NO-JIRA remove stale notification property
This appears to have been added to the code-base by mistake over 10
years ago. It seems related to debugging and I can't see anywhere where
it is actually used so I'm removing it.
2020-03-25 16:40:53 -04:00
Clebert Suconic a4489a322e ARTEMIS-1975 Moving encode cache towards AMQPLargeMessage
Using a property on AMQPLargeMessage instead of a ThreadLocal
This was causing issues on the journal as the message may transverse different threads on the journal.
2020-03-24 18:22:59 -04:00
Clebert Suconic f874a02d17 ARTEMIS-2673 PageStore should only be removed when Address is removed
& ARTEMIS-2674 AMQP should use a separate executor for IO
2020-03-23 20:02:17 -04:00
Justin Bertram 3107535a32 ARTEMIS-2671 NPE in LDAP security plugin listener
To get the name of the destination use the relative Rdn position rather than a
strict match of "uid". Also, improve logging.
2020-03-23 17:02:38 -04:00
Justin Bertram 402dda2161 ARTEMIS-2667 NPE w/clearing non-durable dupl ID cache 2020-03-23 16:55:42 -04:00
Benjamin Graf 2645f3df46 NO-JIRA: Fix small typo in variable name and toString representation 2020-03-23 15:06:30 -05:00
Clebert Suconic 7bf8bcc7fe ARTEMIS-2662 Make Page to be resilient to invalid position
in case of an invalid position on getMessage, it should instead of runtimeException
be more resilient and fix itself.
2020-03-18 12:04:50 -04:00
Justin Bertram 2eae280a9f ARTEMIS-2576 fix possible NPE for auth failure 2020-03-17 14:26:34 -05:00
Clebert Suconic c801c00e33 ARTEMIS-2662 Using previously stored encodeSize on page record offset
There is no guarantee that the encodeSize size is the same in AMQP right after read.
As the protocol may add additional bytes right after decoded such as header, extra properties.. etc.
2020-03-17 05:55:25 -04:00
Francesco Nigro 2105479304 ARTEMIS-2658 AMQP message read from page has wrong encode size 2020-03-16 18:20:39 +01:00
Francesco Nigro 2025cbbfd0 ARTEMIS-2656 NPE with read-whole-page == true 2020-03-13 13:51:37 +01:00
brusdev 951b5d5ded ARTEMIS-2652 Fix PageCursorProviderImplTest on IBM JVM
Replace the page mock to fix an incompatibility between IBM JDK and Mockito.
2020-03-11 11:32:47 -04:00
Justin Bertram ed7fee6d9c ARTEMIS-2643 allow masked password when resetting via mgmnt 2020-03-05 21:38:09 -05:00
Justin Bertram b2417d33b1 ARTEMIS-2640 mgmnt ops reporting wrong audit details 2020-03-05 21:37:37 -05:00
Justin Bertram 339ccccbd7 ARTEMIS-2631 address orphaned from JMS temp queue 2020-03-05 21:36:35 -05:00
Justin Bertram 766f88c22a ARTEMIS-2629 ensure queue auto-delete after expiration 2020-03-05 21:35:35 -05:00
Justin Bertram 8c259116a8 NO-JIRA clarify & verify web socket support for MQTT 2020-03-05 21:34:53 -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
Clebert Suconic 990890d228 ARTEMIS-2622 Making replica resilient to closed pages 2020-02-14 14:01:52 -05:00
Justin Bertram a8cf6b04b4 ARTEMIS-2607 interceptor returns false but processing continues 2020-02-14 13:23:05 -05: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
sebthom 4bc5c6f2a8 NO-JIRA Add serialVersionUID and remove redundant casts
Adding serialVersionUID to WildcardConfiguration since it is
serializable. Without serialVersionUID  being specified a new one is
generated on each compilation which prevents object deserialization
between releases.
2020-02-03 09:54:43 -06:00
Sebastian Thomschke 85a1c753d7 NO-JIRA Wrong autoDeleteDelay value passed to createSharedQueue 2020-02-03 09:53:13 -06:00
Sebastian Thomschke 3797b62420 NO-JIRA Remove unnecessary null-check in ExpiryScanner 2020-02-03 09:51:49 -06:00
sebthom cfa11bbadc ARTEMIS-2610 Improve ActiveMQServer.getConnectionCount() 2020-02-03 09:44:17 -06:00
Christopher L. Shannon d1558f172b
This closes #2958 2020-01-30 15:54:13 -05:00
Christopher L. Shannon 7ad2d0f71a
This closes #2959 2020-01-30 15:53:12 -05:00
Sebastian Thomschke 0250f84921
NO-JIRA Fix Javadoc warning in ActiveMQTestBase
Fixes Javadoc warnings "Javadoc: Exception Exception is not declared" and "Javadoc: Exception InterruptedException is not declared"
2020-01-29 17:34:08 +01:00
Sebastian Thomschke c117976e3a
NO-JIRA Fix Javadoc @link syntax in ActiveMQServerConsumerPlugin
Fixes Javadoc warning "Javadoc: Missing closing brace for inline tag"
2020-01-29 17:21:53 +01:00
Sebastian Thomschke a3aa669827
NO-JIRA Fix compiler warning in FileConfigurationParserTest
Fixes compiler warning "Unnecessary cast from String to String".
2020-01-29 17:15:53 +01:00
Wei Yang 1d1f0625db ARTEMIS-2544 Remove rolledback PageTransactionInfo to free up memory 2020-01-23 11:23:14 +08:00
Sebastian Thomschke cf26103bb2 ARTEMIS-2571 Remove synchronization of ActiveMQServerImpl#getSessions() 2020-01-22 15:32:55 -06:00
Francesco Nigro c3e74e055c ARTEMIS-2599 DescribeJournal isn't correctly counting surviving msg 2020-01-21 12:14:02 -05:00
Francesco Nigro fa0c187ae6 ARTEMIS-2602 Reduce number of copies for non JDBC Journal 2020-01-18 18:45:12 +01:00
Francesco Nigro b10d765139 ARTEMIS-2602 load surviving records into SparseArrayLinkedList 2020-01-17 14:31:52 -05:00
Clebert Suconic 1a6c4e5c62 ARTEMIS-2603 Deadlock between pageStore.getCurrentID and page.cleanup
This happened when JournalStorageManager.startReplication and PageStore.cleanup were called between multiple threads.
2020-01-17 11:39:30 -05:00
Clebert Suconic bbe9f9adce NO-JIRA Adding test name into temporary folder name directory
This is to make it possible to identify what test is leaking files whenever that is happening.
That is because future tests will report the leaks, and it's difficult to identify where it happened.

Also i'm changing NoProcessFilesBehind to show the getOpenFD propertly
2020-01-13 09:39:51 -05: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
Clebert Suconic e397a17796 ARTEMIS-2592 Fixing DeadLock between deleteMessages and depage
This was happening through purge
2020-01-09 19:41:14 -06:00
yang wei 3e20906a49 NO-JIRA typo on logger 2020-01-09 15:21:29 -06:00
Justin Bertram 9e9c0778b1 ARTEMIS-2516 support sys props in xinclude href 2020-01-09 14:04:09 -05:00
Clebert Suconic 534d8b4719 NO-JIRA Happy new year! 2020-01-08 20:44:05 -05:00
Justin Bertram 0293d80574 NO-JIRA support 0 in human readable byte calculation 2020-01-08 12:37:30 -06:00
Wei Yang 0e6a1dee47 ARTEMIS-2584 Optimize PageTransactionInfoImpl in-memory size 2020-01-08 12:39:14 -05:00
Justin Bertram 1ad8b3c059 ARTEMIS-2590 support com.sun.jndi.ldap.read.timeout in LDAPLoginModule 2020-01-08 12:38:27 -05:00
Justin Bertram 6a290cf2b2 ARTEMIS-2591 add details to consumer lock timeout log 2020-01-08 12:31:15 -05:00
Justin Bertram 59e7db8925 ARTEMIS-2567 redundant lock on server.lock file 2020-01-08 14:04:43 +08:00
Christopher L. Shannon (cshannon) fe66506139 ARTEMIS-2565 - Add plugin support for Federated Queues/Addresses
Add a new interface called ActiveMQServerFederationPlugin to allow
customization of the federated queue/address feature of the broker
2020-01-06 06:38:35 -05:00
Dewald Pretorius 9fac4b866c ARTEMIS-2550 Support Websocket Continuation Frames
Large messages can be split up using Websocket Continuation Frames.
This allows for much smaller buffer sizes to send or receive
potentially very large messages.
2020-01-02 20:36:35 -06:00
Clebert Suconic 13278cc45f ARTEMIS-2581 Duplicate Detection on AMQP should be configurable
There is an optimization in AMQP, that properties are only parsed over demand.

It happens that after ARTEMIS-2294 (commit 2dd0671698),
every send would request for the property on the message, resulting the properties to always be parsed upon send.
Even when there's no use of application properties.
2019-12-19 17:54:21 -05:00
Justin Bertram 8d8eaebb65 ARTEMIS-2580 support pluggable SSL TrustManagerFactory 2019-12-19 17:53:52 -05:00
Justin Bertram 2a452bd7a3 ARTEMIS-2578 clarify storage capacity messages
This is a surprisingly large change just to fix some log messages, but
the changes were necessary in order to get the relevant data to where it
was being logged. The fact that the data wasn't readily available is
probably why it wasn't logged in the first place.
2019-12-17 20:27:10 -05:00
Wei Yang 9c928377c9 NO-JIRA minor changes on test 2019-12-17 09:40:31 -05:00
Justin Bertram c06404406c ARTEMIS-2574 allow security manager config via XML
The test-suite has long used the broker's ability to configure the
security manager. This commit implements this functionality via XML
configuration.
2019-12-12 15:48:43 -05:00
Clebert Suconic 747c8dca71 ARTEMIS-2549 Removing duplicate definition of attribute 2019-12-11 13:50:13 -05:00
sebthom 51eb01e88e NO-JIRA Minor code improvement in QueueImpl
Removed unused private constant FLUSH_TIMEOUT.
Solved some compiler warnings (missing generic type, private class can
be final). Fixed a performance related sevntu checkstyle warning
"Variable 'xyz' can be moved inside the block at line '2,864' to
restrict runtime creation.".
2019-12-11 10:18:43 -05:00
brusdev b666cb495b ARTEMIS-2572 The retryMessages remove all paged messages
Add a paged message to the tail, when the QueueIterateAction doesn't handle it, to avoid removing unhandled paged message. Move the refRemoved calls from the QueueIterateActions to the iterQueue to fix the queue stats.
2019-12-10 13:00:16 +01:00
Sebastian Thomschke 3ad8391e9b
ARTEMIS-2570 Improve performance of ConnectionsView 2019-12-06 11:55:48 +01:00
Wei Yang 9ce8cad970 NO-JIRA close page after recovering page counter 2019-12-05 16:52:58 -05:00
Justin Bertram 04db90edde ARTEMIS-2567 restore locking semantics on server.lock when reading status 2019-12-05 11:39:11 -06:00
Clebert Suconic 108ee5d24b NO-JIRA Fixing intermittent failure 2019-12-03 16:25:00 -05:00
Justin Bertram 8614ca1167 ARTEMIS-2564 retryMessages incorrectly removes msgs 2019-12-03 14:24:01 -05:00
Clebert Suconic 0b1afd35dc ARTEMIS-2421 Using ActiveMQScheduledComponent 2019-11-26 16:15:06 -05:00
Bas Elzinga e12f3ddc6f ARTEMIS-2421 periodic journal lock evaluation
If a broker loses its file lock on the journal and doesn't notice (e.g.
network connection failure to an NFS mount) then it can continue to run
after its backup activates resulting in split-brain.

This commit implements periodic journal lock evaluation so that if a live
server loses its lock it will automatically restart itself.
2019-11-26 11:14:56 -05:00
Clebert Suconic 506c03a884 ARTEMIS-2559 Clear Transaction out of ResourceManager in case of failure 2019-11-22 10:30:29 -05:00
brusdev 9946d8e63c ARTEMIS-2538 Removing all messages from a huge queue causes OOM
The PageSubscriptionImpl.cleanupEntries could be locked by the queue
depage because they are executed with the same executor and the depage
could be locked by the iterQueue.
If PageSubscriptionImpl.cleanupEntries is locked, no one clean up the
JournalRecord and PagePositionImpl instances created during iterQueue.
So removing all messages from a huge queue, causes the retention of too
JournalRecord and PagePositionImpl instances until an OOM.
To avoid to lock the PageSubscriptionImpl.cleanupEntries the depage is
executed only if the queue isn't iterating.
2019-11-22 10:10:16 -05:00
Clebert Suconic 91cbbb8698 ARTEMIS-2559 Connection failure should rollback pending XA TX 2019-11-21 17:52:45 -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
Andy Taylor 0ab75b9968 ARTEMIS-2554 - Queue control browse broken with large messages
https://issues.apache.org/jira/browse/ARTEMIS-2554
2019-11-18 10:36:18 +00:00
michael.pearce f6401d81b5 ARTEMIS-2547 fix AMQP Client reconnect fails on broker stop start
Add unit test
Add fix to clear clientids when server is stopped.
2019-11-11 12:33:13 +00:00
sebthom 54daa445ed ARTEMIS-2541 Improve message browser of Admin UI 2019-11-08 12:31:50 +01:00
sebthom 318c26cde7 ARTEMIS-2540 Display LargeMessage column in message browser of admin UI 2019-11-05 20:02:51 -05:00
brusdev f680d9f712 ARTEMIS-2466 PageSyncTimer::timeSync isn't configurable using ASYNCIO
Add the config parameter `page-sync-timeout` to set a customized value,
because if the broker is configured to use ASYNCIO journal, the timeout
has the same value of NIO default journal buffer timeout ie 3333333.
2019-11-05 22:44:52 +01:00
brusdev 83e2595618 ARTEMIS-2534 Deleting addresses auto created on configuration reload
Skip the deletion of address's and queue's auto created on configuration
reload.
2019-11-05 16:05:27 -05:00
brusdev 55a55daa7b ARTEMIS-2538 Removing all messages from a huge queue causes OOM
The iterQueue transaction commits are locked by the synchronization
context. So removing all messages from a huge queue causes the creation
of too locked transactions for the paged messages and so OOM.
The iteration on paged message is executed out the iterQueue
synchronization context to avoid to lock the transaction commits.
2019-11-05 16:04:08 -05:00
Joshua Smith d7d11a0c6f ARTEMIS-2535 Add ignorePartialResultException option to LDAPLoginModule
Active Directory servers are unable to handle referrals automatically.
This causes a PartialResultException to be thrown if a referral is
encountered beneath the base search DN, even if the LDAPLoginModule is
set to ignore referrals.

This option may be set to 'true' to ignore these exceptions, allowing
login to proceed with the query results received before the exception
was encountered.

Note: there are no tests for this change as I could not reproduce the
issue with the ApacheDS test server. The issue is specific to directory
servers that don't support the ManageDsaIT control such as Active
Directory.
2019-10-30 13:47:50 -07:00
Justin Bertram 0ddd55b2cc NO-JIRA add acceptor to handshake timeout msg 2019-10-29 14:37:57 -04: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
Christopher L. Shannon (cshannon) ad0581bf76 ARTEMIS-2531: Fix filter in FederatedQueue to prevent infinite consumer
creation in a circular or bidrectional setup
2019-10-25 14:26:46 -04:00
Christopher L. Shannon (cshannon) 1aed3f9dd6 ARTEMIS-2526 - Update ActiveMQServerImpl to call correct
beforeDestroyQueue hook
2019-10-24 16:20:08 -04:00
brusdev 0ac605740e ARTEMIS-2503 Improve wildcards for the authorisation key attributes
Improve wildcard support for the key attribute in the roles access
match element and whitelist entry element, allowing prefix match for
the mBean properties.
2019-10-23 15:27:53 -04:00
Wei Yang 89698b9dbc ARTEMIS-2524 Remove message from map in LVQ if it's deleted/moved/expired/changed 2019-10-21 20:46:13 -04:00
Howard Gao 6177d32774 ARTEMIS-2513 Large message's copy may be interfered by other threads
In LargeMessageImpl.copy(long) it need to open the underlying
file in order to read and copy bytes into the new copied message.
However there is a chance that another thread can come in and close
the file in the middle, making the copy failed
with "channel is null" error.

This is happening in cases where a large message is sent to a jms
topic (multicast address). During delivery it to multiple
subscribers, some consumer is doing delivery and closed the
underlying file after. Some other consumer is rolling back
the messages and eventually move it to DLQ (which will call
the above copy method). So there is a chance this bug being hit on.
2019-10-14 15:59:31 -04:00
Wei Yang cb355bb584 ARTEMIS-2515 pageIterator.hasNext spends too much time in the case of no messages matched 2019-10-12 15:36:04 -04:00
Clebert Suconic b0497ed724 ARTEMIS-2517 JMX will be shutdown after failback 2019-10-10 14:44:55 -04:00
brusdev 28d1a53630 ARTEMIS-2508 Crititical analyser trigger shutdown if removeAllMessages
The crititical analyser trigger the broker shutdown if try to
removeAllMessages with a huge queue. The iterQueue is split so as
not to keep the lock too time.
2019-10-09 11:41:00 -04:00
Justin Bertram 2992daaeb1 ARTEMIS-2514 dupl cache leak w/clustered temp q 2019-10-08 17:11:38 -04:00
brusdev 615fb64008 ARTEMIS-2512 Move the LocalMonitor tick log
The LocalMonitor tick log is very useful to establish a "heartbeat" log
statement. It is moved into its own logger from PagingManager logger,
which is too verbose to leave activated indefinitely in production.
2019-10-07 17:49:45 +02:00
Keith Wall 4e0b209128 ARTEMIS-2505: Fix wiring of the max-size-bytes-reject-threshold address-setting 2019-09-27 15:29:42 -04:00
Howard Gao d02da18dab ARTEMIS-2506 MQTT doesn't cleanup underlying connection for bad clients
When a bad MQTT clients drop its connection without proper closing
it the broker doesn't close the underlying physical connection.
2019-09-27 19:41:15 +08: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 b846f356bb ARTEMIS-2462 Applying fix on delete SNF queue after ScaleDown 2019-09-17 14:05:00 -04:00
Howard Gao dd20f89bd0 ARTEMIS-2462 re-applying tests on SNF Delete Queue 2019-09-17 14:05:00 -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
Justin Bertram c56b8fb9d2 ARTEMIS-2489 ring q fails w/concurrent producers 2019-09-13 10:08:32 -05:00
Andy Taylor 42327a490a ARTEMIS-2480 - Reloading configuration can kill broker
https://issues.apache.org/jira/browse/ARTEMIS-2480
2019-09-11 17:37:11 +02:00
Wei Yang e43c5390cf ARTEMIS-2478 Expired message not removed in non destructive queue 2019-09-11 09:37:03 -04:00
Justin Bertram c5376789b0 ARTEMIS-2475 log metrics plugin init details 2019-09-10 20:05:25 -04:00
Clebert Suconic 5373c60891 ARTEMIS-2474 Retry interval ignored on Backup Connectors 2019-09-10 15:03:01 -04:00
Clebert Suconic 54de31e813 NO-JIRA Fixing intermittent failures 2019-09-10 15:00:45 -04:00
Clebert Suconic 7fd7558ed8 NO-JIRA Fixing intermittent failures 2019-09-10 14:53:49 -04:00
Wei Yang da6fedf6ae ARTEMIS-2472 Persistent and delivering size not right in replacement of lvq message 2019-09-06 14:26:30 -04:00
Francesco Nigro 9413925957 ARTEMIS-2473 RemoteQueueBindingImpl should check for empty filters 2019-09-06 14:26:03 -04:00
Francesco Nigro a9ce90f97a ARTEMIS-2471 JdbcNodeManager doesn't use jdbc-user and jdbc-password tags 2019-09-05 09:21:35 -05:00
Wei Yang 4a61d2dc76 ARTEMIS-2380 Fix delivering message in the case of consume close 2019-09-04 11:02:16 +08: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 dde6862aed ARTEMIS-2457 fix non-destructive ring q test 2019-08-26 10:06:52 -04:00
Clebert Suconic e14a533d6e Revert "ARTEMIS-2415 JDBCJournal miss pending tasks during shutdown"
This reverts commit a85f029106.
2019-08-26 07:19:19 -04:00
brusdev a85f029106 ARTEMIS-2415 JDBCJournal miss pending tasks during shutdown
Wait deleting large message tasks during stop.
2019-08-25 23:58:59 -04:00
gtully b20c2593e9 ARTEMIS-2433 add ExternalCertificateLoginModule to surface a SASL EXTERNAL identity (subjectDN) to JAAS. 2019-08-25 23:57:20 -04:00
brusdev ee31a92d23 ARTEMIS-2392 Enable remove on cancel policy for scheduled pool
By default, such a cancelled task is not automatically removed from the
work queue until its delay elapses. It may cause unbounded retention of
cancelled tasks. To avoid this, set remove on cancel policy to true.
2019-08-25 23:54:11 -04:00
Justin Bertram 449f0323ec ARTEMIS-2364 collision avoidance for redelivery
This is a feature from 5.x implemented via
https://issues.apache.org/jira/browse/AMQ-747.
2019-08-25 23:36:09 -04:00
Justin Bertram 51c2022f38 ARTEMIS-2457 implement ring queue 2019-08-25 23:29:44 -04:00
Clebert Suconic c929d34eed ARTEMIS-2454 Fixing body re-encoding 2019-08-25 23:03:53 -04:00
Wei Yang 510339423e ARTEMIS-2459 Fix err in the replacement of a non-destructively consumed LVQ message 2019-08-22 11:50:28 -04:00
Clebert Suconic 7496dc6829 ARTEMIS-2450 Fixing page-size Nullable Long encoding 2019-08-21 14:37:54 -04:00
Michael Pearce 25d0b511ce ARTEMIS-2458 Fix AMQP Transaction Session Close Ordering 2019-08-21 09:34:08 -04:00
Clebert Suconic 61eb379741 ARTEMIS-2458 Fix AMQP Transaction Rollback Ordering by using a sorted add 2019-08-21 09:34:07 -04:00
Wei Yang a644c498da ARTEMIS-2450 page-size-bytes should not be greater than Integer.MAX_VALUE 2019-08-19 17:18:06 +01:00
yang wei e537fbfde0 ARTEMIS-2407 Large message file not deleted if broker crashes between page deleted and pending large message written 2019-08-19 16:46:07 +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 144c21fb6f ARTEMIS-2453 Fixing deadLock between destroyQueue and removeAddressInfo 2019-08-15 11:38:57 -04:00
Justin Bertram 9d44c40037 ARTEMIS-2449 limit size of producer details
The core server session tracks details about producers like what
addresses have had messages sent to them, the most recent message ID
sent to each address, and the number of messages sent to each address.
This information is made available to users via the
listProducersInfoAsJSON method on the various management interfaces
(JMX, web console, etc.). However, in situations where a server session
is long lived (e.g. in a pool) and is used to send to many different
addresses (e.g. randomly named temporary JMS queues) this info can
accumulate to a problematic degree. Therefore, we should limit the
amount of producer details saved by the session.
2019-08-08 14:24:28 -04:00
Francesco Nigro 191323176a ARTEMIS-2448 group-name ignored in replicated colocated setup 2019-08-08 13:16:22 -04:00
Justin Bertram d379cda374 ARTEMIS-2447 allow mapping admin to manage in LDAP plugin 2019-08-06 15:27:18 -05:00
Clebert Suconic e2d6d07298 ARTEMIS-2441 Avoiding NPE on FileLockNodeManager 2019-08-06 10:34:55 -04:00
Clebert Suconic 205a1399e7 ARTEMIS-2440 Call timeout should retry the connection asynchronously 2019-08-05 12:12:33 -04:00
Clebert Suconic f72409e38f ARTEMIS-2441 Separate Lock Files
Certain devices or file systems won't support record level locking.
For that reason I am changing FileLockNodeManager to use separate files (one for each position) instead of using tryLock(position);
A good example for this would be cephFS where channel.tryLock or channel.tryLock works but it fails at a record level.
2019-08-05 09:29:34 -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 3a68288db6 ARTEMIS-2439 ServerSessionImpl leaks addr names 2019-08-02 13:27:02 -04:00
Clebert Suconic 73e2d4709d ARTEMIS-2438 Activation cleaning 2019-08-01 16:58:00 -04:00
brusdev b9d7c76d88 NO-JIRA Fix NoProcessFilesBehind build on IBM JDK 8
Remove sun.management.VMManagement to build NoProcessFilesBehind with
IBM JDK 8.
2019-08-01 16:15:40 -04:00
Clebert Suconic 21af85bd94 NO-JIRA Speeding up tests
When it comes to the testsuite, we don't need timed buffers kicking too much.
This should bring some speed for our testsuite
2019-08-01 16:15:18 -04:00
Shailendra Kumar Singh 51fdcca464 ARTEMIS-2410 max-saved-replicated-journals-size=0 throws ArrayIndexOutOfBoundsException 2019-08-01 12:54:02 -04:00
Clebert Suconic 80190860cc ARTEMIS-2435 Configuration on device-block-size through CLI / broker.xml 2019-07-30 14:39:07 -04:00
Clebert Suconic 32a15284ca NO-JIRA no need to validate default return 2019-07-30 13:43:39 -04:00
Clebert Suconic aa5d76e1bb ARTEMIS-2414 AIOSequentialFile was ignoring sync and leaking files 2019-07-30 11:03:06 -04:00
Wei Yang edace8845e ARTEMIS-2414 Sync before closing file in case data loss 2019-07-29 14:44:26 -04:00
Clebert Suconic 28ea18ea79 ARTEMIS-2434 Improving Consumer/Queue Delivery Lock
This is a less invasive improvement then the one I proposed at PR #2772
or commit 7507a9fd4b
2019-07-27 11:37:45 -04:00
Clebert Suconic 8a1f267bd5 Revert "ARTEMIS-2423 Improving Consumer/Queue Delivery lock"
This reverts commit 7507a9fd4b.
2019-07-27 10:45:08 -04:00
Clebert Suconic 7507a9fd4b ARTEMIS-2423 Improving Consumer/Queue Delivery lock 2019-07-26 15:05:51 -04:00
Clebert Suconic d2d21516ba Revert "ARTEMIS-2434 Don't lock ServerConsumerImpl for long period of time"
This reverts commit 64ba930f43.
2019-07-26 13:57:05 -04:00
Francesco Nigro 64ba930f43 ARTEMIS-2434 Don't lock ServerConsumerImpl for long period of time 2019-07-26 13:00:57 -04:00
Wei Yang b92cde165b ARTEMIS-2430 Avoid data loss when live page cache evicted 2019-07-24 19:42:49 +08:00
Jiri Danek 52e7b9d57d ARTEMIS-2429 Fix order of arguments to registerQueueGauge and two related typos
Test is also adjusted to test for the changes made.
2019-07-22 13:28:22 +02: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
Clebert Suconic 89cc07c7d8 ARTEMIS-2408 Changing FileDescriptors rule as classRule 2019-07-19 12:01:01 -04:00
Clebert Suconic 736045d73b ARTEMIS-2401 Improving tests and a few fixes around Address.pause 2019-07-18 16:29:52 -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
Clebert Suconic 989b3a516e ARTEMIS-2408 A few tweaks on acceptor async stop 2019-07-18 16:23:19 -04:00
brusdev aeecb6f70b ARTEMIS-2408 Too many opened FDs after server stops
Limit acceptors stop time.

reapplying after commit 20ca827d79
2019-07-18 16:17:03 -04:00