Commit Graph

2031 Commits

Author SHA1 Message Date
gtully d0bf65ea65 ARTEMIS-2990 - update wildcard address map on creation only, avoid duplicates and duplicate checks 2020-11-13 11:15:09 +00:00
gtully 683879495c ARTEMIS-2990 - avoid auto boxing on binding id used as map key 2020-11-13 10:03:28 +00:00
gtully 9675ecae42 ARTEMIS-2985 - don't block netty threads for mqtt protocol actions 2020-11-12 21:01:00 +00:00
Domenico Francesco Bruscino 14ec3cb7b0 ARTEMIS-2976 Remove password before creating server locator 2020-11-05 11:39:35 -05:00
Justin Bertram ecead9b130 ARTEMIS-2974 audit logger can print wrong user info
Using a ThreadLocal for the audit user information works in most cases,
but it can fail when dispatching messages to consumers because threads
are taken out of a pool to do the dispatching and those threads may not
be associated with the proper credentials. This commit fixes that
problem with the following changes:

 - Passes the Subject explicitly when logging audit info during dispatch
 - Relocates security audit logging from the SecurityManager
implementation(s) to the SecurityStore implementation
 - Associates the Subject with the connection properly with the new
security caching
2020-11-05 11:38:08 -05:00
Clebert Suconic 4e7bb97df7 [maven-release-plugin] prepare for next development iteration 2020-11-02 17:45:51 -05:00
Clebert Suconic 9768017530 [maven-release-plugin] prepare release 2.16.0 2020-11-02 17:45:38 -05:00
franz1981 e4a2a20c22 ARTEMIS-2941 Fixing query timeout value 2020-10-30 17:57:28 +01:00
franz1981 b39c9c9221 ARTEMIS-2823 Apply default datasource configs if not overridden 2020-10-30 17:57:28 +01:00
Clebert Suconic 28919b6ad8 [maven-release-plugin] prepare for next development iteration 2020-10-30 10:16:29 -04:00
Clebert Suconic af5ca9f1e6 [maven-release-plugin] prepare release 2.16.0 2020-10-30 10:16:17 -04:00
Clebert Suconic 9b0f7605cb ARTEMIS-2969 / ARTEMIS-2937 Dealing with Connection Timeout properly on AMQP Broker Connections 2020-10-29 21:55:10 -04:00
Clebert Suconic dc7eb5c23d ARTEMIS-2937 Broker connection improvements
- Adding a paragraph about addressing and distinct queue names
- Renaming match on peers, senders and receivers as "address-match"
- Changing qpid dispatch test to use a single listener
- Fixing reconnect attemps message
2020-10-29 15:01:51 -04:00
Clebert Suconic bf52134dc0 ARTEMIS-2937 Fixing Tests and some review 2020-10-28 15:08:48 -04:00
Clebert Suconic 8499eac76c ARTEMIS-2937 Server Side AMQP Connectivity with options to transfer queues or replicate data 2020-10-28 11:37:25 -04:00
gtully 647151b0af ARTEMIS-2941 - renew tasks are nearly always a little late, make this test more tolerant of that 2020-10-28 12:21:31 +00:00
Clebert Suconic f6ef285859 ARTEMIS-2927 LVQ broken after restart 2020-10-22 13:32:19 -04:00
franz1981 b5753a0000 ARTEMIS-2958 Timed out waiting pool stop on backup restart
BackupManager::activated should correctly unblock
unauthorized blocking requests to allow a backup broker
to prompty restart in case of live failback
2020-10-22 12:44:42 -04:00
franz1981 0c8dd598b7 ARTEMIS-2957 ManagementContext is started twice 2020-10-21 07:33:22 +02:00
Emmanuel Hugonnet fdfc58171b [ARTEMIS-2939]: Artemis should not delete corrupt log files.
* Moving corrupted journal files to the attic folder.

