gregory james marsh wrote:
Hi Carl,
A question from our group about the following client params you mentioned
in your email (included below):
--max-frame-size N (65535) the maximum frame size to request.
--bounds-multiplier N (2) bound size of write queue (as a
multiple of
the max frame size).
--tcp-nodelay Turn on tcp-nodelay
Could you further explain/clarify the behavior of "--bounds-multiplier".
There is a queue of outgoing frames that are being written to the wire
by a separate thread from the application thread that executes commands
and publishes messages.
This queue can grow quite large and the bounds-multiplier is a somewhat
clunky means of controlling that. It is specified as multiples of the
buffer size which is controlled by the max frame size property. So a
bounds multiplier of 2 means that only two buffers worth will be queued
for writing before the application thread blocks.
We read over the code comments in
trunk/qpid/cpp/src/qpid/client/ConnectionSettings.h
What exactly is the "write queue?" Based on the code comments, does
bounds allow outgoing frames to be larger than maxFrameSize for the
connection?
No, frames can never exceed the max-frame-size (though a message can be
broken into more than one frame, so the frame size doesn't prevent
larger messages being sent).