Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
None
-
None
-
None
Description
ActiveMQ possesses a activemq.prefetchSize client-side configurable parameter (via STOMP headers) which provides a way to configure the amount of messages which can be retrieved by the client without acknowledging the message reception.
Current implementation of Artemis does not allow this behavior and instead only allows to set the stompConsumerCredits, the maximum size in bytes which may be received by the consumer as messages, from server-side configuration in broker.xml. This represents a functionality loss for customers migrating from ActiveMQ to Artemis as stompConsumerCredits works based on message size in bytes and not message units and since it is not configurable via client-side STOMP headers.
This is unexpected since a consumer, depending on the processing, might want to retrieve a batch of messages in order to bulk process them for better performance (i.e. retrieving log messages from queue and storing them into a database, bulk inserting will be much faster than 1 by 1 inserts). In other cases, the consumer might want to only receive one message at most before acknowledging and so this parameter should be configurable from client-side in order to better adapt to the consumer processing and to achieve a more complete feature parity with ActiveMQ Classic.
Attachments
Issue Links
- duplicates
-
ARTEMIS-589 Add prefetch control support via STOMP
- Closed