Jira: https://issues.apache.org/jira/browse/ARTEMIS-2939
2020-10-20 18:39:06 -04:00
franz1981 4545749969 ARTEMIS-2941 Improve JDBC HA connection resiliency 2020-10-20 17:23:48 -04:00
franz1981 6932b4674d ARTEMIS-2949 Reduce GC on OperationContext::checkTasks 2020-10-20 12:28:10 -04:00
franz1981 769101ac69 ARTEMIS-2955 commons-dbcp2 performance issue with Derby Embedded DBMS
This commit is fixing:
- a missing commit that can make leak a connection
- restricting default specific commons-dbcp2 to the default data source
- setting poolPreparedStatements true by default
- configured embedded Derby to be in-memory to speedup tests
2020-10-20 10:48:12 +02:00
gtully c4832c3209 ARTEMIS-2953 - drop the use of non deterministic finalize 2020-10-19 13:55:52 -04:00
Justin Bertram 75e12b5e1d ARTEMIS-2947 Implement SecurityManager that supports replication 2020-10-19 10:07:57 -04:00
gtully 583bd3602a ARTEMIS-2888 ARTEMIS-2859 ARTEMIS-2768 - revert new page-store-name addressSetting, when the page store respects the target address and the size is tallied on the target address store, it is no longer neecessary 2020-10-19 14:04:35 +01:00
Clebert Suconic 621b845d16 ARTEMIS-2951 Fixing Large Message reference counting 2020-10-15 00:07:07 -04:00
gtully 4e8ce9ed10 ARTEMIS-2859 - track owning page store as in a message reference to ensure correct usage tracking, only track size on the owning store, reference everywhere else via refUp 2020-10-15 00:06:43 -04:00
Luis Alves 4584ab16df ARTEMIS-2886 pass FQQN regardless of match 2020-10-14 12:26:19 -05:00
Andy Taylor 0ce173dcb5 ARTEMIS-2838 - migrate to HawtIO 2
https://issues.apache.org/jira/browse/ARTEMIS-2838
2020-10-09 09:20:29 +01:00
Clebert Suconic 8fe4bfb29a ARTEMIS-2936 Adding logging.info on when to enable trace on critical analyzer 2020-10-07 10:40:55 -04:00
franz1981 b4532d944d ARTEMIS-2823 Use datasource with JDBC store db connections fixes
It add additional required fixes:
- Fixed uncommitted deleted tx records
- Fixed JDBC authorization on test
- Using property-based version for commons-dbcp2
- stopping thread pool after activation to allow JDBC lease locks to release the lock
- centralize JDBC network timeout configuration and save repeating it
- adding dbcp2 as the default pooled DataSource to be used
2020-10-06 10:19:06 +02:00
Mikko Uoti 2faafec737 ARTEMIS-2823 Use datasource with JDBC store db connections
Replaces direct jdbc connections with dbcp2 datasource. Adds
configuration options to use alternative datasources and to alter the
parameters. While adding slight overhead, this vastly improves the
management and pooling capabilities with db connections.
2020-10-06 08:32:58 +03:00
gtully 7a472d2782 ARTEMIS-2768 - fix up conditional to include null pageStoreName option, it was a little over eager 2020-09-28 15:53:06 +01:00
Andy Taylor c77bf50db4 ARTEMIS-2908 - Persist Divert Configuration in Bindings journal
https://issues.apache.org/jira/browse/ARTEMIS-2908
2020-09-25 10:03:40 -04:00
gtully 77d1c8cd7f ARTEMIS-2768 - add warning if wildcard subscription does not have a matching page-store-name address setting 2020-09-24 13:52:57 -04:00
Justin Bertram 0f60b5a8e4 ARTEMIS-2906 add lastAckTimestamp to message counter 2020-09-24 12:51:00 -04:00
franz1981 69fa4f3e93 ARTEMIS-2912 Handle NPE due to uninitialized members 2020-09-24 10:26:50 -04:00
franz1981 207c2265bf ARTEMIS-2912 Server start exception before activation can cause a zombie broker 2020-09-24 10:26:50 -04:00
gtully fa04881c6f ARTEMIS-2888 ARTEMIS-2859 ARTEMIS-2768 - new page-store-name addressSetting to allow wildcard subscriptions share a single page store 2020-09-24 09:39:31 +01:00
Justin Bertram beaacbfa8d ARTEMIS-2904 prevent acceptor from automatically starting 2020-09-23 20:19:16 -04:00
Justin Bertram f07ad09c07 NO-JIRA fix internal QueueControl method spelling 2020-09-23 12:08:57 -04:00
Justin Bertram 246bf08391 ARTEMIS-2909 revert ARTEMIS-2322
This reverts commit dbb3a90fe6.

The org.apache.activemq.artemis.core.server.Queue#getRate method is for
slow-consumer detection and is designed for internal use only.

Furthermore, it's too opaque to be trusted by a remote user as it only
returns the number of message added to the queue since *the last time
it was called*. The problem here is that the user calling it doesn't
know when it was invoked last. Therefore, they could be getting the
rate of messages added for the last 5 minutes or the last 5
milliseconds. This can lead to inconsistent and misleading results.

