qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gao, Jie (Kyrie, HPIT-DS-CDC)" <jie....@hp.com>
Subject RE: Questions of qpid-route usage
Date Tue, 25 Feb 2014 18:16:45 GMT
Hi Gordon,

I still have some questions. Hope I didn't bother you too much. I will still use this model
to explain my question.

A(on node 1) ---> B (on node 2)


>Correct, the qpid-route tool will connect to the first broker details and ask it to create
the route/link. The first broker will then establish a TCP socket to the second and after
going through the AMQP connection protocol, (by default) subscribe to receive messages as
directed.

The first broker in qpid-route is dest broker. Do you mean 'B' here? But from your next explanation
'A' sounds more reasonable. But..er..but why we can establish a route without 'A'? I mean
I can use "qpid-route route add B A xxxx xxx" to create a route successfully (well I just
see no error return) when 'A' is actually missing. I can later start to run broker 'A'. so
if 'A' is the one which need to link to 'B', how can it possibly know who is 'B'? since when
we run qpid-route to add a route, we don’t have 'A'. 

>It is therefore A that records the existence of this interbroker link. 
>  From the point of view of B, A is (almost) just like any other client.

> The broker B doesn't really know about the route. It is A that has that knowledge. It
is always A that will attempt to re-establish the connection. If the connection between them
is broker A will keep retrying indefinitely to reconnect. A can also durably record the details
of the link such that if it restarts it can again resume trying to establish the connection.

It sounds that if 'A' and 'B' are both active and also route is there. The connection between
'A' and 'B' will always be okay? But in one of our project we have met such problem (well
it's very hard to reproduce): node 1 where 'A' is running is down and after for a while node
1 is up again and 'A' is also active again. We check 'A' and 'B', both are running. And we
also check "qpid-route route list xxx" and found there is a route between 'A' and 'B'. but
the result is there is no message flow between 'A' and 'B'. after we kill 'B' and restart
'B' and use "qpid-route route add B A xxx xxx", everything is okay then. So it sounds there
is a stale route between 2 brokers. If 'A' can durably record the details of the link and
even it can establish the connection after it resume. Er..I don’t think this issue will
happen. Wait. How can 'A' record the details? Maybe save information in a file? Maybe it's
because 'A' lost these information? 


To summarize my questions: 
1) what will happen when only broker 'B' is active and meanwhile we run "qpid-route route
add B A xx xxx" to add a route? According to Pavel Moravec's mail, 'B' will try to link to
'A' for several times until it gives up. But you just said it's 'A' which will establish the
route. I felt confused here.  
2) Is it possible to have both 'A' and 'B' and route available but still cannot pass the message?

3) sorry I just think one more problem: I just noticed that there is an option called " -d,
--durable         Added configuration shall be durable". I found the explain " A durable route
survives broker restarts, restoring a route as soon as both the source broker and the destination
are available. If the connection to a destination is lost, messages associated with a durable
route continue to accumulate on the source, so they can be retrieved when the connection is
reestablished.".  So if I added -b when I add a route, would it be helpful to solve the question
2?

Many thanks,
Kyrie

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org For additional commands, e-mail:
users-help@qpid.apache.org

Mime
View raw message