Commit Graph

446 Commits

Author SHA1 Message Date
Clebert Suconic e7a437d999 ARTEMIS-2706 Discounting Transfer payload size 2020-04-14 16:56:52 -04:00
Clebert Suconic d27d61f223 ARTEMIS-2706 Use FrameSize to decide when to flush large messages 2020-04-14 12:59:25 -04:00
Dirkjan Ochtman 89f58e1597 ARTEMIS-2695 Return exception message in AMQP conversion error response 2020-04-13 16:03:42 -04: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 858a8240f9 ARTEMIS-2659 / ARTEMIS-2673 Fix AmqpSendReceiveTest.testAcceptWithoutSettling 2020-04-07 23:06:40 -04:00
Federico Valeri 8cf35385a4 ARTEMIS-2608 Fix ClassCastException on binary properties conversion 2020-03-27 13:12:57 -04:00
Clebert Suconic ca50b3449e ARTEMIS-1975 Removing ThreadLocal for StorageManager 2020-03-25 21:54:46 -04:00
Clebert Suconic 03fb630f73 ARTEMIS-1975 Fixing LargeMessage encoding for replication 2020-03-25 16:16:05 -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
Francesco Nigro 085a74cf06 ARTEMIS-2669 not durable AMQP messages cannot became durable on depaging 2020-03-22 17:46:37 -04:00
Clebert Suconic 559fa2008d ARTEMIS-2672 multi-thread isue with Shared Subscriptions
Some of them may throw queue already existed exception
2020-03-20 21:26:45 -04:00
Michael Pearce f1fdfc6857 ARTEMIS-2665 AMQP use createSharedQueue like Core 2020-03-18 11:51:58 -04:00
Francesco Nigro a5bd0065a9 ARTEMIS-2617 Fixing KMPNeedle::searchInto API and specializing it
KMPNeedle::searchInto has been specialized and copied
to handle ReadableBuffer in order to save polymorphic
calls on it that would make it slower on hot paths.
2020-03-17 16:30:12 -04:00
Francesco Nigro 5f0b7dd7cd ARTEMIS-2661 AMQP Journal loading is triggering reencode 2020-03-17 14:02:28 -04:00
Francesco Nigro 2105479304 ARTEMIS-2658 AMQP message read from page has wrong encode size 2020-03-16 18:20:39 +01:00
Clebert Suconic 4d2b6c07bd NO-JIRA just adding AMQPPersisterTest 2020-03-13 15:07:37 -04:00
Clebert Suconic c3128aa144 ARTEMIS-2642 Fixing Drain Timeout Issue on AMQP
The drain control has to immediately flush
otherwise a next flow control event may remove the previous status from Proton.
So, this really cannot wait the next executor, and it has to be done immediately.
2020-03-11 11:44:42 -04: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 a8cf6b04b4 ARTEMIS-2607 interceptor returns false but processing continues 2020-02-14 13:23:05 -05:00
Francesco Nigro d42267f05a ARTEMIS-2617 Lazy scan AMQP message data 2020-02-12 13:29:51 -05:00
Francesco Nigro 5897909dc9 ARTEMIS-2617 use core pools to reduce GC on journal loading 2020-02-12 13:29:51 -05:00
Sebastian Thomschke 26b5ad439c NO-JIRA Remove redundant instanceof check in CoreAmqpConverter
message is of type ServerJMSMessage, thus the test `if (message instanceof ServerJMSMessage)` always yields true.
2020-02-03 09:56:39 -06:00
brusdev 1716655214 ARTEMIS-2597 Memory Leak when closing AMQP Consumers in the context
Remove server senders on remote link close.
2020-01-15 09:56:21 +01:00
Justin Bertram 97735ca72c [maven-release-plugin] prepare for next development iteration 2020-01-10 09:00:58 -06:00
Justin Bertram 25a947f6cb [maven-release-plugin] prepare release 2.11.0 2020-01-10 08:57:46 -06:00
Keith Wall 39cd9d56f6 ARTEMIS-2497: [AMQP] Allow handling of the reject disposition to be configured. 2020-01-08 11:56:23 -05: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
Keith Wall 7bd710520d ARTEMIS-2494: [AMQP] Allow Modified disposition to be used signal address full to a sending peer 2019-12-03 11:05:23 -05:00
Howard Gao 044319da05 ARTEMIS-2560 Duplicate amqp messages over cluster
When AMQPMessages are redistributed from one node to
another, the internal property of message is not
cleaned up and this causes a message to be routed
to a same queue more than once, causing duplicated
messages.
2019-12-03 09:46:28 -05:00
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
Ulf Lilleengen 2ec96bf46d ARTEMIS-2488: Handle the case where source address is null 2019-09-18 20:49:16 -04:00
Clebert Suconic 7263e820f3 NO-JIRA Fixing intermittent failure on CreditsSemaphoreTest 2019-09-05 15:41:33 -04: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
Clebert Suconic c929d34eed ARTEMIS-2454 Fixing body re-encoding 2019-08-25 23:03:53 -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
Timothy Bish 448f72738b ARTEMIS-2437 Allow extended types in annotations in AMQP to Core
When converting from AMQP to core and back again support annotations that
aren't able to be placed into Core message properties by storing the bytes
from encoding the types to AMQP encodings and then decoding them again
when converting back into AMQP messages.

Requires update to proton-j 0.33.2 for encoding fix
2019-08-18 22:13:35 -04:00
Clebert Suconic 5f75f68129 ARTEMIS-2454 Message Body damaged after re-encoding 2019-08-18 17:17:12 -04:00
Clebert Suconic f303cd7ca9 NO-JIRA Adding log.warn on AMQPMessage 2019-08-09 14:05:41 -04:00
Clebert Suconic 205a1399e7 ARTEMIS-2440 Call timeout should retry the connection asynchronously 2019-08-05 12:12:33 -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
brusdev 022b5895ef ARTEMIS-2394 Improve scheduling sync for AMQPConnectionContext
Remove synchronized blocks using an AtomicReference.
2019-07-22 10:55:18 -04:00
Justin Bertram 8484c8a43b ARTEMIS-2389 add details to conn failure logging 2019-07-22 09:56:55 -04: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
brusdev d14c0de335 ARTEMIS-2385 Log header for rejecting message with too large header
Fix test and warning condition to avoid false issues.
2019-06-20 16:20:11 +02:00
brusdev 74c79625b8 ARTEMIS-2002 Proton transport objects leaked
Remove scheduled tasks when a client disconnects to allow garbage
collector to delete the unused proton objects. Add a the unity test
AMQPConnectionContextTest to check leaks after close.
2019-06-19 10:38:00 -05:00