There are three main ways for users to track rates of message
production and consumption:

 1. Use a metrics plugin. This is the most feature-rich and flexible
way to track broker metrics, although it requires tools (e.g.
Prometheus) to store the metrics and display them (e.g. Grafana).

 2. Invoke the getMessageCount() and getMessagesAdded() management
methods and store the returned values along with the time they were
retrieved. A time-series database is a great tool for this job. This is
exactly what tools like Prometheus do. That data can then be used to
create informative graphs, etc. using tools like Grafana. Of course, one
can skip all the tools and just do some simple math to calculate rates
based on the last time the counts were retrieved.

 3. Use the broker's message counters. Message counters are the broker's
simple way of providing historical information about the queue. They
provide similar results to the previous solutions, but with less
flexibility since they only track data while the broker is up and
there's not really any good options for graphing.
2020-09-23 12:08:57 -04:00
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
yang wei 99158ccd3d ARTEMIS-2418 Race conditions between cursor movement and page writing 2019-07-18 10:30:26 -04:00
Clebert Suconic 20ca827d79 ARTEMIS-2408 Effectively reverting FileDescriptors to fix tests
At this commit point NetworkFailureFailoverTest would hung indefinetly
2019-07-16 20:54:42 -04:00
brusdev 29bbb94b5e ARTEMIS-2408 Too many opened FDs after server stops
Wait netty event loop group shutdown to avoid too many opened FDs after
server stops, when netty configuration is used. Clear server
activateCallbacks to avoid reactivation of previous nodeManager and
consequent FD leaks on restart. Fix LargeServerMessageImpl.copy to avoid
FD leaks when a large message expiry or it is sent to DLA. Terminate
HawtDispatcher global queue to avoid pipes and eventpolls leaks after a
MQTT test.

cherry-picking commit 9617058ba0649af4eea15ce8793f86de827c4b7f
NO-JIRA adding check for open FD on the testsuite

