Commit Graph

1081 Commits

Author SHA1 Message Date
Justin Bertram a28b4fb34e ARTEMIS-1545 refactor & rework a few incompatible pieces
Existing commit for ARTEMIS-1545 broke bridges and large messages. This
commit fixes those, and refactors the solution a bit to be more clear.
2018-09-27 17:29:18 -04:00
Michael André Pearce e4ba48a311 ARTEMIS-1545 Support JMS 2.0 Completion Listener for Exceptions 2018-09-27 17:29:18 -04:00
Justin Bertram c72bf53cb1 ARTEMIS-2098 potential NPE when decoding protocol 2018-09-27 10:24:33 -04:00
Michael André Pearce 8e40b2d4f4 ARTEMIS-2095 - Typed Properties ThreadSafety
Add Concurrency Test to expose concurrency errors seen in logs.
Add Fix to ensure TypedProperties to ensure threadsafety
Add forEach and forEachKey to allow for provide a thread safe way of iterating through keys and values, without needing to duplicate the collection.
Add getMapNames method to remove code duplication and to ensure thread safe
2018-09-26 15:41:52 +01:00
Michael André Pearce cce0e1927c ARTEMIS-2094 - Fix Configuration change loss when network Issue
Further fix around network loss.
If network loss (split) and slave activates, for a period its config used when it initializes in initialisePart2 was stale. 
Add/Extend test to ensure address-setting change made on live preserved on slave (after activation)
Add/Extend test to ensure security-setting change made on live preserved on backup (after activation)
2018-09-26 09:23:57 -04:00
Justin Bertram 9c62531c2f ARTEMIS-1961 track routed and unrouted messages sent to an address 2018-09-25 18:07:32 -04:00
yang wei d868563e7b ARTEMIS-2092 fix first page messages lost on server crash bug 2018-09-19 16:19:45 -04:00
Justin Bertram 5c8fcc19fd ARTEMIS-1991 document advanced destination options 2018-09-18 12:34:30 +01:00
Justin Bertram c60d17884a ARTEMIS-1919 implement SNI properly 2018-09-18 08:00:05 +01:00
Roddie Kieley 34df9679d7 ARTEMIS-2000: For ScaleDown set the RoutingType header property on the message
so if the address does not exist on the other end it will be created correctly.

