Hi Martin, On Thu, 18 Jul 2019 at 15:55, Martin Krása <[email protected]> wrote:
> Hello, > > I have installed Java broker version 7.1.5-SNAPSHOT (last commit > 4dd26ddd0263fac22d91a0a16c48789592a9ccb2). Using QPID JMS Client > 0.40.0 producer I sent valid messages to the exchange. All messages > end up in the queue, as expected. > > When the number of messages sent exceed queue count the broker > produces INFO message: > > “CHN-1005 : Flow Control Enforced (Queue queue)” > > After that the client is able to continue to send all the remaining > messages, the broker settles every single one of the messages sent. > > I have tested that the queue receives all the messages sent even if > either the queue count or queue size are smaller than the number of > messages and/or size of all messages sent by the client. > > I would expect the client to be stalled/stopped until either the queue > count or queue size decrease below the queueFlowResumeLimit. > So, currently flow control on the queues is only enacted if you send directly to the queue (rather than via an exchange). This is because for AMQP the flow control is on the destination of the link and if the destination is an exchange then there is no way to control the message flow to a specific queue before the message is sent. One particular problem here is if the anonymous exchange/terminus is used... i.e. a single link is created for publishing messages and all inbound messages go over that link rather than a different link for each queue. I believe this is the default behaviour for the Qpid JMS client, which is why you would not se flow control. -- Rob > > Is there any configuration I might be missing? > > For broker configuration please see attached flowcontrol_json.txt file. > > Regards > Martin > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected]
