Hello Qpid experts, Currently we want to use flow control feature in our project for one of the client program produced too many events in a short time, or called event flood. Messages which may be very vital for the customers will be lost so we want to find a way to slow down incoming publications. Then we noticed the flow control, it seems that the client will throttle itself per qpid doc: http://qpid.apache.org/releases/qpid-0.30/cpp-broker/book/producer-flow-control.html.
However, after I did more experiments on this, the result seems to be tricky. Assume there is only one broker and one normal queue that I add by using qpid-config, everything behaviors just like what that qpid doc told us. At this time client(producer) will be blocked when this normal queue is up to the bottle neck. When I add one more broker and create an exchange route between them, it seems to be more complex with regard to flow control issue. Broker A(bridge_queue_a) ------Broker B (queue_b, bridge) Suppose broker B has a normal queue named “queue_b” (limited by 100 bytes and flow stop threshold is 50 bytes) and broker A has a bridge queue named “bridge_queue_a”(also limited by 100 bytes). Using a client called “c” to send out some messages (10 bytes each), we can see queue_b will set the flow stop flag as true after 5 messages are sent from client c. when we want to send another 5 messages, client c will throw an warning exception thus the process will exit abnormally. Intriguingly, bridge_queue_a is deleted in a heartbeat and soon after that create a new one, so bridge_queue_a will never meet flow stop problem. It seems a defeat, from our standpoint. So my question is, does it considered as a normal behavior? Or does I make any mistake /misunderstanding from that? By the way, the version of the qpidd I use is 0.22 and the client uses qpid messaging. Thanks, Kyrie