Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Currently the Session class gives us the ability to acknowledge either a single specified message, or all outstanding messages for the Session. We'd like to be able to acknowledge all messages up to and including a given message in a single method call, to save on round trip times to the broker.
Our use case.
1) create receiver with capacity > 0 (e.g. 100)
2) repeat:
a) receive message X from queue A
b) perform business logic
c) send message X to a broker (could be same broker, could be a different broker)
3) Every so often, we'd like to acknowledge messages that we're certain have been received by the broker in 2c. We can't use session.acknowledge() because it's possible some messages that we've received in 2a haven't been completed by the broker in 2c. We plan on checking the unsettled count in our sender and using that to determine which messages can be safely acknowledged. It's currently slow to ack each message individually, and we think that being able to invoke session.acknowledgeThrough(messageX) should be faster for us.