Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
0-8/9/9-1 controls the message prefetch on a per-session basis... however space if not freed in the prefetch buffer until messages are acknowledged/committed.
In the case of client-ack / transactional messaging setting the prefetch value to a low number (e.g. 1) and then attempting to receive() multiple messages can lead to an effective deadlock whereby the client is waiting for a message that cannot come because the prefetch buffer is "full".
In the case where the client is explicitly calling receive() through the API we should expand the prefetch buffer in an attempt to meet their request for new messages.