Test added by Andy Taylor (commit squash during rebase on #2202)
2018-09-14 14:48:09 -04:00
andytaylor 82795b7bff ARTEMIS-1898 - make sure tosend credits on rejected messages
And also to run the credit runnables once memory is free in fail mode

https://issues.apache.org/jira/browse/ARTEMIS-1898
2018-09-13 16:22:28 -04:00
andytaylor 3b34127bb3 ARTEMIS-2075 - allow Extra backups to try to replicate more than once
https://issues.apache.org/jira/browse/ARTEMIS-2075
2018-09-13 10:02:45 +01:00
Francesco Nigro 7e09e1b350 ARTEMIS-2070 broker can reduce buffer copies with large messages 2018-09-12 20:59:12 -04:00
Clebert Suconic 6361079aa0 ARTEMIS-2084: Failover will not work with network cable disconnect on core protocol 2018-09-12 19:59:00 -04:00
Francesco Nigro 3c7252adbc ARTEMIS-2068 save reading any file to get AMQP large msg size
ServerJMSBytesMessage::getBodyLength can save reading
the whole large message file by reading just its
file size
2018-09-11 16:36:45 -04:00
Francesco Nigro 7a7304bb28 ARTEMIS-2078 AMQP large msg aren't consumed by clusters without persistence
NullStorageLargeServerMessage is not correctly exposing its body buffer
to allow CoreAmqpConverter to convert it into an AMQPMessage
2018-09-11 16:35:15 -04:00
Michael André Pearce c417d0b5f8 ARTEMIS-2081 listConfiguredQueues returns only queues created by config
Extend test case to reproduce problem of client created queues being incorrectly removed on simple reload of config.
Add a flag/field to the queues created by configuration/broker.xml so we can correctly filter only queues created/managed by config.
Update listConfiguredQueues to use the new queue flag
2018-09-11 13:55:11 -04:00
Michael André Pearce 4b88f38b2d ARTEMIS-2076 Make Filter update-able
Add Tests
Add implementation inline with other queue updatable settings.
Enhance tests to ensure queue is not destroyed during config change and messages in queue already are preserved
2018-09-07 15:49:03 -04:00
Michael André Pearce dbfdc18f49 ARTEMIS-2065 Change routing-type isnt destructive.
Revert previous fix
Keep original ConfigChangeTest
Apply new non-destructive fix.
Enhance tests to ensure messages in queues are not lost either on reload when running or when config changed on-restart (e.g. queue i not destroyed)
2018-09-07 15:25:57 -04:00
Clebert Suconic 05ce7c6ecd NO-JIRA Adding a test playing with network disconnects and failover 2018-09-05 18:13:35 -04:00
Justin Bertram 3827c54c05 ARTEMIS-2065 Can't change queue routing-type between restarts 2018-08-30 14:31:18 -05:00
Justin Bertram b0d30d4da5 ARTEMIS-2064 make address & queue deployment more robust
Any failure to deploy an address or queue will short-circuit the broker
initialization process preventing any other addresses or queues from
being deployed as well as other critical resources like acceptors, etc.
2018-08-30 15:10:44 -04:00
Justin Bertram e7e5112d51 ARTEMIS-2066 LegacyJMSConfiguration parser may deploy non-jms queues 2018-08-30 15:08:10 -04:00
Justin Bertram 3af9ca057f ARTEMIS-2063 improve logging for address/queue deployment 2018-08-29 14:29:49 -05:00
Martyn Taylor 9a855e18e1 ARTEMIS-2055 Lock LM on PacketHandler on clear 2018-08-29 13:40:19 -04:00
Martyn Taylor 490ef71e1d ARTEMIS-2055 Set Live LM to Null after route
The ServerSessionPacketHandler has a close() callback handler which will
delete any pending large messages.  However, there is a race where a
large message can be routed, then the close delete the associated large
message resulting in data loss.
2018-08-27 12:56:53 +01:00
Christopher L. Shannon (cshannon) 87f393e597 ARTEMIS-2052 - Fix defaultConsumerWindowSize negotiation
First, QueueQuery should use address name for address settings
The name used for looking up address settings for a queue now uses the
address name if there is a local queue binding

Second, make sure sent credits to the server is the correct value
2018-08-26 18:25:47 -04:00
Clebert Suconic 6b1abd1aad ARTEMIS-2053 avoiding data loss after compacting 2018-08-26 18:17:29 -04:00
Carsten Lohmann 95ec8ea433 ARTEMIS-2044 Add onSendException, onMessageRouteException to ActiveMQServerMessagePlugin 2018-08-24 21:35:34 +01:00
Clebert Suconic 63e6cd98f8 ARTEMIS-2046 Fixing issues with JournalStorageManager.stop in replication, JDBC and shared storage 2018-08-20 21:25:57 -04:00
Michael André Pearce 24a28da09f ARTEMIS-2022 - Enhancements
Fix checkstyle
Avoid duplicated logic
Ability to filter and group
Instantiate SimpleString property key once
Get property value via getObjectProprty to ensure all special mapped properties such as in AMQPMessage would return
Avoid a custom string to represent null, instead rely on Java's representation "null" by using Objects.toString to get the string value of the property value used to group by.
2018-08-13 08:37:56 +01:00
Arthur Fritz Santiago 349477ed31 [ARTEMIS-2022] Ajust checkstyle 2018-08-13 08:37:56 +01:00
Arthur Fritz Santiago e15917129f [ARTEMIS-2022] Create count messages 'group by' this property filter 2018-08-13 08:37:56 +01:00
Michael André Pearce 19e1bbeb49 ARTEMIS-2019 - Seperate ServerPlugin Interfaces
Seperate plugin interface by area, all extending a base interface. 
Update code to check and call only plugins implementing specific interfaces.
Existing interface extends all the new interfaces for back compatibility or those who want simplicity and don't care about perf.
2018-08-09 19:42:28 -04:00
Justin Bertram 53f8bc3daf ARTEMIS-2010 actively detect unauthenticated LDAP Bind requests 2018-08-09 19:40:30 -04:00
Christopher L. Shannon (cshannon) e915545278 ARTEMIS-2018 - Add bridge events to plugin API
Add callbacks to handle bridge events including beforeDeliverBridge,
afterDeliverBridge and afterAcknowledgeBridge
2018-08-09 13:37:56 +01:00
Clebert Suconic b710df7844 ARTEMIS-2011 Fixing incompatibility of AddressSettings encode between versions
To fix this I added a retry on AddressSettings using code that's closer to the original version
2018-08-06 11:12:46 -04:00
Jeff Mesnil fd9aad202b [ARTEMIS-1947] Session metadata in session management operation
Fill the session's metadata in JSON properties instead of serializing it
as an opaque String.

JIRA: https://issues.apache.org/jira/browse/ARTEMIS-1947
2018-08-06 14:11:40 +02:00
Christopher L. Shannon (cshannon) e629ac4538 ARTEMIS-2003 - Add bridge metrics
This commit adds support for tracking metrics for bridges for both
normal bridges and bridges that are part of a cluster. The two
statistics added in this commit are messages pending acknowledgement
and messages acknowledged but more can be added later.
2018-08-03 14:18:34 -04:00
Michael André Pearce 825081cfc0 ARTEMIS-856 Fixing ScaleDownTest
Don't increment the pos if redistributor. causes pos to be > size thus index out of bounds when getting the consumer on next loop.
2018-08-03 10:48:59 +01:00
Clebert Suconic 77989c3763 NO-JIRA avoiding a NPE if the server is stopped 2018-08-02 10:57:17 -04:00
Michael André Pearce de465179e5 ARTEMIS-856 Fixing MessageRedistributionTest
Cleaner code.
2018-08-02 14:20:03 +01:00
Michael André Pearce ddd554f43f ARTEMIS-856 Fixing ExclusiveTest 2018-08-02 13:53:22 +01:00
Michael André Pearce ec742cb889 ARTEMIS-856 Fixing MessageRedistributionTest 2018-08-02 13:52:32 +01:00
Clebert Suconic 59520b9018 ARTEMIS-856 Fixing QueueCommandTest 2018-08-02 10:50:26 +01:00
Clebert Suconic 0e36e072bd ARTEMIS-1732 I simplified some of the changes performed at the previous commit.
Also I changed GlobalDiskFullTest to actually block the senders.
I moved the Runnables from PagingManager into the Util as AtomicRunnable.
2018-07-31 21:39:04 -04:00
Howard Gao 53e1d60160 ARTEMIS-1732 AMQP anonymous producer not blocked on max-disk-usage
Anonymous senders (those created without a target address) are not
blocked when max-disk-usage is reached. The cause is that when such
a sender is created on the broker, the broker doesn't check the
disk/memory usage and gives out the credit immediately.
2018-07-31 21:39:01 -04:00
Shailendra Kumar Singh 29f39631dc [ARTEMIS-1994]Include global-size-bytes in WARN message AMQ222038/39 for paging
[ARTEMIS-1994]Minor changes
2018-07-31 14:25:45 -04:00
Michael André Pearce 332cee8e66 ARTEMIS-1997 - un-needed SimpleString creation on hotpath with Filters
Create the SimpleString on construction of PropertyExpression so it can be re-used instead of creating it every time its filtered in the FilterImpl
2018-07-31 14:17:20 -04:00
Christopher L. Shannon (cshannon) 5fc60d7437 ARTEMIS-1987 - Add consumer window size to AddressSettings
Support configuring a default consumer window size via AddressSettings
which will allow sensible defaults to be used by address type
2018-07-31 14:16:11 -04:00