Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
Description
It is stated in AMQP protocol documentation:
An AMQP connection consists of a full-duplex, reliably ordered sequence of frames. A frame is the unit of work carried on the wire. Connections have a negotiated maximum frame size allowing byte streams to be easily defragmented into complete frame bodies representing the independently parsable units.
Each session negotiates properties and state that drives the flow of the frames:
- next-incoming-id
- incoming-window
- next-outgoing-id
- outgoing-window
- remote-incoming-window
- remote-outgoing-window
The capacity of the incoming flow is limited by the maximum frame size and incoming window. When message size exceeds the capacity of the incoming flow to broker the transfer freezes. Neither client nor broker tries to negotiate a new incoming window (I have tested several clients.) The broker is the receiver and so it is the authority that makes the final decision about incoming window. Hence, the broker should offer to client a new incoming window when the capacity is depleted.