David, thank you for the info.
I think I got your idea - send messages to broker B with key= all.a.x, but do
not have bindings on B with this key on the local queues.
As I see, the route works only while bindings exists. So, could you please
check the following things.
1. In my case I have temp queue on source broker after create the correct route
and binding - qpid-config -b exchanges:
bind [murex.all.trades.nbd] =>
bridge_queue_1_9258360d-a740-44a2-91ec-65bcf56f3e50
2. In my case the command qpid-stat -e return actual count of exchange binding
(bind column). In your case this value is 0 on both brokers.
qpid-stat -e A:
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
====================================================================
e_topic topic 3 0 0 0 0 0 0
qpid-stat -e B:
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
====================================================================
e_topic topic 3 0 0 0 0 0 0
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Thursday, June 30, 2011 11:51 AM
To: [email protected]
Subject: RE: Federation - trouble-shooting
Correction, for Broker B:
qpid-config -b queues -a B:
Queue 'q_x'
bind [q_x] => ''
bind [all] => e_topic
bind [all.b] => e_topic
bind [all.b.x] => e_topic
David Johnson
Princeton Consultants
2 Research Way
Princeton, NJ 08540
609.987.8787 x266
From: <[email protected]>
To: <[email protected]>
Date: 06/30/2011 03:47 AM
Subject: RE: Federation - trouble-shooting
> As I see there is no bindings on broker B with the key "all.a.x",
"all.a", so, it works as
> expected and you can't see " messages that were sent to the topic
exchange on broker B with
> the subjects "all.a.x", "all.a"
Messages sent to the topic exchange on broker B with the keys "all.a.x" or
"all.a" are not bound to any dedicated queue on broker B...but should federate
over to the topic exchange on broker A where there is a dedicated
queue with bindings for "all.a.x" and "all.a". At least, that is what I am
intending. But the messages never leave the source exchange on the source
broker, so the federation is not currently working.
> It looks like for me that "key=all" should works.
A message sent to the topic exchange on either broker with the key "all"
currently propagates only to the dedicated queues on that broker, but do not
federate to the other broker.
> qpid-config -b queues
> qpid-route route map
Broker A:
qpid-stat -e A:
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
====================================================================
e_topic topic 3 0 0 0 0 0 0
qpid-stat -q A:
queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
========================================================================
q_x Y Y 0 0 0 0 0 0 1 4
qpid-config -b queues -a A:
Queue 'q_x'
bind [q_x] => ''
bind [all] => e_topic
bind [all.a] => e_topic
bind [all.a.x] => e_topic
qpid-route link list A:
Host Port Transport Durable Stats Last Error
===================================================
B port tcp N Operational
Broker B:
qpid-stat -e B:
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
====================================================================
e_topic topic 3 0 0 0 0 0 0
qpid-stat -q B:
queue dur autoDel excl msg msgIn msgOut bytes bytesIn bytesOut cons bind
========================================================================
q_x Y Y 0 0 0 0 0 0 1 4
qpid-config -b queues -a A:
Queue 'q_x'
bind [q_x] => ''
bind [all] => e_topic
bind [all.ba] => e_topic
bind [all.b.x] => e_topic
qpid-route link list B:
Host Port Transport Durable Stats Last Error
=======================================================
A port tcp N Waiting Closed by peer
Routes:
qpid-route route map A
Finding Linked Brokers:
A:port... Ok
B:port... Ok
Dynamic Routes:
none found
Static Routes:
A:port(ex=e_topic) <= B:port(ex=e_topic) key=all.a.#
A:port(ex=e_topic) <= B:port(ex=e_topic) key=all.a
A:port(ex=e_topic) <= B:port(ex=e_topic) key=all
B:port(ex=e_topic) <= A:port(ex=e_topic) key=all.b.#
B:port(ex=e_topic) <= A:port(ex=e_topic) key=all.b
B:port(ex=e_topic) <= A:port(ex=e_topic) key=all
David Johnson
Princeton Consultants
2 Research Way
Princeton, NJ 08540
609.987.8787 x266
From: Ilyushonak Barys <[email protected]>
To: "[email protected]" <[email protected]>
Date: 06/30/2011 02:31 AM
Subject: RE: Federation - trouble-shooting
As I see there is no bindings on broker B with the key "all.a.x", "all.a",
so, it works as expected and you can't see " messages that were sent to the
topic exchange on broker B with the subjects "all.a.x", "all.a""
It looks like for me that "key=all" should works.
I used all kind of links and it works like a charm - queue link, static and
dynamic routes I think links should would in your case too.
Could you please give a little bit more info by posting results of:
qpid-config -b queues
qpid-route route map
on both brokers?
Regards,
Boris
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Thursday, June 30, 2011 2:17 AM
To: [email protected]
Subject: Federation - trouble-shooting
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
_______________________________________________________
The information contained in this message may be privileged and conf idential
and protected from disclosure. If you are not the original intended recipient,
you are hereby notified that any review, retransmission, dissemination, or
other use of, or taking of any action in
reliance upon, this information is prohibited. If you have received this
communication in error, please notify the sender immediately by replying to
this message and delete it from your computer. Thank you for your cooperation.
Troika Dialog, Russia.
If you need assistance please contact our Contact Center (+7495) 258 0500
or go to www.troika.ru/eng/Contacts/system.wbp
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]
_______________________________________________________
The information contained in this message may be privileged and conf idential
and protected from disclosure. If you are not the original intended recipient,
you are hereby notified that any review, retransmission, dissemination, or
other use of, or taking of any action in reliance upon, this information is
prohibited. If you have received this communication in error, please notify the
sender immediately by replying to this message and delete it from your
computer. Thank you for your cooperation. Troika Dialog, Russia.
If you need assistance please contact our Contact Center (+7495) 258 0500 or
go to www.troika.ru/eng/Contacts/system.wbp
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]