You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by bacon <ba...@grimm-co.com> on 2013/09/11 22:39:35 UTC
Dynamic routing between disconnected exchanges
Let me start by saying that I am almost certainly missing some important
detail on how exchanges/dynamic routes work. With that said, here is what I
am trying to do with qpid-cpp-0.24:
I have 3 exchanges on three machines, lets call the A, B and C. Each with
bound queues a, b and c
A has bidirectional dynamic routes with B
B has bidirectional dynamic routes with C
node A has no network connectivity with node C (only A <-> B and B<-> C)
What I want to do is to introduce a message on exchange A with destination c
and have the message first routed to B and then onto exchange C and queue c.
The network setup:
A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
192.168.1.1/24 ->
The qpidd setup:
On each:
./qpid-config add exchange topic test-topic
./qpid-config add queue A/B/C
./qpid-config bind test-topic A/B/C A/B/C
on A:
./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
on B
./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
I can send messages from A to B (and b) as well as B to C (and c) but every
message I send to c from A gets dropped which says to me that A is never
being informed of the queue on C via B.
A route map is similarly puzzling:
[root@A bin]# ./qpid-route route map localhost
Finding Linked Brokers:
localhost:5672... Ok
192.168.0.1:5672... Ok
192.168.0.2:5672... Ok
192.168.1.1:5672... [Errno 110] Connection timed out
192.168.1.1:5672... [Errno 110] Connection timed out
Dynamic Routes:
Exchange test-topic:
192.168.0.1:5672 => localhost:5672
192.168.0.2:5672 <=> 192.168.0.1:5672
192.168.1.1:5672 => 192.168.0.1:5672
Static Routes:
none found
This says to me that the IP address of C is being sent to A via B.. which,
as I understand dynamic routes, should not happen (because I'm not doing
routing between them).
Any help would be greatly appreciated. I believe that this should be
possible and I think there is some fundamental concept that I'm missing but
I am stuck at the moment.
Thanks!
--Andrew
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
Well, I can't explain it.. yet. I'll keep digging.
Thanks again for all if your help.
-Andrew
On Sep 17, 2013, at 1:12 PM, Ted Ross [via Qpid] <ml...@n2.nabble.com> wrote:
>
> On 09/17/2013 01:07 PM, bacon wrote:
> > Success!
> >
> > The difference between your test and my test is that you were including --federation-tag in your qpidd command line args and I was not.
> >
> > I see from --help that the federation-tag option is used to "Override the federation tag".. why does this option make such a huge difference?
>
> It shouldn't make any difference at all. It mainly makes the logs
> easier to read. It also makes the message traces more friendly so you
> can see the path that a message took.
>
> >
> > Thanks for all if your help!
> >
> > -Andrew
> >
> > On Sep 17, 2013, at 12:27 PM, "Ted Ross [via Qpid]" <[hidden email]> wrote:
> >
> >> On 09/17/2013 12:12 PM, bacon wrote:
> >>
> >>> See response inline:
> >>>
> >>> On Sep 16, 2013, at 3:31 AM, NimbusParc [via Qpid] <[hidden email]> wrote:
> >>>
> >>>> Just now i tried this one. Everything works fine for me.
> >>>> As Ted Ross wrote...
> >>>>
> >>>> 1) Create exchanges
> >>>> 2) Create dynamic routes
> >>>> 3) Create queues and bindings
> >>> I did this, in this order.
> >>>> After this, just check if all the links are operational or not.
> >>> All nodes report links are operational.
> >>>
> >>> A:
> >>> Host Port Transport Durable State Last Error
> >>> =============================================================================
> >>> 10.10.10.10 5672 tcp Y Operational
> >>>
> >>>
> >>>
> >>> B:
> >>> Host Port Transport Durable State Last Error
> >>> =============================================================================
> >>> 10.10.10.1 5672 tcp Y Operational
> >>> 10.10.10.20 5672 tcp Y Operational
> >>>
> >>>
> >>> C:
> >>> Host Port Transport Durable State Last Error
> >>> =============================================================================
> >>> 10.10.10.10 5672 tcp Y Operational Closed by peer
> >>>
> >>>
> >>>
> >>>> Then, check in route map that the routes are in bi-directional or not.
> >>> Previously, route map didn't work because the nodes were on segments that could not talk to each other. I've changed this for testing and they now report that all of the links are bidirectional except to localhost.. does that make any sense? Thats not a route I am declaring, it is being auto created somehow?
> >>>
> >>>
> >>> On A:
> >>> Finding Linked Brokers:
> >>> localhost:5672... Ok
> >>> 10.10.10.10:5672... Ok
> >>> 10.10.10.1:5672... Ok
> >>> 10.10.10.20:5672... Ok
> >>>
> >>> Dynamic Routes:
> >>>
> >>> Exchange test-topic:
> >>> 10.10.10.10:5672 => localhost:5672
> >>> 10.10.10.10:5672 <=> 10.10.10.1:5672
> >>> 10.10.10.20:5672 <=> 10.10.10.10:5672
> >>>
> >>> Static Routes:
> >>> none found
> >>>
> >>>
> >>>
> >>>> Then check the bindings in between the Exchanges and Queues.
> >>> Am I supposed to see a binding on A for the queue on C that I want to send to? I don't have such a binding and I think this is the root of the problem.
> >>>
> >>> Specifically, on A I have:
> >>>
> >>> Exchange 'test-topic' (topic)
> >>> bind [A] => b8037cdc-97e2-49fc-9c07-d1a1fb2c57dc:0.0
> >>> bind [] => A
> >>> bind [] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>> bind [B] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>>
> >>> What I don't see is something like…
> >>> bind [C] => qpid.bridge_queue_qpid.tcp:…….
> >>>
> >>>
> >> Just for reference, below is the shell script I used to test your
> >> scenario. My test doesn't have the disjoint IP networks yours does but
> >> I believe that's not relevant to what you're seeing. When I run this
> >> test, I see bindings for A, B, and C on all nodes.
> >>
> >> -Ted
> >>
> >> ==================
> >>
> >> #!/bin/bash
> >> set -x
> >>
> >> ROOT=$HOME/svn/qpid
> >> SRC=$ROOT/build-cmake/src
> >> QPIDD=$SRC/qpidd
> >> QPID_CONFIG=$ROOT/tools/src/py/qpid-config
> >> QPID_ROUTE=$ROOT/tools/src/py/qpid-route
> >> DATA_DIR=$HOME/.qpidd
> >>
> >> export PYTHONPATH=$ROOT/python:$ROOT/tools/src/py:$ROOT/extras/qmf/src/py
> >>
> >> P1=10001
> >> P2=10002
> >> P3=10003
> >>
> >> B1=localhost:$P1
> >> B2=localhost:$P2
> >> B3=localhost:$P3
> >>
> >> QPIDD_OPTIONS="--log-enable notice+ --log-to-stderr no --auth no"
> >> QPIDD_START_OPTIONS="$QPIDD_OPTIONS --daemon"
> >> QPIDD_STOP_OPTIONS="$QPIDD_OPTIONS --quit"
> >>
> >> echo "[Starting Brokers...]"
> >> $QPIDD $QPIDD_START_OPTIONS --port $P1 --log-to-file log1 --data-dir
> >> $DATA_DIR/$P1 --federation-tag B1
> >> $QPIDD $QPIDD_START_OPTIONS --port $P2 --log-to-file log2 --data-dir
> >> $DATA_DIR/$P2 --federation-tag B2
> >> $QPIDD $QPIDD_START_OPTIONS --port $P3 --log-to-file log3 --data-dir
> >> $DATA_DIR/$P3 --federation-tag B3
> >>
> >> echo "[Creating Exchanges...]"
> >> $QPID_CONFIG -b $B1 add exchange topic test-topic
> >> $QPID_CONFIG -b $B2 add exchange topic test-topic
> >> $QPID_CONFIG -b $B3 add exchange topic test-topic
> >>
> >> echo "[Set up Federation...]"
> >> $QPID_ROUTE dynamic add $B1 $B2 test-topic
> >> $QPID_ROUTE dynamic add $B2 $B1 test-topic
> >>
> >> $QPID_ROUTE dynamic add $B3 $B2 test-topic
> >> $QPID_ROUTE dynamic add $B2 $B3 test-topic
> >>
> >> echo "[Creating the Wiring...]"
> >> $QPID_CONFIG -b $B1 add queue A
> >> $QPID_CONFIG -b $B2 add queue B
> >> $QPID_CONFIG -b $B3 add queue C
> >>
> >> $QPID_CONFIG -b $B1 bind test-topic A A
> >> $QPID_CONFIG -b $B2 bind test-topic B B
> >> $QPID_CONFIG -b $B3 bind test-topic C C
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >>
> >> If you reply to this email, your message will be added to the discussion below:
> >> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598241.html
> >> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> >> NAML
> >
> >
> > signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598243/0/signature.asc>
> >
> >
> >
> >
> > --
> > View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598243.html
> > Sent from the Apache Qpid users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598244.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598245/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598245.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by Ted Ross <tr...@redhat.com>.
On 09/17/2013 01:07 PM, bacon wrote:
> Success!
>
> The difference between your test and my test is that you were including --federation-tag in your qpidd command line args and I was not.
>
> I see from --help that the federation-tag option is used to "Override the federation tag".. why does this option make such a huge difference?
It shouldn't make any difference at all. It mainly makes the logs
easier to read. It also makes the message traces more friendly so you
can see the path that a message took.
>
> Thanks for all if your help!
>
> -Andrew
>
> On Sep 17, 2013, at 12:27 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
>
>> On 09/17/2013 12:12 PM, bacon wrote:
>>
>>> See response inline:
>>>
>>> On Sep 16, 2013, at 3:31 AM, NimbusParc [via Qpid] <[hidden email]> wrote:
>>>
>>>> Just now i tried this one. Everything works fine for me.
>>>> As Ted Ross wrote...
>>>>
>>>> 1) Create exchanges
>>>> 2) Create dynamic routes
>>>> 3) Create queues and bindings
>>> I did this, in this order.
>>>> After this, just check if all the links are operational or not.
>>> All nodes report links are operational.
>>>
>>> A:
>>> Host Port Transport Durable State Last Error
>>> =============================================================================
>>> 10.10.10.10 5672 tcp Y Operational
>>>
>>>
>>>
>>> B:
>>> Host Port Transport Durable State Last Error
>>> =============================================================================
>>> 10.10.10.1 5672 tcp Y Operational
>>> 10.10.10.20 5672 tcp Y Operational
>>>
>>>
>>> C:
>>> Host Port Transport Durable State Last Error
>>> =============================================================================
>>> 10.10.10.10 5672 tcp Y Operational Closed by peer
>>>
>>>
>>>
>>>> Then, check in route map that the routes are in bi-directional or not.
>>> Previously, route map didn't work because the nodes were on segments that could not talk to each other. I've changed this for testing and they now report that all of the links are bidirectional except to localhost.. does that make any sense? Thats not a route I am declaring, it is being auto created somehow?
>>>
>>>
>>> On A:
>>> Finding Linked Brokers:
>>> localhost:5672... Ok
>>> 10.10.10.10:5672... Ok
>>> 10.10.10.1:5672... Ok
>>> 10.10.10.20:5672... Ok
>>>
>>> Dynamic Routes:
>>>
>>> Exchange test-topic:
>>> 10.10.10.10:5672 => localhost:5672
>>> 10.10.10.10:5672 <=> 10.10.10.1:5672
>>> 10.10.10.20:5672 <=> 10.10.10.10:5672
>>>
>>> Static Routes:
>>> none found
>>>
>>>
>>>
>>>> Then check the bindings in between the Exchanges and Queues.
>>> Am I supposed to see a binding on A for the queue on C that I want to send to? I don't have such a binding and I think this is the root of the problem.
>>>
>>> Specifically, on A I have:
>>>
>>> Exchange 'test-topic' (topic)
>>> bind [A] => b8037cdc-97e2-49fc-9c07-d1a1fb2c57dc:0.0
>>> bind [] => A
>>> bind [] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>> bind [B] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>>
>>> What I don't see is something like…
>>> bind [C] => qpid.bridge_queue_qpid.tcp:…….
>>>
>>>
>> Just for reference, below is the shell script I used to test your
>> scenario. My test doesn't have the disjoint IP networks yours does but
>> I believe that's not relevant to what you're seeing. When I run this
>> test, I see bindings for A, B, and C on all nodes.
>>
>> -Ted
>>
>> ==================
>>
>> #!/bin/bash
>> set -x
>>
>> ROOT=$HOME/svn/qpid
>> SRC=$ROOT/build-cmake/src
>> QPIDD=$SRC/qpidd
>> QPID_CONFIG=$ROOT/tools/src/py/qpid-config
>> QPID_ROUTE=$ROOT/tools/src/py/qpid-route
>> DATA_DIR=$HOME/.qpidd
>>
>> export PYTHONPATH=$ROOT/python:$ROOT/tools/src/py:$ROOT/extras/qmf/src/py
>>
>> P1=10001
>> P2=10002
>> P3=10003
>>
>> B1=localhost:$P1
>> B2=localhost:$P2
>> B3=localhost:$P3
>>
>> QPIDD_OPTIONS="--log-enable notice+ --log-to-stderr no --auth no"
>> QPIDD_START_OPTIONS="$QPIDD_OPTIONS --daemon"
>> QPIDD_STOP_OPTIONS="$QPIDD_OPTIONS --quit"
>>
>> echo "[Starting Brokers...]"
>> $QPIDD $QPIDD_START_OPTIONS --port $P1 --log-to-file log1 --data-dir
>> $DATA_DIR/$P1 --federation-tag B1
>> $QPIDD $QPIDD_START_OPTIONS --port $P2 --log-to-file log2 --data-dir
>> $DATA_DIR/$P2 --federation-tag B2
>> $QPIDD $QPIDD_START_OPTIONS --port $P3 --log-to-file log3 --data-dir
>> $DATA_DIR/$P3 --federation-tag B3
>>
>> echo "[Creating Exchanges...]"
>> $QPID_CONFIG -b $B1 add exchange topic test-topic
>> $QPID_CONFIG -b $B2 add exchange topic test-topic
>> $QPID_CONFIG -b $B3 add exchange topic test-topic
>>
>> echo "[Set up Federation...]"
>> $QPID_ROUTE dynamic add $B1 $B2 test-topic
>> $QPID_ROUTE dynamic add $B2 $B1 test-topic
>>
>> $QPID_ROUTE dynamic add $B3 $B2 test-topic
>> $QPID_ROUTE dynamic add $B2 $B3 test-topic
>>
>> echo "[Creating the Wiring...]"
>> $QPID_CONFIG -b $B1 add queue A
>> $QPID_CONFIG -b $B2 add queue B
>> $QPID_CONFIG -b $B3 add queue C
>>
>> $QPID_CONFIG -b $B1 bind test-topic A A
>> $QPID_CONFIG -b $B2 bind test-topic B B
>> $QPID_CONFIG -b $B3 bind test-topic C C
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>
>> If you reply to this email, your message will be added to the discussion below:
>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598241.html
>> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
>> NAML
>
>
> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598243/0/signature.asc>
>
>
>
>
> --
> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598243.html
> Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
Success!
The difference between your test and my test is that you were including --federation-tag in your qpidd command line args and I was not.
I see from --help that the federation-tag option is used to "Override the federation tag".. why does this option make such a huge difference?
Thanks for all if your help!
-Andrew
On Sep 17, 2013, at 12:27 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
>
> On 09/17/2013 12:12 PM, bacon wrote:
>
> > See response inline:
> >
> > On Sep 16, 2013, at 3:31 AM, NimbusParc [via Qpid] <[hidden email]> wrote:
> >
> >> Just now i tried this one. Everything works fine for me.
> >> As Ted Ross wrote...
> >>
> >> 1) Create exchanges
> >> 2) Create dynamic routes
> >> 3) Create queues and bindings
> > I did this, in this order.
> >>
> >> After this, just check if all the links are operational or not.
> > All nodes report links are operational.
> >
> > A:
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 10.10.10.10 5672 tcp Y Operational
> >
> >
> >
> > B:
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 10.10.10.1 5672 tcp Y Operational
> > 10.10.10.20 5672 tcp Y Operational
> >
> >
> > C:
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 10.10.10.10 5672 tcp Y Operational Closed by peer
> >
> >
> >
> >> Then, check in route map that the routes are in bi-directional or not.
> > Previously, route map didn't work because the nodes were on segments that could not talk to each other. I've changed this for testing and they now report that all of the links are bidirectional except to localhost.. does that make any sense? Thats not a route I am declaring, it is being auto created somehow?
> >
> >
> > On A:
> > Finding Linked Brokers:
> > localhost:5672... Ok
> > 10.10.10.10:5672... Ok
> > 10.10.10.1:5672... Ok
> > 10.10.10.20:5672... Ok
> >
> > Dynamic Routes:
> >
> > Exchange test-topic:
> > 10.10.10.10:5672 => localhost:5672
> > 10.10.10.10:5672 <=> 10.10.10.1:5672
> > 10.10.10.20:5672 <=> 10.10.10.10:5672
> >
> > Static Routes:
> > none found
> >
> >
> >
> >> Then check the bindings in between the Exchanges and Queues.
> > Am I supposed to see a binding on A for the queue on C that I want to send to? I don't have such a binding and I think this is the root of the problem.
> >
> > Specifically, on A I have:
> >
> > Exchange 'test-topic' (topic)
> > bind [A] => b8037cdc-97e2-49fc-9c07-d1a1fb2c57dc:0.0
> > bind [] => A
> > bind [] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> > bind [B] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >
> > What I don't see is something like…
> > bind [C] => qpid.bridge_queue_qpid.tcp:…….
> >
> >
>
> Just for reference, below is the shell script I used to test your
> scenario. My test doesn't have the disjoint IP networks yours does but
> I believe that's not relevant to what you're seeing. When I run this
> test, I see bindings for A, B, and C on all nodes.
>
> -Ted
>
> ==================
>
> #!/bin/bash
> set -x
>
> ROOT=$HOME/svn/qpid
> SRC=$ROOT/build-cmake/src
> QPIDD=$SRC/qpidd
> QPID_CONFIG=$ROOT/tools/src/py/qpid-config
> QPID_ROUTE=$ROOT/tools/src/py/qpid-route
> DATA_DIR=$HOME/.qpidd
>
> export PYTHONPATH=$ROOT/python:$ROOT/tools/src/py:$ROOT/extras/qmf/src/py
>
> P1=10001
> P2=10002
> P3=10003
>
> B1=localhost:$P1
> B2=localhost:$P2
> B3=localhost:$P3
>
> QPIDD_OPTIONS="--log-enable notice+ --log-to-stderr no --auth no"
> QPIDD_START_OPTIONS="$QPIDD_OPTIONS --daemon"
> QPIDD_STOP_OPTIONS="$QPIDD_OPTIONS --quit"
>
> echo "[Starting Brokers...]"
> $QPIDD $QPIDD_START_OPTIONS --port $P1 --log-to-file log1 --data-dir
> $DATA_DIR/$P1 --federation-tag B1
> $QPIDD $QPIDD_START_OPTIONS --port $P2 --log-to-file log2 --data-dir
> $DATA_DIR/$P2 --federation-tag B2
> $QPIDD $QPIDD_START_OPTIONS --port $P3 --log-to-file log3 --data-dir
> $DATA_DIR/$P3 --federation-tag B3
>
> echo "[Creating Exchanges...]"
> $QPID_CONFIG -b $B1 add exchange topic test-topic
> $QPID_CONFIG -b $B2 add exchange topic test-topic
> $QPID_CONFIG -b $B3 add exchange topic test-topic
>
> echo "[Set up Federation...]"
> $QPID_ROUTE dynamic add $B1 $B2 test-topic
> $QPID_ROUTE dynamic add $B2 $B1 test-topic
>
> $QPID_ROUTE dynamic add $B3 $B2 test-topic
> $QPID_ROUTE dynamic add $B2 $B3 test-topic
>
> echo "[Creating the Wiring...]"
> $QPID_CONFIG -b $B1 add queue A
> $QPID_CONFIG -b $B2 add queue B
> $QPID_CONFIG -b $B3 add queue C
>
> $QPID_CONFIG -b $B1 bind test-topic A A
> $QPID_CONFIG -b $B2 bind test-topic B B
> $QPID_CONFIG -b $B3 bind test-topic C C
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598241.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598243/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598243.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by Ted Ross <tr...@redhat.com>.
On 09/17/2013 12:12 PM, bacon wrote:
> See response inline:
>
> On Sep 16, 2013, at 3:31 AM, NimbusParc [via Qpid] <ml...@n2.nabble.com> wrote:
>
>> Just now i tried this one. Everything works fine for me.
>> As Ted Ross wrote...
>>
>> 1) Create exchanges
>> 2) Create dynamic routes
>> 3) Create queues and bindings
> I did this, in this order.
>>
>> After this, just check if all the links are operational or not.
> All nodes report links are operational.
>
> A:
> Host Port Transport Durable State Last Error
> =============================================================================
> 10.10.10.10 5672 tcp Y Operational
>
>
>
> B:
> Host Port Transport Durable State Last Error
> =============================================================================
> 10.10.10.1 5672 tcp Y Operational
> 10.10.10.20 5672 tcp Y Operational
>
>
> C:
> Host Port Transport Durable State Last Error
> =============================================================================
> 10.10.10.10 5672 tcp Y Operational Closed by peer
>
>
>
>> Then, check in route map that the routes are in bi-directional or not.
> Previously, route map didn't work because the nodes were on segments that could not talk to each other. I've changed this for testing and they now report that all of the links are bidirectional except to localhost.. does that make any sense? Thats not a route I am declaring, it is being auto created somehow?
>
>
> On A:
> Finding Linked Brokers:
> localhost:5672... Ok
> 10.10.10.10:5672... Ok
> 10.10.10.1:5672... Ok
> 10.10.10.20:5672... Ok
>
> Dynamic Routes:
>
> Exchange test-topic:
> 10.10.10.10:5672 => localhost:5672
> 10.10.10.10:5672 <=> 10.10.10.1:5672
> 10.10.10.20:5672 <=> 10.10.10.10:5672
>
> Static Routes:
> none found
>
>
>
>> Then check the bindings in between the Exchanges and Queues.
> Am I supposed to see a binding on A for the queue on C that I want to send to? I don't have such a binding and I think this is the root of the problem.
>
> Specifically, on A I have:
>
> Exchange 'test-topic' (topic)
> bind [A] => b8037cdc-97e2-49fc-9c07-d1a1fb2c57dc:0.0
> bind [] => A
> bind [] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> bind [B] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>
> What I don't see is something like…
> bind [C] => qpid.bridge_queue_qpid.tcp:…….
>
>
Just for reference, below is the shell script I used to test your
scenario. My test doesn't have the disjoint IP networks yours does but
I believe that's not relevant to what you're seeing. When I run this
test, I see bindings for A, B, and C on all nodes.
-Ted
==================
#!/bin/bash
set -x
ROOT=$HOME/svn/qpid
SRC=$ROOT/build-cmake/src
QPIDD=$SRC/qpidd
QPID_CONFIG=$ROOT/tools/src/py/qpid-config
QPID_ROUTE=$ROOT/tools/src/py/qpid-route
DATA_DIR=$HOME/.qpidd
export PYTHONPATH=$ROOT/python:$ROOT/tools/src/py:$ROOT/extras/qmf/src/py
P1=10001
P2=10002
P3=10003
B1=localhost:$P1
B2=localhost:$P2
B3=localhost:$P3
QPIDD_OPTIONS="--log-enable notice+ --log-to-stderr no --auth no"
QPIDD_START_OPTIONS="$QPIDD_OPTIONS --daemon"
QPIDD_STOP_OPTIONS="$QPIDD_OPTIONS --quit"
echo "[Starting Brokers...]"
$QPIDD $QPIDD_START_OPTIONS --port $P1 --log-to-file log1 --data-dir
$DATA_DIR/$P1 --federation-tag B1
$QPIDD $QPIDD_START_OPTIONS --port $P2 --log-to-file log2 --data-dir
$DATA_DIR/$P2 --federation-tag B2
$QPIDD $QPIDD_START_OPTIONS --port $P3 --log-to-file log3 --data-dir
$DATA_DIR/$P3 --federation-tag B3
echo "[Creating Exchanges...]"
$QPID_CONFIG -b $B1 add exchange topic test-topic
$QPID_CONFIG -b $B2 add exchange topic test-topic
$QPID_CONFIG -b $B3 add exchange topic test-topic
echo "[Set up Federation...]"
$QPID_ROUTE dynamic add $B1 $B2 test-topic
$QPID_ROUTE dynamic add $B2 $B1 test-topic
$QPID_ROUTE dynamic add $B3 $B2 test-topic
$QPID_ROUTE dynamic add $B2 $B3 test-topic
echo "[Creating the Wiring...]"
$QPID_CONFIG -b $B1 add queue A
$QPID_CONFIG -b $B2 add queue B
$QPID_CONFIG -b $B3 add queue C
$QPID_CONFIG -b $B1 bind test-topic A A
$QPID_CONFIG -b $B2 bind test-topic B B
$QPID_CONFIG -b $B3 bind test-topic C C
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
See response inline:
On Sep 16, 2013, at 3:31 AM, NimbusParc [via Qpid] <ml...@n2.nabble.com> wrote:
> Just now i tried this one. Everything works fine for me.
> As Ted Ross wrote...
>
> 1) Create exchanges
> 2) Create dynamic routes
> 3) Create queues and bindings
I did this, in this order.
>
>
> After this, just check if all the links are operational or not.
All nodes report links are operational.
A:
Host Port Transport Durable State Last Error
=============================================================================
10.10.10.10 5672 tcp Y Operational
B:
Host Port Transport Durable State Last Error
=============================================================================
10.10.10.1 5672 tcp Y Operational
10.10.10.20 5672 tcp Y Operational
C:
Host Port Transport Durable State Last Error
=============================================================================
10.10.10.10 5672 tcp Y Operational Closed by peer
> Then, check in route map that the routes are in bi-directional or not.
Previously, route map didn't work because the nodes were on segments that could not talk to each other. I've changed this for testing and they now report that all of the links are bidirectional except to localhost.. does that make any sense? Thats not a route I am declaring, it is being auto created somehow?
On A:
Finding Linked Brokers:
localhost:5672... Ok
10.10.10.10:5672... Ok
10.10.10.1:5672... Ok
10.10.10.20:5672... Ok
Dynamic Routes:
Exchange test-topic:
10.10.10.10:5672 => localhost:5672
10.10.10.10:5672 <=> 10.10.10.1:5672
10.10.10.20:5672 <=> 10.10.10.10:5672
Static Routes:
none found
> Then check the bindings in between the Exchanges and Queues.
Am I supposed to see a binding on A for the queue on C that I want to send to? I don't have such a binding and I think this is the root of the problem.
Specifically, on A I have:
Exchange 'test-topic' (topic)
bind [A] => b8037cdc-97e2-49fc-9c07-d1a1fb2c57dc:0.0
bind [] => A
bind [] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
bind [B] => qpid.bridge_queue_qpid.tcp:10.10.10.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
What I don't see is something like…
bind [C] => qpid.bridge_queue_qpid.tcp:…….
What does qpid-config exchanges -r look like for you?
> Then, test by using "spout" and "drain" examples.
Same result, messages from A to b work fine but messages to c result in a dropped message.
Thanks,
-Andrew
>
> Now, you can send messages from A to B, B to C and A to C also. I Think you may be doing mistake in the bindings.
> (i.e) You should bind the queue to the exchange used in dynamic routing. And separately bind to the same exchange name in another brokers with respected queues.
> Try freshly by restarting brokers ( take care of the Back up, etc,.) and follow the sequence. Still if you struggle with the same problem, i'll post my step-by-step results.
> All the best
> bacon wrote
> The changes seem to be in what exchange routes end up being created however messages are still not making it. Specifically, ./qpid-config exchanges -r now looks like this:
>
>
> Exchange '' (direct)
> bind [050aed7f-31c5-4018-ab99-f248b1789573:0.0] => 050aed7f-31c5-4018-ab99-f248b1789573:0.0
> bind [B] => B
> bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> Exchange 'amq.direct' (direct)
> Exchange 'amq.fanout' (fanout)
> Exchange 'amq.match' (headers)
> Exchange 'amq.topic' (topic)
> Exchange 'test-fanout' (fanout)
> bind [] => B
> bind [] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> bind [] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> Exchange 'qmf.default.direct' (direct)
> Exchange 'qmf.default.topic' (topic)
> bind [direct.8cd9ca02-a36d-413d-ac09-a2d5a9feb534] => 050aed7f-31c5-4018-ab99-f248b1789573:0.0
> Exchange 'qpid.management' (topic)
>
>
> I really feel like I must be doing something wrong…
>
> Is there something that I can do to further debug the dynamic route exchange? Or perhaps I could try manually setting up static exchange routes (actually, I've tried that but didn't get far).
>
> -Andrew
>
>
>
>
>
> On Sep 13, 2013, at 1:33 AM, "NimbusParc [via Qpid]" <[hidden email]> wrote:
>
> > -----------------bacon wrote-------------
> > > Outout of qpid-stat -e on A after trying to send a message to b and then c
> > >
> > >Exchanges
> > > exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> > > >===========================================================================================
> > > direct 3 0 0 0 0 0 0
> > > amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
> > > amq.fanout fanout Y 0 0 0 0 0 0 0
> > > amq.match headers Y 0 0 0 0 0 0 0
> > > amq.topic topic Y 0 0 0 0 0 0 0
> > > test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
> > > qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
> > > qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
> > > qpid.management topic 0 0 0 0 0 0 0
> >
> >
> > In the above output it is very clear in the stats of "bytesDrop".
> > >
> > >Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do
> > >with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
> > >
> >
> > Try once with fanout exchange instead of topic exchange and let me know whether any change will be there are not ?
> >
> > If you reply to this email, your message will be added to the discussion below:
> > http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598155.html
> > To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> > NAML
>
>
>
> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598164/0/signature.asc>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598194.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598240/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598240.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by NimbusParc <ni...@yahoo.in>.
Just now i tried this one. Everything works fine for me.
As Ted Ross wrote...
1) Create exchanges
2) Create dynamic routes
3) Create queues and bindings
After this, just check if all the links are operational or not.
Then, check in route map that the routes are in bi-directional or not.
Then check the bindings in between the Exchanges and Queues.
Then, test by using "spout" and "drain" examples.
Now, you can send messages from A to B, B to C and A to C also. I Think you
may be doing mistake in the bindings.
(i.e) You should bind the queue to the exchange used in dynamic routing. And
separately bind to the same exchange name in another brokers with respected
queues.
Try freshly by restarting brokers ( take care of the Back up, etc,.) and
follow the sequence. Still if you struggle with the same problem, i'll post
my step-by-step results.
All the best
bacon wrote
> The changes seem to be in what exchange routes end up being created
> however messages are still not making it. Specifically, ./qpid-config
> exchanges -r now looks like this:
>
>
> Exchange '' (direct)
> bind [050aed7f-31c5-4018-ab99-f248b1789573:0.0] =>
> 050aed7f-31c5-4018-ab99-f248b1789573:0.0
> bind [B] => B
> bind
> [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee]
> =>
> qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> bind
> [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee]
> =>
> qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> Exchange 'amq.direct' (direct)
> Exchange 'amq.fanout' (fanout)
> Exchange 'amq.match' (headers)
> Exchange 'amq.topic' (topic)
> Exchange 'test-fanout' (fanout)
> bind [] => B
> bind [] =>
> qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> {u'qpid.replicate': u'none', u'qpid.fed.origin':
> u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'',
> u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> bind [] =>
> qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> {u'qpid.replicate': u'none', u'qpid.fed.origin':
> u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'',
> u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> Exchange 'qmf.default.direct' (direct)
> Exchange 'qmf.default.topic' (topic)
> bind [direct.8cd9ca02-a36d-413d-ac09-a2d5a9feb534] =>
> 050aed7f-31c5-4018-ab99-f248b1789573:0.0
> Exchange 'qpid.management' (topic)
>
>
> I really feel like I must be doing something wrong…
>
> Is there something that I can do to further debug the dynamic route
> exchange? Or perhaps I could try manually setting up static exchange
> routes (actually, I've tried that but didn't get far).
>
> -Andrew
>
>
>
>
>
> On Sep 13, 2013, at 1:33 AM, "NimbusParc [via Qpid]" <
> ml-node+s2158936n7598155h82@.nabble
> > wrote:
>
>> -----------------bacon wrote-------------
>> > Outout of qpid-stat -e on A after trying to send a message to b and
>> then c
>> >
>> >Exchanges
>> > exchange type dur bind msgIn msgOut msgDrop byteIn
>> byteOut byteDrop
>> >
>> >===========================================================================================
>> > direct 3 0 0 0 0
>> 0 0
>> > amq.direct direct Y 0 76 76 0 34.7k
>> 34.7k 0
>> > amq.fanout fanout Y 0 0 0 0 0
>> 0 0
>> > amq.match headers Y 0 0 0 0 0
>> 0 0
>> > amq.topic topic Y 0 0 0 0 0
>> 0 0
>> > test-topic topic 2 3 2 1 12
>> 8 4 <--- (drop is 1 after attempt to sent to c)
>> > qmf.default.direct direct 0 9 9 0 2.40k
>> 2.40k 0
>> > qmf.default.topic topic 1 333 7 326 255k
>> 17.2k 238k
>> > qpid.management topic 0 0 0 0 0
>> 0 0
>>
>>
>> In the above output it is very clear in the stats of "bytesDrop".
>> >
>> >Thought: It seems that A doesn't know anything a about C or c so it
>> drops the message... could this have something to do
>> >with using a topic exchange? Or should B be telling A what it knows
>> about C (but isn't)?
>> >
>>
>> Try once with fanout exchange instead of topic exchange and let me
>> know whether any change will be there are not ?
>>
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598155.html
>> To unsubscribe from Dynamic routing between disconnected exchanges, click
>> here.
>> NAML
>
>
>
> signature.asc (858 bytes)
> <http://qpid.2158936.n2.nabble.com/attachment/7598164/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598194.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
The changes seem to be in what exchange routes end up being created however messages are still not making it. Specifically, ./qpid-config exchanges -r now looks like this:
Exchange '' (direct)
bind [050aed7f-31c5-4018-ab99-f248b1789573:0.0] => 050aed7f-31c5-4018-ab99-f248b1789573:0.0
bind [B] => B
bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee
Exchange 'amq.direct' (direct)
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'amq.topic' (topic)
Exchange 'test-fanout' (fanout)
bind [] => B
bind [] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
bind [] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-fanout!test-fanout!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
Exchange 'qmf.default.direct' (direct)
Exchange 'qmf.default.topic' (topic)
bind [direct.8cd9ca02-a36d-413d-ac09-a2d5a9feb534] => 050aed7f-31c5-4018-ab99-f248b1789573:0.0
Exchange 'qpid.management' (topic)
I really feel like I must be doing something wrong…
Is there something that I can do to further debug the dynamic route exchange? Or perhaps I could try manually setting up static exchange routes (actually, I've tried that but didn't get far).
-Andrew
On Sep 13, 2013, at 1:33 AM, "NimbusParc [via Qpid]" <ml...@n2.nabble.com> wrote:
> -----------------bacon wrote-------------
> > Outout of qpid-stat -e on A after trying to send a message to b and then c
> >
> >Exchanges
> > exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> > >===========================================================================================
> > direct 3 0 0 0 0 0 0
> > amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
> > amq.fanout fanout Y 0 0 0 0 0 0 0
> > amq.match headers Y 0 0 0 0 0 0 0
> > amq.topic topic Y 0 0 0 0 0 0 0
> > test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
> > qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
> > qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
> > qpid.management topic 0 0 0 0 0 0 0
>
>
> In the above output it is very clear in the stats of "bytesDrop".
> >
> >Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do
> >with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
> >
>
> Try once with fanout exchange instead of topic exchange and let me know whether any change will be there are not ?
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598155.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598164/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598164.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by NimbusParc <ni...@yahoo.in>.
-----------------bacon wrote-------------
> Outout of qpid-stat -e on A after trying to send a message to b and then c
>
>Exchanges
> exchange type dur bind msgIn msgOut msgDrop byteIn
> byteOut byteDrop
>
> >===========================================================================================
> direct 3 0 0 0 0
> 0 0
> amq.direct direct Y 0 76 76 0 34.7k
> 34.7k 0
> amq.fanout fanout Y 0 0 0 0 0
> 0 0
> amq.match headers Y 0 0 0 0 0
> 0 0
> amq.topic topic Y 0 0 0 0 0
> 0 0
> *test-topic topic 2 3 2 1 12
> 8 4 <--- (drop is 1 after attempt to sent to c) *
> qmf.default.direct direct 0 9 9 0 2.40k
> 2.40k 0
> qmf.default.topic topic 1 333 7 326 255k
> 17.2k 238k
> qpid.management topic 0 0 0 0 0
> 0 0
In the above output it is very clear in the stats of "bytesDrop".
>
>Thought: It seems that A doesn't know anything a about C or c so it drops
the message... could this have something to do
>with using a topic exchange? Or should B be telling A what it knows about C
(but isn't)?
>
Try once with fanout exchange instead of topic exchange and let me know
whether any change will be there are not ?
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598155.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by NimbusParc <ni...@yahoo.in>.
+1
Ted Ross wrote
> Ok, that's good. Can you try one more thing?
>
> Change the sequence of your setup:
>
> 1) Create exchanges
> 2) Create dynamic routes
> 3) Create queues and bindings
>
> I'm wondering if there's a bug in the code.
>
> -Ted
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598195.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
Done but seems to make no difference.
With exchanges and dynamic routes and queues created, I added the binding on A (./qpid-config bind test-topic A A) while watching the debug log on B and C:
B:
2013-09-07 19:02:33 [Management] debug Management object (V1) added: org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:test-topic,org.apache.qpid.broker:queue:qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee,A
2013-09-07 19:02:33 [Broker] debug Binding key [A] to queue qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee on exchange test-topic (origin=d7ea0855-a1db-451a-bb72-ec61814db3ee)
2013-09-07 19:02:33 [Management] debug SEND raiseEvent (v2) class=org.apache.qpid.broker.bind
2013-09-07 19:02:33 [Model] debug Create binding. exchange:test-topic queue:qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee key:A arguments:{qpid.fed.op:V2:0:str16(),qpid.fed.origin:V2:36:str16(d7ea0855-a1db-451a-bb72-ec61814db3ee),qpid.fed.tags:V2:36:str16(d7ea0855-a1db-451a-bb72-ec61814db3ee),qpid.replicate:V2:4:str16(none)} user:anonymous rhost:qpid.192.168.0.1:5672-192.168.0.2:45435
2013-09-07 19:02:33 [Broker] debug SemanticState::addBinding [queue=qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee, exchange=test-topic, key=A, args={qpid.fed.op:V2:0:str16(),qpid.fed.origin:V2:36:str16(d7ea0855-a1db-451a-bb72-ec61814db3ee),qpid.fed.tags:V2:36:str16(d7ea0855-a1db-451a-bb72-ec61814db3ee),qpid.replicate:V2:4:str16(none)}]
2013-09-07 19:02:33 [Broker] debug anonymous.qpid.bridge_session_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee: receiver marked completed: 10 incomplete: { } unknown-completed: { [0,10] }
C:
<nothing at all besides normal heartbeat and management messages>
--Andrew
On Sep 12, 2013, at 1:20 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
> Ok, that's good. Can you try one more thing?
>
> Change the sequence of your setup:
>
> 1) Create exchanges
> 2) Create dynamic routes
> 3) Create queues and bindings
>
> I'm wondering if there's a bug in the code.
>
> -Ted
>
>
> On 09/12/2013 01:08 PM, bacon wrote:
>
> > I do:
> >
> > A:
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 192.168.0.1 5672 tcp Y Operational
> >
> >
> > B:
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 192.168.0.2 5672 tcp Y Operational
> > 192.168.1.1 5672 tcp Y Operational
> >
> > C:
> >
> > Host Port Transport Durable State Last Error
> > =============================================================================
> > 192.168.1.2 5672 tcp Y Operational
> >
> >
> >
> >
> > On Sep 12, 2013, at 12:55 PM, "Ted Ross [via Qpid]" <[hidden email]> wrote:
> >
> >> If you use "qpid-route link list <broker>" do you see all of the links
> >> being operational?
> >>
> >> -Ted
> >>
> >> On 09/12/2013 10:49 AM, bacon wrote:
> >>
> >>> Output of qpid-config exchanges -r …
> >>>
> >>> From A:
> >>>
> >>> Exchange '' (direct)
> >>> bind [bbdae4e2-0430-4742-a807-15ace7783f27:0.0] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> >>> bind [A] => A
> >>> bind [qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> >>> Exchange 'amq.direct' (direct)
> >>> Exchange 'amq.fanout' (fanout)
> >>> Exchange 'amq.match' (headers)
> >>> Exchange 'amq.topic' (topic)
> >>> Exchange 'test-topic' (topic)
> >>> bind [A] => A
> >>> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>> Exchange 'qmf.default.direct' (direct)
> >>> Exchange 'qmf.default.topic' (topic)
> >>> bind [direct.84b0aac3-1a88-4b49-b8b6-5861299aaded] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> >>> Exchange 'qpid.management' (topic)
> >>>
> >>>
> >>> From B:
> >>>
> >>> Exchange '' (direct)
> >>> bind [0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> >>> bind [B] => B
> >>> bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> >>> bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> >>> Exchange 'amq.direct' (direct)
> >>> Exchange 'amq.fanout' (fanout)
> >>> Exchange 'amq.match' (headers)
> >>> Exchange 'amq.topic' (topic)
> >>> Exchange 'test-topic' (topic)
> >>> bind [B] => B
> >>> bind [A] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>> bind [C] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>> Exchange 'qmf.default.direct' (direct)
> >>> Exchange 'qmf.default.topic' (topic)
> >>> bind [direct.11ec68b2-a11a-40f9-b9dd-8eb58352329c] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> >>> Exchange 'qpid.management' (topic)
> >>>
> >>> From C:
> >>>
> >>> Exchange '' (direct)
> >>> bind [991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> >>> bind [C] => C
> >>> bind [qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> >>> Exchange 'amq.direct' (direct)
> >>> Exchange 'amq.fanout' (fanout)
> >>> Exchange 'amq.match' (headers)
> >>> Exchange 'amq.topic' (topic)
> >>> Exchange 'test-topic' (topic)
> >>> bind [C] => C
> >>> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> >>> Exchange 'qmf.default.direct' (direct)
> >>> Exchange 'qmf.default.topic' (topic)
> >>> bind [direct.aa8e0d92-7bbf-4784-8c66-14a2cf6d9379] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> >>> Exchange 'qpid.management' (topic)
> >>>
> >>>
> >>>
> >>>
> >>> Outout of qpid-stat -e on A after trying to send a message to b and then c
> >>>
> >>> Exchanges
> >>> exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> >>> ===========================================================================================
> >>> direct 3 0 0 0 0 0 0
> >>> amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
> >>> amq.fanout fanout Y 0 0 0 0 0 0 0
> >>> amq.match headers Y 0 0 0 0 0 0 0
> >>> amq.topic topic Y 0 0 0 0 0 0 0
> >>> test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
> >>> qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
> >>> qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
> >>> qpid.management topic 0 0 0 0 0 0 0
> >>>
> >>>
> >>> Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
> >>>
> >>> Thanks,
> >>> -Andrew
> >>>
> >>>
> >>>
> >>>
> >>> On Sep 11, 2013, at 5:18 PM, "Ted Ross [via Qpid]" <[hidden email]> wrote:
> >>>
> >>>> On 09/11/2013 04:39 PM, bacon wrote:
> >>>>
> >>>>> Let me start by saying that I am almost certainly missing some important
> >>>>> detail on how exchanges/dynamic routes work. With that said, here is what I
> >>>>> am trying to do with qpid-cpp-0.24:
> >>>>>
> >>>>> I have 3 exchanges on three machines, lets call the A, B and C. Each with
> >>>>> bound queues a, b and c
> >>>>>
> >>>>> A has bidirectional dynamic routes with B
> >>>>> B has bidirectional dynamic routes with C
> >>>>>
> >>>>> node A has no network connectivity with node C (only A <-> B and B<-> C)
> >>>>>
> >>>>> What I want to do is to introduce a message on exchange A with destination c
> >>>>> and have the message first routed to B and then onto exchange C and queue c.
> >>>> What you are attempting should work.
> >>>>
> >>>>> The network setup:
> >>>>>
> >>>>> A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
> >>>>> 192.168.1.1/24 ->
> >>>>>
> >>>>> The qpidd setup:
> >>>>>
> >>>>> On each:
> >>>>> ./qpid-config add exchange topic test-topic
> >>>>> ./qpid-config add queue A/B/C
> >>>>> ./qpid-config bind test-topic A/B/C A/B/C
> >>>>>
> >>>>> on A:
> >>>>> ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
> >>>>> ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
> >>>>>
> >>>>>
> >>>>> on B
> >>>>> ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
> >>>>> ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
> >>>> It would be helpful to see the output of "qpid-config exchanges -r" on
> >>>> broker B (the middle one). This will show how the bindings have
> >>>> arranged themselves.
> >>>>
> >>>> Actually, post the output for all three brokers.
> >>>>
> >>>>> I can send messages from A to B (and b) as well as B to C (and c) but every
> >>>>> message I send to c from A gets dropped which says to me that A is never
> >>>>> being informed of the queue on C via B.
> >>>>>
> >>>>> A route map is similarly puzzling:
> >>>> Don't worryabout route-map. It's connecting to one broker and
> >>>> attempting to get the addresses of all the connected brokers. Since C
> >>>> is not reachable, route-map won't be able to query it. This has no
> >>>> bearing on the way messages flow. Route-map might work if run from B
> >>>> since B has connectivity to all the brokers.
> >>>>
> >>>>> [root@A bin]# ./qpid-route route map localhost
> >>>>>
> >>>>> Finding Linked Brokers:
> >>>>> localhost:5672... Ok
> >>>>> 192.168.0.1:5672... Ok
> >>>>> 192.168.0.2:5672... Ok
> >>>>> 192.168.1.1:5672... [Errno 110] Connection timed out
> >>>>> 192.168.1.1:5672... [Errno 110] Connection timed out
> >>>>>
> >>>>> Dynamic Routes:
> >>>>>
> >>>>> Exchange test-topic:
> >>>>> 192.168.0.1:5672 => localhost:5672
> >>>>> 192.168.0.2:5672 <=> 192.168.0.1:5672
> >>>>> 192.168.1.1:5672 => 192.168.0.1:5672
> >>>>>
> >>>>> Static Routes:
> >>>>> none found
> >>>>>
> >>>>>
> >>>>> This says to me that the IP address of C is being sent to A via B.. which,
> >>>>> as I understand dynamic routes, should not happen (because I'm not doing
> >>>>> routing between them).
> >>>>>
> >>>>> Any help would be greatly appreciated. I believe that this should be
> >>>>> possible and I think there is some fundamental concept that I'm missing but
> >>>>> I am stuck at the moment.
> >>>>>
> >>>>> Thanks!
> >>>>> --Andrew
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
> >>>>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: [hidden email]
> >>>>> For additional commands, e-mail: [hidden email]
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: [hidden email]
> >>>> For additional commands, e-mail: [hidden email]
> >>>>
> >>>>
> >>>>
> >>>> If you reply to this email, your message will be added to the discussion below:
> >>>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598110.html
> >>>> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> >>>> NAML
> >>>
> >>> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598133/0/signature.asc>
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598133.html
> >>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >>
> >> If you reply to this email, your message will be added to the discussion below:
> >> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598136.html
> >> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> >> NAML
> >
> >
> > signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598137/0/signature.asc>
> >
> >
> >
> >
> > --
> > View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598137.html
> > Sent from the Apache Qpid users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598138.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598147/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598147.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by Ted Ross <tr...@redhat.com>.
Ok, that's good. Can you try one more thing?
Change the sequence of your setup:
1) Create exchanges
2) Create dynamic routes
3) Create queues and bindings
I'm wondering if there's a bug in the code.
-Ted
On 09/12/2013 01:08 PM, bacon wrote:
> I do:
>
> A:
> Host Port Transport Durable State Last Error
> =============================================================================
> 192.168.0.1 5672 tcp Y Operational
>
>
> B:
> Host Port Transport Durable State Last Error
> =============================================================================
> 192.168.0.2 5672 tcp Y Operational
> 192.168.1.1 5672 tcp Y Operational
>
> C:
>
> Host Port Transport Durable State Last Error
> =============================================================================
> 192.168.1.2 5672 tcp Y Operational
>
>
>
>
> On Sep 12, 2013, at 12:55 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
>
>> If you use "qpid-route link list <broker>" do you see all of the links
>> being operational?
>>
>> -Ted
>>
>> On 09/12/2013 10:49 AM, bacon wrote:
>>
>>> Output of qpid-config exchanges -r …
>>>
>>> From A:
>>>
>>> Exchange '' (direct)
>>> bind [bbdae4e2-0430-4742-a807-15ace7783f27:0.0] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
>>> bind [A] => A
>>> bind [qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
>>> Exchange 'amq.direct' (direct)
>>> Exchange 'amq.fanout' (fanout)
>>> Exchange 'amq.match' (headers)
>>> Exchange 'amq.topic' (topic)
>>> Exchange 'test-topic' (topic)
>>> bind [A] => A
>>> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>> Exchange 'qmf.default.direct' (direct)
>>> Exchange 'qmf.default.topic' (topic)
>>> bind [direct.84b0aac3-1a88-4b49-b8b6-5861299aaded] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
>>> Exchange 'qpid.management' (topic)
>>>
>>>
>>> From B:
>>>
>>> Exchange '' (direct)
>>> bind [0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
>>> bind [B] => B
>>> bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
>>> bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
>>> Exchange 'amq.direct' (direct)
>>> Exchange 'amq.fanout' (fanout)
>>> Exchange 'amq.match' (headers)
>>> Exchange 'amq.topic' (topic)
>>> Exchange 'test-topic' (topic)
>>> bind [B] => B
>>> bind [A] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>> bind [C] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>> Exchange 'qmf.default.direct' (direct)
>>> Exchange 'qmf.default.topic' (topic)
>>> bind [direct.11ec68b2-a11a-40f9-b9dd-8eb58352329c] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
>>> Exchange 'qpid.management' (topic)
>>>
>>> From C:
>>>
>>> Exchange '' (direct)
>>> bind [991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
>>> bind [C] => C
>>> bind [qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
>>> Exchange 'amq.direct' (direct)
>>> Exchange 'amq.fanout' (fanout)
>>> Exchange 'amq.match' (headers)
>>> Exchange 'amq.topic' (topic)
>>> Exchange 'test-topic' (topic)
>>> bind [C] => C
>>> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
>>> Exchange 'qmf.default.direct' (direct)
>>> Exchange 'qmf.default.topic' (topic)
>>> bind [direct.aa8e0d92-7bbf-4784-8c66-14a2cf6d9379] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
>>> Exchange 'qpid.management' (topic)
>>>
>>>
>>>
>>>
>>> Outout of qpid-stat -e on A after trying to send a message to b and then c
>>>
>>> Exchanges
>>> exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
>>> ===========================================================================================
>>> direct 3 0 0 0 0 0 0
>>> amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
>>> amq.fanout fanout Y 0 0 0 0 0 0 0
>>> amq.match headers Y 0 0 0 0 0 0 0
>>> amq.topic topic Y 0 0 0 0 0 0 0
>>> test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
>>> qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
>>> qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
>>> qpid.management topic 0 0 0 0 0 0 0
>>>
>>>
>>> Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
>>>
>>> Thanks,
>>> -Andrew
>>>
>>>
>>>
>>>
>>> On Sep 11, 2013, at 5:18 PM, "Ted Ross [via Qpid]" <[hidden email]> wrote:
>>>
>>>> On 09/11/2013 04:39 PM, bacon wrote:
>>>>
>>>>> Let me start by saying that I am almost certainly missing some important
>>>>> detail on how exchanges/dynamic routes work. With that said, here is what I
>>>>> am trying to do with qpid-cpp-0.24:
>>>>>
>>>>> I have 3 exchanges on three machines, lets call the A, B and C. Each with
>>>>> bound queues a, b and c
>>>>>
>>>>> A has bidirectional dynamic routes with B
>>>>> B has bidirectional dynamic routes with C
>>>>>
>>>>> node A has no network connectivity with node C (only A <-> B and B<-> C)
>>>>>
>>>>> What I want to do is to introduce a message on exchange A with destination c
>>>>> and have the message first routed to B and then onto exchange C and queue c.
>>>> What you are attempting should work.
>>>>
>>>>> The network setup:
>>>>>
>>>>> A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
>>>>> 192.168.1.1/24 ->
>>>>>
>>>>> The qpidd setup:
>>>>>
>>>>> On each:
>>>>> ./qpid-config add exchange topic test-topic
>>>>> ./qpid-config add queue A/B/C
>>>>> ./qpid-config bind test-topic A/B/C A/B/C
>>>>>
>>>>> on A:
>>>>> ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
>>>>> ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
>>>>>
>>>>>
>>>>> on B
>>>>> ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
>>>>> ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
>>>> It would be helpful to see the output of "qpid-config exchanges -r" on
>>>> broker B (the middle one). This will show how the bindings have
>>>> arranged themselves.
>>>>
>>>> Actually, post the output for all three brokers.
>>>>
>>>>> I can send messages from A to B (and b) as well as B to C (and c) but every
>>>>> message I send to c from A gets dropped which says to me that A is never
>>>>> being informed of the queue on C via B.
>>>>>
>>>>> A route map is similarly puzzling:
>>>> Don't worryabout route-map. It's connecting to one broker and
>>>> attempting to get the addresses of all the connected brokers. Since C
>>>> is not reachable, route-map won't be able to query it. This has no
>>>> bearing on the way messages flow. Route-map might work if run from B
>>>> since B has connectivity to all the brokers.
>>>>
>>>>> [root@A bin]# ./qpid-route route map localhost
>>>>>
>>>>> Finding Linked Brokers:
>>>>> localhost:5672... Ok
>>>>> 192.168.0.1:5672... Ok
>>>>> 192.168.0.2:5672... Ok
>>>>> 192.168.1.1:5672... [Errno 110] Connection timed out
>>>>> 192.168.1.1:5672... [Errno 110] Connection timed out
>>>>>
>>>>> Dynamic Routes:
>>>>>
>>>>> Exchange test-topic:
>>>>> 192.168.0.1:5672 => localhost:5672
>>>>> 192.168.0.2:5672 <=> 192.168.0.1:5672
>>>>> 192.168.1.1:5672 => 192.168.0.1:5672
>>>>>
>>>>> Static Routes:
>>>>> none found
>>>>>
>>>>>
>>>>> This says to me that the IP address of C is being sent to A via B.. which,
>>>>> as I understand dynamic routes, should not happen (because I'm not doing
>>>>> routing between them).
>>>>>
>>>>> Any help would be greatly appreciated. I believe that this should be
>>>>> possible and I think there is some fundamental concept that I'm missing but
>>>>> I am stuck at the moment.
>>>>>
>>>>> Thanks!
>>>>> --Andrew
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
>>>>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [hidden email]
>>>>> For additional commands, e-mail: [hidden email]
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>>>
>>>>
>>>> If you reply to this email, your message will be added to the discussion below:
>>>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598110.html
>>>> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
>>>> NAML
>>>
>>> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598133/0/signature.asc>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598133.html
>>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>
>> If you reply to this email, your message will be added to the discussion below:
>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598136.html
>> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
>> NAML
>
>
> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598137/0/signature.asc>
>
>
>
>
> --
> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598137.html
> Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
I do:
A:
Host Port Transport Durable State Last Error
=============================================================================
192.168.0.1 5672 tcp Y Operational
B:
Host Port Transport Durable State Last Error
=============================================================================
192.168.0.2 5672 tcp Y Operational
192.168.1.1 5672 tcp Y Operational
C:
Host Port Transport Durable State Last Error
=============================================================================
192.168.1.2 5672 tcp Y Operational
On Sep 12, 2013, at 12:55 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
> If you use "qpid-route link list <broker>" do you see all of the links
> being operational?
>
> -Ted
>
> On 09/12/2013 10:49 AM, bacon wrote:
>
> > Output of qpid-config exchanges -r …
> >
> > From A:
> >
> > Exchange '' (direct)
> > bind [bbdae4e2-0430-4742-a807-15ace7783f27:0.0] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> > bind [A] => A
> > bind [qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> > Exchange 'amq.direct' (direct)
> > Exchange 'amq.fanout' (fanout)
> > Exchange 'amq.match' (headers)
> > Exchange 'amq.topic' (topic)
> > Exchange 'test-topic' (topic)
> > bind [A] => A
> > bind [B] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> > Exchange 'qmf.default.direct' (direct)
> > Exchange 'qmf.default.topic' (topic)
> > bind [direct.84b0aac3-1a88-4b49-b8b6-5861299aaded] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> > Exchange 'qpid.management' (topic)
> >
> >
> > From B:
> >
> > Exchange '' (direct)
> > bind [0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> > bind [B] => B
> > bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> > bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> > Exchange 'amq.direct' (direct)
> > Exchange 'amq.fanout' (fanout)
> > Exchange 'amq.match' (headers)
> > Exchange 'amq.topic' (topic)
> > Exchange 'test-topic' (topic)
> > bind [B] => B
> > bind [A] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> > bind [C] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> > Exchange 'qmf.default.direct' (direct)
> > Exchange 'qmf.default.topic' (topic)
> > bind [direct.11ec68b2-a11a-40f9-b9dd-8eb58352329c] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> > Exchange 'qpid.management' (topic)
> >
> > From C:
> >
> > Exchange '' (direct)
> > bind [991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> > bind [C] => C
> > bind [qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> > Exchange 'amq.direct' (direct)
> > Exchange 'amq.fanout' (fanout)
> > Exchange 'amq.match' (headers)
> > Exchange 'amq.topic' (topic)
> > Exchange 'test-topic' (topic)
> > bind [C] => C
> > bind [B] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> > Exchange 'qmf.default.direct' (direct)
> > Exchange 'qmf.default.topic' (topic)
> > bind [direct.aa8e0d92-7bbf-4784-8c66-14a2cf6d9379] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> > Exchange 'qpid.management' (topic)
> >
> >
> >
> >
> > Outout of qpid-stat -e on A after trying to send a message to b and then c
> >
> > Exchanges
> > exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> > ===========================================================================================
> > direct 3 0 0 0 0 0 0
> > amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
> > amq.fanout fanout Y 0 0 0 0 0 0 0
> > amq.match headers Y 0 0 0 0 0 0 0
> > amq.topic topic Y 0 0 0 0 0 0 0
> > test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
> > qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
> > qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
> > qpid.management topic 0 0 0 0 0 0 0
> >
> >
> > Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
> >
> > Thanks,
> > -Andrew
> >
> >
> >
> >
> > On Sep 11, 2013, at 5:18 PM, "Ted Ross [via Qpid]" <[hidden email]> wrote:
> >
> >> On 09/11/2013 04:39 PM, bacon wrote:
> >>
> >>> Let me start by saying that I am almost certainly missing some important
> >>> detail on how exchanges/dynamic routes work. With that said, here is what I
> >>> am trying to do with qpid-cpp-0.24:
> >>>
> >>> I have 3 exchanges on three machines, lets call the A, B and C. Each with
> >>> bound queues a, b and c
> >>>
> >>> A has bidirectional dynamic routes with B
> >>> B has bidirectional dynamic routes with C
> >>>
> >>> node A has no network connectivity with node C (only A <-> B and B<-> C)
> >>>
> >>> What I want to do is to introduce a message on exchange A with destination c
> >>> and have the message first routed to B and then onto exchange C and queue c.
> >> What you are attempting should work.
> >>
> >>> The network setup:
> >>>
> >>> A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
> >>> 192.168.1.1/24 ->
> >>>
> >>> The qpidd setup:
> >>>
> >>> On each:
> >>> ./qpid-config add exchange topic test-topic
> >>> ./qpid-config add queue A/B/C
> >>> ./qpid-config bind test-topic A/B/C A/B/C
> >>>
> >>> on A:
> >>> ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
> >>> ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
> >>>
> >>>
> >>> on B
> >>> ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
> >>> ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
> >> It would be helpful to see the output of "qpid-config exchanges -r" on
> >> broker B (the middle one). This will show how the bindings have
> >> arranged themselves.
> >>
> >> Actually, post the output for all three brokers.
> >>
> >>>
> >>> I can send messages from A to B (and b) as well as B to C (and c) but every
> >>> message I send to c from A gets dropped which says to me that A is never
> >>> being informed of the queue on C via B.
> >>>
> >>> A route map is similarly puzzling:
> >> Don't worryabout route-map. It's connecting to one broker and
> >> attempting to get the addresses of all the connected brokers. Since C
> >> is not reachable, route-map won't be able to query it. This has no
> >> bearing on the way messages flow. Route-map might work if run from B
> >> since B has connectivity to all the brokers.
> >>
> >>> [root@A bin]# ./qpid-route route map localhost
> >>>
> >>> Finding Linked Brokers:
> >>> localhost:5672... Ok
> >>> 192.168.0.1:5672... Ok
> >>> 192.168.0.2:5672... Ok
> >>> 192.168.1.1:5672... [Errno 110] Connection timed out
> >>> 192.168.1.1:5672... [Errno 110] Connection timed out
> >>>
> >>> Dynamic Routes:
> >>>
> >>> Exchange test-topic:
> >>> 192.168.0.1:5672 => localhost:5672
> >>> 192.168.0.2:5672 <=> 192.168.0.1:5672
> >>> 192.168.1.1:5672 => 192.168.0.1:5672
> >>>
> >>> Static Routes:
> >>> none found
> >>>
> >>>
> >>> This says to me that the IP address of C is being sent to A via B.. which,
> >>> as I understand dynamic routes, should not happen (because I'm not doing
> >>> routing between them).
> >>>
> >>> Any help would be greatly appreciated. I believe that this should be
> >>> possible and I think there is some fundamental concept that I'm missing but
> >>> I am stuck at the moment.
> >>>
> >>> Thanks!
> >>> --Andrew
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
> >>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [hidden email]
> >>> For additional commands, e-mail: [hidden email]
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [hidden email]
> >> For additional commands, e-mail: [hidden email]
> >>
> >>
> >>
> >> If you reply to this email, your message will be added to the discussion below:
> >> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598110.html
> >> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> >> NAML
> >
> >
> > signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598133/0/signature.asc>
> >
> >
> >
> >
> > --
> > View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598133.html
> > Sent from the Apache Qpid users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598136.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598137/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598137.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by Ted Ross <tr...@redhat.com>.
If you use "qpid-route link list <broker>" do you see all of the links
being operational?
-Ted
On 09/12/2013 10:49 AM, bacon wrote:
> Output of qpid-config exchanges -r …
>
> From A:
>
> Exchange '' (direct)
> bind [bbdae4e2-0430-4742-a807-15ace7783f27:0.0] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> bind [A] => A
> bind [qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> Exchange 'amq.direct' (direct)
> Exchange 'amq.fanout' (fanout)
> Exchange 'amq.match' (headers)
> Exchange 'amq.topic' (topic)
> Exchange 'test-topic' (topic)
> bind [A] => A
> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> Exchange 'qmf.default.direct' (direct)
> Exchange 'qmf.default.topic' (topic)
> bind [direct.84b0aac3-1a88-4b49-b8b6-5861299aaded] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
> Exchange 'qpid.management' (topic)
>
>
> From B:
>
> Exchange '' (direct)
> bind [0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> bind [B] => B
> bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> Exchange 'amq.direct' (direct)
> Exchange 'amq.fanout' (fanout)
> Exchange 'amq.match' (headers)
> Exchange 'amq.topic' (topic)
> Exchange 'test-topic' (topic)
> bind [B] => B
> bind [A] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> bind [C] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> Exchange 'qmf.default.direct' (direct)
> Exchange 'qmf.default.topic' (topic)
> bind [direct.11ec68b2-a11a-40f9-b9dd-8eb58352329c] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
> Exchange 'qpid.management' (topic)
>
> From C:
>
> Exchange '' (direct)
> bind [991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> bind [C] => C
> bind [qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
> Exchange 'amq.direct' (direct)
> Exchange 'amq.fanout' (fanout)
> Exchange 'amq.match' (headers)
> Exchange 'amq.topic' (topic)
> Exchange 'test-topic' (topic)
> bind [C] => C
> bind [B] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
> Exchange 'qmf.default.direct' (direct)
> Exchange 'qmf.default.topic' (topic)
> bind [direct.aa8e0d92-7bbf-4784-8c66-14a2cf6d9379] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
> Exchange 'qpid.management' (topic)
>
>
>
>
> Outout of qpid-stat -e on A after trying to send a message to b and then c
>
> Exchanges
> exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
> ===========================================================================================
> direct 3 0 0 0 0 0 0
> amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
> amq.fanout fanout Y 0 0 0 0 0 0 0
> amq.match headers Y 0 0 0 0 0 0 0
> amq.topic topic Y 0 0 0 0 0 0 0
> test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
> qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
> qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
> qpid.management topic 0 0 0 0 0 0 0
>
>
> Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
>
> Thanks,
> -Andrew
>
>
>
>
> On Sep 11, 2013, at 5:18 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
>
>> On 09/11/2013 04:39 PM, bacon wrote:
>>
>>> Let me start by saying that I am almost certainly missing some important
>>> detail on how exchanges/dynamic routes work. With that said, here is what I
>>> am trying to do with qpid-cpp-0.24:
>>>
>>> I have 3 exchanges on three machines, lets call the A, B and C. Each with
>>> bound queues a, b and c
>>>
>>> A has bidirectional dynamic routes with B
>>> B has bidirectional dynamic routes with C
>>>
>>> node A has no network connectivity with node C (only A <-> B and B<-> C)
>>>
>>> What I want to do is to introduce a message on exchange A with destination c
>>> and have the message first routed to B and then onto exchange C and queue c.
>> What you are attempting should work.
>>
>>> The network setup:
>>>
>>> A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
>>> 192.168.1.1/24 ->
>>>
>>> The qpidd setup:
>>>
>>> On each:
>>> ./qpid-config add exchange topic test-topic
>>> ./qpid-config add queue A/B/C
>>> ./qpid-config bind test-topic A/B/C A/B/C
>>>
>>> on A:
>>> ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
>>> ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
>>>
>>>
>>> on B
>>> ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
>>> ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
>> It would be helpful to see the output of "qpid-config exchanges -r" on
>> broker B (the middle one). This will show how the bindings have
>> arranged themselves.
>>
>> Actually, post the output for all three brokers.
>>
>>>
>>> I can send messages from A to B (and b) as well as B to C (and c) but every
>>> message I send to c from A gets dropped which says to me that A is never
>>> being informed of the queue on C via B.
>>>
>>> A route map is similarly puzzling:
>> Don't worryabout route-map. It's connecting to one broker and
>> attempting to get the addresses of all the connected brokers. Since C
>> is not reachable, route-map won't be able to query it. This has no
>> bearing on the way messages flow. Route-map might work if run from B
>> since B has connectivity to all the brokers.
>>
>>> [root@A bin]# ./qpid-route route map localhost
>>>
>>> Finding Linked Brokers:
>>> localhost:5672... Ok
>>> 192.168.0.1:5672... Ok
>>> 192.168.0.2:5672... Ok
>>> 192.168.1.1:5672... [Errno 110] Connection timed out
>>> 192.168.1.1:5672... [Errno 110] Connection timed out
>>>
>>> Dynamic Routes:
>>>
>>> Exchange test-topic:
>>> 192.168.0.1:5672 => localhost:5672
>>> 192.168.0.2:5672 <=> 192.168.0.1:5672
>>> 192.168.1.1:5672 => 192.168.0.1:5672
>>>
>>> Static Routes:
>>> none found
>>>
>>>
>>> This says to me that the IP address of C is being sent to A via B.. which,
>>> as I understand dynamic routes, should not happen (because I'm not doing
>>> routing between them).
>>>
>>> Any help would be greatly appreciated. I believe that this should be
>>> possible and I think there is some fundamental concept that I'm missing but
>>> I am stuck at the moment.
>>>
>>> Thanks!
>>> --Andrew
>>>
>>>
>>>
>>> --
>>> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
>>> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>>
>> If you reply to this email, your message will be added to the discussion below:
>> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598110.html
>> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
>> NAML
>
>
> signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598133/0/signature.asc>
>
>
>
>
> --
> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598133.html
> Sent from the Apache Qpid users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org
Re: Dynamic routing between disconnected exchanges
Posted by bacon <ba...@grimm-co.com>.
Output of qpid-config exchanges -r …
>From A:
Exchange '' (direct)
bind [bbdae4e2-0430-4742-a807-15ace7783f27:0.0] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
bind [A] => A
bind [qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
Exchange 'amq.direct' (direct)
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'amq.topic' (topic)
Exchange 'test-topic' (topic)
bind [A] => A
bind [B] => qpid.bridge_queue_qpid.tcp:192.168.0.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
Exchange 'qmf.default.direct' (direct)
Exchange 'qmf.default.topic' (topic)
bind [direct.84b0aac3-1a88-4b49-b8b6-5861299aaded] => bbdae4e2-0430-4742-a807-15ace7783f27:0.0
Exchange 'qpid.management' (topic)
>From B:
Exchange '' (direct)
bind [0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
bind [B] => B
bind [qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
bind [qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
Exchange 'amq.direct' (direct)
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'amq.topic' (topic)
Exchange 'test-topic' (topic)
bind [B] => B
bind [A] => qpid.bridge_queue_qpid.tcp:192.168.0.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
bind [C] => qpid.bridge_queue_qpid.tcp:192.168.1.2:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
Exchange 'qmf.default.direct' (direct)
Exchange 'qmf.default.topic' (topic)
bind [direct.11ec68b2-a11a-40f9-b9dd-8eb58352329c] => 0eada2e3-a87a-42dc-9dd6-795599ee713c:0.0
Exchange 'qpid.management' (topic)
>From C:
Exchange '' (direct)
bind [991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
bind [C] => C
bind [qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee
Exchange 'amq.direct' (direct)
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'amq.topic' (topic)
Exchange 'test-topic' (topic)
bind [C] => C
bind [B] => qpid.bridge_queue_qpid.tcp:192.168.1.1:5672!test-topic!test-topic!_d7ea0855-a1db-451a-bb72-ec61814db3ee {u'qpid.replicate': u'none', u'qpid.fed.origin': u'd7ea0855-a1db-451a-bb72-ec61814db3ee', u'qpid.fed.op': u'B', u'qpid.fed.tags': u'd7ea0855-a1db-451a-bb72-ec61814db3ee'}
Exchange 'qmf.default.direct' (direct)
Exchange 'qmf.default.topic' (topic)
bind [direct.aa8e0d92-7bbf-4784-8c66-14a2cf6d9379] => 991fc38f-2e1e-4efd-a60d-8725a21b4360:0.0
Exchange 'qpid.management' (topic)
Outout of qpid-stat -e on A after trying to send a message to b and then c
Exchanges
exchange type dur bind msgIn msgOut msgDrop byteIn byteOut byteDrop
===========================================================================================
direct 3 0 0 0 0 0 0
amq.direct direct Y 0 76 76 0 34.7k 34.7k 0
amq.fanout fanout Y 0 0 0 0 0 0 0
amq.match headers Y 0 0 0 0 0 0 0
amq.topic topic Y 0 0 0 0 0 0 0
test-topic topic 2 3 2 1 12 8 4 <--- (drop is 1 after attempt to sent to c)
qmf.default.direct direct 0 9 9 0 2.40k 2.40k 0
qmf.default.topic topic 1 333 7 326 255k 17.2k 238k
qpid.management topic 0 0 0 0 0 0 0
Thought: It seems that A doesn't know anything a about C or c so it drops the message... could this have something to do with using a topic exchange? Or should B be telling A what it knows about C (but isn't)?
Thanks,
-Andrew
On Sep 11, 2013, at 5:18 PM, "Ted Ross [via Qpid]" <ml...@n2.nabble.com> wrote:
>
> On 09/11/2013 04:39 PM, bacon wrote:
>
> > Let me start by saying that I am almost certainly missing some important
> > detail on how exchanges/dynamic routes work. With that said, here is what I
> > am trying to do with qpid-cpp-0.24:
> >
> > I have 3 exchanges on three machines, lets call the A, B and C. Each with
> > bound queues a, b and c
> >
> > A has bidirectional dynamic routes with B
> > B has bidirectional dynamic routes with C
> >
> > node A has no network connectivity with node C (only A <-> B and B<-> C)
> >
> > What I want to do is to introduce a message on exchange A with destination c
> > and have the message first routed to B and then onto exchange C and queue c.
>
> What you are attempting should work.
>
> >
> > The network setup:
> >
> > A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
> > 192.168.1.1/24 ->
> >
> > The qpidd setup:
> >
> > On each:
> > ./qpid-config add exchange topic test-topic
> > ./qpid-config add queue A/B/C
> > ./qpid-config bind test-topic A/B/C A/B/C
> >
> > on A:
> > ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
> > ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
> >
> >
> > on B
> > ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
> > ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
>
> It would be helpful to see the output of "qpid-config exchanges -r" on
> broker B (the middle one). This will show how the bindings have
> arranged themselves.
>
> Actually, post the output for all three brokers.
>
> >
> >
> > I can send messages from A to B (and b) as well as B to C (and c) but every
> > message I send to c from A gets dropped which says to me that A is never
> > being informed of the queue on C via B.
> >
> > A route map is similarly puzzling:
>
> Don't worryabout route-map. It's connecting to one broker and
> attempting to get the addresses of all the connected brokers. Since C
> is not reachable, route-map won't be able to query it. This has no
> bearing on the way messages flow. Route-map might work if run from B
> since B has connectivity to all the brokers.
>
> >
> > [root@A bin]# ./qpid-route route map localhost
> >
> > Finding Linked Brokers:
> > localhost:5672... Ok
> > 192.168.0.1:5672... Ok
> > 192.168.0.2:5672... Ok
> > 192.168.1.1:5672... [Errno 110] Connection timed out
> > 192.168.1.1:5672... [Errno 110] Connection timed out
> >
> > Dynamic Routes:
> >
> > Exchange test-topic:
> > 192.168.0.1:5672 => localhost:5672
> > 192.168.0.2:5672 <=> 192.168.0.1:5672
> > 192.168.1.1:5672 => 192.168.0.1:5672
> >
> > Static Routes:
> > none found
> >
> >
> > This says to me that the IP address of C is being sent to A via B.. which,
> > as I understand dynamic routes, should not happen (because I'm not doing
> > routing between them).
> >
> > Any help would be greatly appreciated. I believe that this should be
> > possible and I think there is some fundamental concept that I'm missing but
> > I am stuck at the moment.
> >
> > Thanks!
> > --Andrew
> >
> >
> >
> > --
> > View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
> > Sent from the Apache Qpid users mailing list archive at Nabble.com.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
>
> If you reply to this email, your message will be added to the discussion below:
> http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598110.html
> To unsubscribe from Dynamic routing between disconnected exchanges, click here.
> NAML
signature.asc (858 bytes) <http://qpid.2158936.n2.nabble.com/attachment/7598133/0/signature.asc>
--
View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100p7598133.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.
Re: Dynamic routing between disconnected exchanges
Posted by Ted Ross <tr...@redhat.com>.
On 09/11/2013 04:39 PM, bacon wrote:
> Let me start by saying that I am almost certainly missing some important
> detail on how exchanges/dynamic routes work. With that said, here is what I
> am trying to do with qpid-cpp-0.24:
>
> I have 3 exchanges on three machines, lets call the A, B and C. Each with
> bound queues a, b and c
>
> A has bidirectional dynamic routes with B
> B has bidirectional dynamic routes with C
>
> node A has no network connectivity with node C (only A <-> B and B<-> C)
>
> What I want to do is to introduce a message on exchange A with destination c
> and have the message first routed to B and then onto exchange C and queue c.
What you are attempting should work.
>
> The network setup:
>
> A <-192.168.0.2/24 ------- 192.268.0.1/24 -> B <- 192.168.1.2/24 -------
> 192.168.1.1/24 ->
>
> The qpidd setup:
>
> On each:
> ./qpid-config add exchange topic test-topic
> ./qpid-config add queue A/B/C
> ./qpid-config bind test-topic A/B/C A/B/C
>
> on A:
> ./qpid-route -v dynamic add 192.168.0.1 192.168.0.2 test-topic
> ./qpid-route -v dynamic add 192.168.0.2 192.168.0.1 test-topic
>
>
> on B
> ./qpid-route -v dynamic add 192.168.1.1 192.168.1.2 test-topic
> ./qpid-route -v dynamic add 192.168.1.2 192.168.1.1 test-topic
It would be helpful to see the output of "qpid-config exchanges -r" on
broker B (the middle one). This will show how the bindings have
arranged themselves.
Actually, post the output for all three brokers.
>
>
> I can send messages from A to B (and b) as well as B to C (and c) but every
> message I send to c from A gets dropped which says to me that A is never
> being informed of the queue on C via B.
>
> A route map is similarly puzzling:
Don't worryabout route-map. It's connecting to one broker and
attempting to get the addresses of all the connected brokers. Since C
is not reachable, route-map won't be able to query it. This has no
bearing on the way messages flow. Route-map might work if run from B
since B has connectivity to all the brokers.
>
> [root@A bin]# ./qpid-route route map localhost
>
> Finding Linked Brokers:
> localhost:5672... Ok
> 192.168.0.1:5672... Ok
> 192.168.0.2:5672... Ok
> 192.168.1.1:5672... [Errno 110] Connection timed out
> 192.168.1.1:5672... [Errno 110] Connection timed out
>
> Dynamic Routes:
>
> Exchange test-topic:
> 192.168.0.1:5672 => localhost:5672
> 192.168.0.2:5672 <=> 192.168.0.1:5672
> 192.168.1.1:5672 => 192.168.0.1:5672
>
> Static Routes:
> none found
>
>
> This says to me that the IP address of C is being sent to A via B.. which,
> as I understand dynamic routes, should not happen (because I'm not doing
> routing between them).
>
> Any help would be greatly appreciated. I believe that this should be
> possible and I think there is some fundamental concept that I'm missing but
> I am stuck at the moment.
>
> Thanks!
> --Andrew
>
>
>
> --
> View this message in context: http://qpid.2158936.n2.nabble.com/Dynamic-routing-between-disconnected-exchanges-tp7598100.html
> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
> For additional commands, e-mail: users-help@qpid.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org