cherry-picking commit 0facb7ddf4d3baa14a3add4290684aff7fd46053
NO-JIRA addressing connections leaks on integration tests
2019-07-16 13:36:42 -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 fa46647818 ARTEMIS-2425 Message loss due to writing incomplete page file 2019-07-12 19:52:43 +08:00
Howard Gao c66d62e4b0 ARTEMIS-2390 JMSMessageID header can be null when messages are cross-protocol
If a jms client (be it openwire, amqp, or core jms) receives a message that
is from a different protocol, the JMSMessageID maybe null when the
jms client expects it.
2019-06-27 10:26:34 -04:00
Shailendra Kumar Singh a98d995783 ARTEMIS-2387 add scheduled-count and routing-type to queue stat CLI 2019-06-25 14:02:18 -05:00
Justin Bertram 886ae7bfc5 ARTEMIS-2395 empty address.txt causes NPE 2019-06-21 15:09:08 -04:00
Justin Bertram 3b82cad024 ARTEMIS-2391 static address may be auto-deleted 2019-06-21 15:01:36 -04:00
Andy 61a563ee95 ARTEMIS-2358 - fixing issue with last commit
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-06-20 10:21:02 +01:00
brusdev 9d12ad6501 ARTEMIS-2385 Log header for rejecting message with too large header
Use warning level to add in the log the ID and debug level to add in the
log the message header of rejecting message with too large header.
2019-06-19 11:26:33 -05:00
Andy e82d95fff6 ARTEMIS-2338 - Live server does not shutdown when using vote-on-replication-failure
https://issues.apache.org/jira/browse/ARTEMIS-2338
2019-06-19 10:26:10 -05:00
Justin Bertram 3c5453d401 ARTEMIS-2384 log underlying bridge failure at DEBUG 2019-06-17 22:29:57 -04:00
Justin Bertram 3ff75c3353 ARTEMIS-1982 queue metrics can go negative
When redelivery is exhausted and messages are sent to a DLA with bindings
then some queue metrics can go negative.
2019-06-12 17:22:30 -04:00
Clebert Suconic 7e3b68a4cf ARTEMIS-2367 Adding rule to avoid files leaking on the main folder
We had to fix a few cases where data folder was being created outside of the ./target output.
This is just to avoid re-ocurrence of that.
2019-06-12 12:10:28 -04:00
Andy 959d25f0e6 ARTEMIS-2377 - add password encryption to security plugins
https://issues.apache.org/jira/browse/ARTEMIS-2377
2019-06-11 19:16:33 +01:00
brusdev 9b52547ff7 ARTEMIS-2371 Message with huge header shuts broker down
Add max record size check before adding a record to prevent that the
broker shuts down, when there is one really large header sent with the
message. Add message size check before allocating large message resource
if it can't be stored.
2019-06-10 17:36:18 -04:00
Francesco Nigro bfe6b70c5a ARTEMIS-2374 JournalStorageManager::addBytesToLargeMessage leaks ByteBuffer 2019-06-10 15:52:58 +02:00
Tomas Hofman 097ef281fd ARTEMIS-2069 Backup doesn't activate after shared store is reconnected 2019-06-10 13:36:43 +02:00
Justin Bertram bde1b1cc4e ARTEMIS-2367 fix directories for tests 2019-06-03 13:22:06 -05:00
Clebert Suconic b7047faea5 NO-JIRA Adding checking for leaking server socket 2019-05-31 19:06:15 -04:00
brusdev ef2ec7b56e ARTEMIS-1011 Slow consumer detection after bursts
Fix slow consumer detection after a burst, taking into account messages
which are already in queue at the start of queueRateCheckTime period.
2019-05-31 12:21:28 -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
Clebert Suconic 4fa2e75cdc ARTEMIS-2361 Bridge should make a copy of messages
and some improvements into ARTEMIS-2355
2019-05-29 16:35:01 -04:00
Francesco Nigro 0d273d2bb8 ARTEMIS-2347 JournalStorageManager::stopReplication can deadlock while stopping
AbstractJournalStorageManager::performCachedLargeMessageDeletes
must enforce acquisition of manager write lock (as documented)
to avoid unlucky racing calls of stopReplication while stopping
to deadlock.
2019-05-29 15:09:25 -04:00
Justin Bertram 5768f6e2f3 ARTEMIS-2308 Support exporting metrics 2019-05-29 15:07:45 -04:00
Andy 3fe2194139 ARTEMIS-2358 - Add user and pass to database store to allow encryption
https://issues.apache.org/jira/browse/ARTEMIS-2358
2019-05-29 11:30:35 -05: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
Andy ca80662fd0 ARTEMIS-2346 - make timestamp human readable in console
https://issues.apache.org/jira/browse/ARTEMIS-2346
2019-05-21 15:24:51 -04:00
James Perkins 4fffc02778 ARTEMIS-2342 Use a URL instead of a URI for the logging.configuration property
The property the log manager itself expects is a URL which could result in an invalid URI missing the // prefix after file:.
2019-05-16 18:43:19 -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
Clebert Suconic ce92cc827e NO-JIRA FileConfigurationParserTest creating data folder
FileConfigurationParserTest was creating a data folder.
This is simply disabling persistence from the configuration used by the server on this test as it is not needed.
2019-05-16 08:57:30 -04:00
Clebert Suconic b9b6fddeea ARTEMIS-2339 Compatibility around prefixing
There are a few issues with prefixing and compatibility.
This is basically an issue when integrated with Wildfly or any other case
where prefix is activated
and playing with older versions.
2019-05-15 17:49:03 -04:00
Justin Bertram 984a901d6a ARTEMIS-2334 avoid potential NPE 2019-05-14 10:16:10 -05:00
Francesco Nigro f2bac5ad08 ARTEMIS-2321 Non-blocking Page::read on page cache 2019-05-13 12:20:22 -04:00
Francesco Nigro 49836eca52 ARTEMIS-2321 PageCursorProviderImpl can use primitive maps 2019-05-13 10:24:17 -04:00
Francesco Nigro 30c82f43b0 ARTEMIS-2321 PageCursorInfo caches number of msgs to save Page::read 2019-05-13 10:24:17 -04:00
Francesco Nigro b173bb5552 ARTEMIS-2321 Removed unnecessary volatile/Atomic operations and fields 2019-05-13 10:24:17 -04:00
Francesco Nigro 82898a8a3c ARTEMIS-2321 PageCache doesn't need a Page reference 2019-05-13 10:24:17 -04:00
Francesco Nigro 79465f7f88 ARTEMIS-2317 Reuse file buffer wrapper instances to reduce allocations
Page::read is allocating a new ChannelBufferWrapper on each
paged message read: to reduce the allocation rate, it could be
reused until a new wrapped ByteBuffer is created
2019-05-13 09:47:25 -04:00
Clebert Suconic fc760265a2 ARTEMIS-2335 Fixing delivery logic for message group on negative attemps
OpenWireGroupingTest::testGrouping is fixed after this change as it was intermittently failing
2019-05-10 11:49:34 -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
Justin Bertram 8257bac49b ARTEMIS-2332 fix sendMessage w/headers from console 2019-05-08 07:21:22 -04:00
Clebert Suconic 0e40984145 NO-JIRA speeding up a few tests 2019-05-06 20:22:47 -04:00
Clebert Suconic 5d155f585e NO-JIRA removing System.out left by accident 2019-05-06 08:56:45 -04:00
Clebert Suconic b5b2cc98b0 NO-JIRA Fixing JMX Test
This test has been failing as part of the main testsuite
and it should really be a smoke test as it is using a real test.
so, I'm moving it as smoke-test
2019-05-03 18:05:26 -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
Clebert Suconic 9ec9e0785b ARTEMIS-2329 AddressSettings inconsistence on decoding
This is fixing these tests:
- org.apache.activemq.artemis.tests.integration.paging.PagingOrderTest#testPagingOverCreatedDestinationQueues
- org.apache.activemq.artemis.tests.integration.paging.PagingOrderTest#testPagingOverCreatedDestinationTopics

