qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <DJohn...@princeton.com>
Subject Federation - trouble-shooting
Date Wed, 29 Jun 2011 21:34:42 GMT
The documentation on creating routes with qpid-route seems clear and easy 
to follow,
but I'm still missing something.

I've been testing with two brokers, each having a topic exchange. 
Applications
connected to a broker can communicate with each other by sending messages 
to the topic
exchange and reading messages from a queue (exclusive to the application) 
that is
bound to the topic exchange.  The bindings are such that an application 
can send
messages to another application, or to all applications connected to the 
same broker.
So far, so good.

My intention is to implement federation between the topic exchanges on the 
two brokers
so that an application can also send messages to another application on 
another
broker, to all applications on another broker, or to all applications on 
all brokers.
After creating the routes, however, I still cannot get messages to pass 
between
brokers.  I've been mostly testing with exchange routes, but I have also 
tested
dynamic and queue routes with similar results.  In the exchange route 
case, the
messages get stuck in the topic exchange on the source boker (msgIn 
increments, but
msgOut does not).  In the queue route case, the messages get stuck in the 
source queue.

When I create the routes, the links are automatically created (one in each 
direction),
but only one is "Operational".  The second link gets stuck in "Waiting - 
Closed by peer"

Some questions:

1. What are some possible causes of the "Closed by peer" error, or how can 
I
trouble-shoot the links?

2. Even with only one link being "Operational," I would expect that 
federation would
at least work in one direction, but instead I can't get federation to work 
in either
direction.  Is there something else I am doing wrong?

Here's my (typical) setup...

Broker A:

exchange: e_topic
    type: topic
    dur: N

queue: q_x
    dur: N
    autoDel: Y
    excl: Y
    bindings:
        bind [all] => e_topic
        bind [all.a] => e_topic
        bind [all.a.x] => e_topic

Broker B:

exchange: e_topic
    type: topic
    dur: N

queue: q_x
    dur: N
    autoDel Y
    excl: Y
    bindings:
        bind [all] => e_topic
        bind [all.b] => e_topic
        bind [all.b.x] => e_topic

Static (exchange) Routes between A and B:

    A(ex=e_topic) <= B(ex=e_topic) key=all.a.#
    A(ex=e_topic) <= B(ex=e_topic) key=all.a
    A(ex=e_topic) <= B(ex=e_topic) key=all
    B(ex=e_topic) <= A(ex=e_topic) key=all.b.#
    B(ex=e_topic) <= A(ex=e_topic) key=all.b
    B(ex=e_topic) <= A(ex=e_topic) key=all

Current result: Appplication X connected to broker A can see messages that 
were sent
to the topic exchange on broker A with the subjects "all.a.x", "all.a", or 
"all"; but
does not see messages that were sent to the topic exchange on broker B 
with the
subjects "all.a.x", "all.a", or "all".



David Johnson
Princeton Consultants
2 Research Way
Princeton, NJ 08540
609.987.8787 x266

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