The result is easier to reproduce if the dest broker was set --default-queue-limit 10240.
And the dest broker will throw: 2015-07-23 14:31:43 [Broker] warning Exchange My.topic cannot deliver to queue My.topic_284ad1f5-b871-4c13-9a59-f1d6319b8286: resource-limit-exceeded: Maximum depth exceeded on My.topic_284ad1f5-b871-4c13-9a59-f1d6319b8286: current=[count: 8, size: 9152], max=[size: 10240] (/home/MQ/qpid-cpp-0.32/src/qpid/broker/Queue.cpp:1628) As you see, this problem also happened on 0.32 Brokers. 2015-07-22 17:33 GMT+08:00 Haoliang Chen <[email protected]>: > Hello all, > > I was attempting to establish a reliable route between two exchanges on > two brokers, but > failed. It seem like the packages start to be dropped by the source broker > once its buffer > was full. I want the source broker stop to recive if its buffer was full. > > I have a federation consist of two 0.30 brokers on different computers, > donate by B1 and B2. > Both run on the same config, > > auth=no > realm=QPID > data-dir=/home/MQ/broker-data/ > > And I new a exchange on both brokers using the following command: > qpid-config -b B1 add exchange topic My.topic --durable > qpid-config -b B2 add exchange topic My.topic --durable > > Then I add route: > qpid-route -d --ack=10 dynamic add B1 B2 My.topic > qpid-route -d --ack=10 dynamic add B2 B1 My.topic > > Then I start to recived from B1 with the 0.32 qpid-recieve on Windows: > qpid-receive -b B1 -a My.topic --verify-sequence --print-content 0 > --timeout 100 > --report-every 100000 > > And I start to flood B2 with the 0.32 qpid-send on Windows: > qpid-send -b B2 -a My.topic -m 0 --durable yes --content-size 10240 > --report-every 100000 > > Not long after, the qpid-receive stop and I Got: > qpid-receive: Gap in sequence numbers 18987-19742 > (..\..\..\qpid-cpp-0.32\src\te > sts\qpid-receive.cpp:172) > > Meanwhile the qpid-send keep running and sending. The Task Manager shown a > static outgoing > rate. > > Here are the output of #qpid-stat -e -b B1 > Exchanges > exchange type dur bind msgIn msgOut msgDrop byteIn > byteOut byteDrop > > =========================================================================================== > direct 2 0 0 0 0 > 0 0 > My.topic topic Y 0 110k 29.8k 81.1k 1.14g > 307m 835m > ... > > Here are the output of #qpid-stat -e -b B2 > Exchanges > exchange type dur bind msgIn msgOut msgDrop byteIn > byteOut byteDrop > > =========================================================================================== > direct 2 0 0 0 0 > 0 0 > My.topic topic Y 0 29.6k 29.6k 0 306m > 306m 0 > ... > > And the network info: > WindowsClient to B1/B2 is faster than B1/B2 to WindowsClient; > B1/B2 is connected to the same switch. > > If I send to and receive form the same broker, it works well. No msg was > lost, very reliable. > Incomming message will be rejected or jammed once the broker's buffer was > full. The Task > Maneger shown pauses on outgoing rate. > > I want the federation behave like that, jam the sender once the broker's > buffer was full and > don't drop any message. What did I miss? > > Sorry for the english, I am not a native english speaker. > > Harris >
