Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.38.0
Description
Context:
The following behaviour has been seen while developing a plugin intended to limit the size of messages accepted by Artemis.
When a message size exceeds the configured size limit, the plugin throws an exception in the beforeSend method to stop further message processing within Artemis.
Details:
The plugin has been tested and works correctly on the following scenarios:
- CORE protocol, standard & large messages (transacted session + auto-acknowledgement)
- OPENWIRE protocol, standard & large messages (transacted session + auto-acknowledgement)
- AMQP protocol, standard & large messages (auto-acknowledgement)
However, two issues were identified when using the AMQP protocol :
- the client does not receive any exception from Artemis when the session is transacted
- if the received message is a large message, it is created on the filesystem but becomes an orphan, with no link to an existing message in the Artemis journal.
This occurs in both transacted and auto-acknowledge session cases.
Client-side:
The JMS AMQP client tested was QPid JMS 1.12.1.
From the QPid side, it seems that the transacted session is successfully commited, and no error is received.
Therefore, it seems the error is not properly propagated to the client by Artemis.
Test case:
A test case is provided in attachment, including both CORE and AMQP protocol scenarios.
Before running it, add the test file into the artemis folder :
- tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/plugin
Attachments
Attachments
Issue Links
- links to