qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Haoliang Chen <chl41...@gmail.com>
Subject 0.30 C++ Broker: MsgDrop in topic exchanges' dynamic route
Date Wed, 22 Jul 2015 09:33:34 GMT
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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message