No additional tests are needed as this change is covereted by the current testsuite
2019-05-02 11:48:14 -04:00
Clebert Suconic fa259ba66e ARTEMIS-2328 Routing after empty addresses could lead to invalid messages 2019-05-01 01:34:28 -04:00
Justin Bertram f584efd574 ARTEMIS-2326 remove pwd params before creating protocol mgr 2019-04-29 20:53:15 -04:00
Clebert Suconic f664713757 NO-JIRA typo on logger 2019-04-29 20:50:32 -04:00
Jiri Danek 4abc2e0430 ARTEMIS-2320 Synchronization on a non-final field 2019-04-29 11:28:10 +01:00
Jiri Danek 781e4c460d ARTEMIS-2320 'while' statement does not loop 2019-04-29 11:28:10 +01:00
Jiri Danek 34e5d607ef ARTEMIS-2320 'compare()' method can be used to compare numbers 2019-04-29 11:27:29 +01:00
Jiri Danek d076d1ca59 ARTEMIS-2320 Fix BadComparable errorprone warning
Possible sign flip from narrowing conversion
    (see https://errorprone.info/bugpattern/BadComparable)
2019-04-29 11:27:29 +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 00a6b933bb ARTEMIS-2324 Fixing possible race on DuplciateDetection
This is fixing AmqpSenderTest.testDuplicateDetection
2019-04-26 19:03:34 -04: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
Francesco Nigro 881143252c ARTEMIS-2317 Avoid long TTSP caused by Page::read using mmap read
It implements Page::read using chunked reading of SequentialFile
instead of using memory mapped files causing long time to safepoint
issues.
2019-04-25 15:43:01 -04:00
Clebert Suconic 9ac7702c93 ARTEMIS-2318 Removing debug message left by accident 2019-04-25 11:18:35 -04:00
Clebert Suconic 0a229d0786 ARTEMIS-2310 Checkstyle fix 2019-04-25 11:14:52 -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 45121eade2 ARTEMIS-2306 Fixing Test and possible NPE 2019-04-22 21:44:14 -04:00
Justin Bertram 7cc890ae6f ARTEMIS-2307 prefix not removed for security check 2019-04-22 16:58:11 -04:00
Clebert Suconic 33d6721ffc ARTEMIS-2314 Improving Test and compatibility check on FQQN 2019-04-22 16:34:15 -04:00
Justin Bertram a2cb44400f ARTEMIS-2314 broken compat with old core JMS FQQN consumer
When auto-creation is off then older clients consuming messages from an
FQQN won't work. This commit fixes that problem and adds a compatibility
test to verify.
2019-04-22 11:04:01 -05:00
Justin Bertram f155838626 ARTEMIS-2313 Accumulation in HierarchicalObjectRepository cache 2019-04-22 10:48:47 -04:00
Michael André Pearce 18bcd21c3e ARTEMIS-2306 Make group first off by default, unless configured 2019-04-17 16:25:42 -04:00
Justin Bertram e0a7073884 ARTEMIS-2309 TempQueueCleanerUpper instances are leaking
The changes from ARTEMIS-2189 mean that
o.a.a.a.c.s.i.ServerSessionImpl#deleteQueue
is no longer called from the same ServerSessionImpl instance that
created it which means that TempQueueCleanerUpper instances will leak.
To resolve the leak the client will only create a new session when
necessary instead of every time delete() is invoked.
2019-04-17 10:41:30 -04:00
Clebert Suconic 7158d8a8a4 ARTEMIS-1592 AutoDeleted queues removed before sendNotifcation on consumer.close()
This could cause errors on Notification udpates and clustering.
2019-04-16 16:59:37 -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
sebthom 11b0de96b9 ARTEMIS-2285 Sorting by user column in connections view not working 2019-04-15 16:46:43 +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
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 b8b7cc899f ARTEMIS-2300 Expiry notifications are not called from scanner 2019-04-10 16:01:18 -04:00
Clebert Suconic 9e45a4ac3a ARTEMIS-2299 Support for redelivery-delay and LVQ 2019-04-10 15:10:05 -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
Clebert Suconic 655c772c20 ARTEMIS-2295 fix IBM JDK schema parsing 2019-04-05 16:19:20 -04:00
Clebert Suconic 821f291125 ARTEMIS-2292 Fix default on XSD for auto-delete-created-queues 2019-04-03 11:38:55 -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
Michael André Pearce 0df9205aca ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue
Additional bits missed
2019-04-02 16:28:47 +01:00
Howard Gao 375f383e90 NO-JIRA Avoid NPE during backup shutdown
When a backup starts without a live, it's nodeID is null.
Added a null check in ClusterConnection's stop() to avoid
NPE if it's shut down.
2019-04-02 11:21:14 -04:00
Justin Bertram d2dc04c712 ARTEMIS-2288 add remote IP to handshake timeout error 2019-04-02 11:10:11 -04:00
Michael André Pearce c4fce10fac ARTEMIS-2292 - Fix queue level auto-delete for topic subscription queue 2019-04-02 10:24:27 -04:00
Francesco Nigro ac4cd4856c ARTEMIS-2283 Bad WARN message "AMQ222211: Storage is back to stable now"
LocalMonitor::under on PagingManagerImpl won't log anymore with a
warning message if the producers got unblocked and with info
if disk it getting freed
2019-04-01 09:47:42 -05:00
Francesco Nigro 0263d45a35 ARTEMIS-2282 QueueImpl::addTail of a management message could throw NPE
Performing direct deliveries of management messages could enter
a code path on QueueImpl::addTail with a NULL pageIterator: performing
a null check will avoid it to throw NPE.
2019-03-27 17:02:06 +00: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
Howard Gao fb549ebe44 ARTEMIS-2273 Adding Audit Log
The Audit log allows user to log some important actions,
such as ones performed via management APIs or clients,
like queue management, sending messages, etc.
The log tries to record who (the user if any) doing what
(like deleting a queue) with arguments (if any) and timestamps.

By default the audit log is disabled. Through configuration can
be easily turned on.
2019-03-14 12:24:59 -04:00
Clebert Suconic 828a4856da ARTEMIS-2274 Fix on Journal buffer overflow with almost large messages 2019-03-13 14:56:46 -04:00
Clebert Suconic 3473618a06 NO-JIRA fixing another test
test failing: org.apache.activemq.artemis.tests.integration.management.AddressControlTest.testSendMessage
2019-03-12 20:21:20 -04:00
Francesco Nigro 39fd58f719 ARTEMIS-2258 The FileLockNodeManager directory should be configurable 2019-03-12 16:15:24 -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
Michael André Pearce fafbd7e2e5 ARTEMIS-1604 Artemis deadlock using MQTT Protocol
Address code review comment not address when PR was merged.
2019-03-12 19:53:07 +00:00
Erik Östlund a760b8bb30 NO-JIRA Added Javadoc reference to the documentation 2019-03-12 14:53:37 -04:00
Francesco Nigro 5b2c47567d ARTEMIS-1604 Artemis deadlock using MQTT Protocol
MQTT shouldn't support direct deliveries
2019-03-12 12:36:25 -04:00
Clebert Suconic 0872f749a9 ARTEMIS-1604 Using default supportDirectDelivery=false
This is to avoid races setting it to false on protocols that won't support direct Deliver
2019-03-11 14:40:42 +01:00
Francesco Nigro c83fce8db4 ARTEMIS-1604 Artemis deadlock using MQTT Protocol
Direct and async deliveries lock QueueImpl::this and
ServerConsumerImpl::this in different order causing deadlock:
has been introduced a deliverLock to prevent both type of delivers
to concurrently happen, making irrelevant the lock ordering.
2019-03-11 14:35:39 +01:00
Keith Wall 95bcfaeb70 ARTEMIS-2262: Correlate management response messages with the request 2019-03-08 12:11:58 -05:00