Hi Pavel Moravec,

Thanks for explaining to me. I am trying to understand you. So the answers for 
my questions are:

> If we want to add a route between 2 brokers, we can use qpid-route 
> route add ip:port ip:port exchange_type routingkey. Which means:
> 
> A-->B
> 
> A is a fake client and B will be the server. B will store all the 
> route information and also will be waiting for A's data. Inside qpid 
> it uses TCP protocol, so I guess B will be the server in the lower level(am I 
> right?).

Yes, B is the server and A is the client.

> In this way, we can add a route without broker A. Which means, even if 
> we didn't start A, the route would still be added successfully. The problem 
> is:
> Can we always do this thing? Ummm...if we let A missing for a very 
> long time (at this time B and the route will always exist), then we start A 
> again.
> Does it still works? 

The answer of this question is NO. After several reconnection tries between 'A' 
and 'B' are over, 'B' will never try to link to 'A'.

>Also, if we let the route existed in B, will B 
> being busy(waiting for A's data) all the time?

Since 'B' will never try to link to 'A', 'B' will not be busy all the time. But 
there is another question: why we still can see the link information by running 
"qpid-route route list xxx"? If the link between 'A' and 'B' is dead, I think 
it's better to delete the bad route automatically. And next time when 'A' 
starts to run again, we cannot reuse this route, instead we have to delete the 
route by using "qpid-route route del xxx" first and then using "qpid-route 
route add xxx" . 


> Another question is when we use -s option in qpid-route. I saw the 
> help document it said: " Configure the route in the source broker 
> (create a push route)." So does it mean A will be the server and B 
> will be the fake client here?

The answer for this question is NO(according to your email). 'A' will still be 
the client and 'B' will be the server. The only difference(after a tcp link 
established) between '-s' and NOT '-s' is route information will be saved in 
'A' instead of 'B'.

Am I right?

Thanks,
Kyrie 


-----Original Message-----
From: Pavel Moravec [mailto:[email protected]] 
Sent: 2014年2月24日 16:57
To: [email protected]
Subject: Re: Questions of qpid-route usage

Hi Kyrie,
not sure if I understand your thoughts properly, but in normal A-->B federation 
(without -s option), B broker behaves as a fake client and subscribes to A. 
When -s is used, A initiates the connection to B and requests it to connect to 
itself. The main reason for this push-like option is to bypass potential 
firewall blocking B->A connection establishment.

About federation link reconnection (assuming A-->B pull route where B connects 
to A): if A is down, B periodically retries to connect to A, usually according 
to TCP retry scheme with doubled delays between two subsequent retries. These 
are managed by operating system. Once OS gives up, I *suppose* qpid broker 
invokes another request to the OS (so another full TCP retry scheme is 
followed), and the broker does so forever.

Hope that helps.

Kind regards,
Pavel Moravec


----- Original Message -----
> From: "Jie Gao (Kyrie, HPIT-DS-CDC)" <[email protected]>
> To: [email protected]
> Sent: Monday, February 24, 2014 9:16:10 AM
> Subject: Questions of qpid-route usage
> 
> Hi all,
> 
> I am really confused about  this tool.  Hope some kind soul can help 
> to explain the mechanism to me.
> 
> If we want to add a route between 2 brokers, we can use qpid-route 
> route add ip:port ip:port exchange_type routingkey. Which means:
> 
> A-->B
> 
> A is a fake client and B will be the server. B will store all the 
> route information and also will be waiting for A's data. Inside qpid 
> it uses TCP protocol, so I guess B will be the server in the lower level(am I 
> right?).
> In this way, we can add a route without broker A. Which means, even if 
> we didn't start A, the route would still be added successfully. The problem 
> is:
> Can we always do this thing? Ummm...if we let A missing for a very 
> long time (at this time B and the route will always exist), then we start A 
> again.
> Does it still works? Also, if we let the route existed in B, will B 
> being busy(waiting for A's data) all the time?
> 
> Another question is when we use -s option in qpid-route. I saw the 
> help document it said: " Configure the route in the source broker 
> (create a push route)." So does it mean A will be the server and B 
> will be the fake client here?
> 
> -s [ --src-local ]     Configure the route in the source broker (create a push
> route).
> 
> Thanks,
> Kyrie
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected] For 
> additional commands, e-mail: [email protected]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected] For additional 
commands, e-mail: [email protected]

Reply via email to