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]"
<[email protected]> 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.