RE: Routing messages between two brokers

2017-10-27 Thread Steve Huston
Wonderful - that worked great, Ted - thanks!!!

> -Original Message-
> From: Ted Ross [mailto:tr...@redhat.com]
> Sent: Friday, October 27, 2017 11:31 AM
> To: users@qpid.apache.org
> Subject: Re: Routing messages between two brokers
> 
> Hi Steve,
> 
> Setting up the addresses as waypoints configures the router to properly
> route producers _to_ the broker and consumers _from_ the broker.  Your
> case is a little different.  Try this alternative configuration:
> 
> autoLink {
> addr: to.myapp
> connection: appbroker
> dir: in
> phase: 0
> }
> 
> autoLink {
> addr: to.myapp
> connection: otherbroker
> dir: out
> phase: 0
> }
> 
> autoLink {
> addr: from.myapp
> connection: appbroker
> dir: out
> phase: 0
> }
> 
> autoLink {
> addr: from.myapp
> connection: otherbroker
> dir: in
> phase: 0
> }
> 
> By default, _out_ autolinks take phase-0 to match directly attached
> producers and _in_ autolinks take phase-1 to match directly attached
> consumers.  Identifying the address as "waypoint: yes" causes consumers
> (normally attached listener links) to assume phase-1.
> 
> In your case, there is no multi-phase path (i.e. producer-to-broker; broker-
> to-consumer), so you can dispense with the waypoint addresses and
> explicitly set your autolink phases to 0.
> 
> In case it's not clear:  Dispatch has a notion of "address phase" which is a 
> way
> of dividing a single address into multiple sub-addresses for routing.  If the
> address is for a broker/queue, the routing from producer to broker is
> separate and independent from the routing from broker to consumer.  From
> outside of the router, there appears to be only one address, but in the
> router's forwarding table, there are multiple distinct addresses.
> 
> Let me know if you have any other problems with this.  It should work fine.
> 
> -Ted
> 
> On Thu, Oct 26, 2017 at 6:26 PM, Steve Huston 
> wrote:
> 
> > I am bootstrapping my dispatch router knowledge on a little project
> > driven by the need to feed messages through:
> >
> > - AMQP 0-10 client sends messages to a broker that speaks both 0-10
> > and 1.0
> > - dispatch router takes messages out of that dual-protocol broker and
> > routes them to another broker that speaks only 1.0
> >
> > ... and back the other way, with a different named queue.
> >
> > So here is the qdrouterd.conf pieces for this goal:
> >
> > router {
> > mode: standalone
> > id: Router.A
> > }
> >
> > #Listener for the dispatch-router management connections - qdstat
> > listener {
> > host: 0.0.0.0
> > port: amqp
> > authenticatePeer: no
> > }
> >
> > connector {
> > name: otherbroker
> > host: otherhost
> > port: 5672
> > role: route-container
> > }
> >
> > connector {
> > name: appbroker
> > host: 0.0.0.0
> > port: 10053
> > role: route-container
> > }
> >
> > address {
> > prefix: to.myapp
> > waypoint: yes
> > }
> >
> > autoLink {
> > addr: to.myapp
> > connection: appbroker
> > dir: in
> > }
> > autoLink {
> > addr: to.myapp
> > connection: otherbroker
> > dir: out
> > }
> >
> > address {
> > prefix: from.myapp
> > waypoint: yes
> > }
> >
> > autoLink {
> > addr: from.myapp
> > connection: appbroker
> > dir: out
> > }
> > autoLink {
> > addr: from.myapp
> > connection: otherbroker
> > dir: in
> > }
> >
> >
> > When qdrouterd runs, it appears to set up the connections and links,
> > but no messages are retrieved from 'appbroker' 'to.myapp' - and there
> > are many messages sitting in that queue waiting.
> >
> > Is there something I'm missing to actually get the messages to flow?
> >
> > Thanks,
> > -Steve
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For
> > additional commands, e-mail: users-h...@qpid.apache.org
> >
> >


Re: Routing messages between two brokers

2017-10-27 Thread Ted Ross
Hi Steve,

Setting up the addresses as waypoints configures the router to properly
route producers _to_ the broker and consumers _from_ the broker.  Your case
is a little different.  Try this alternative configuration:

autoLink {
addr: to.myapp
connection: appbroker
dir: in
phase: 0
}

autoLink {
addr: to.myapp
connection: otherbroker
dir: out
phase: 0
}

autoLink {
addr: from.myapp
connection: appbroker
dir: out
phase: 0
}

autoLink {
addr: from.myapp
connection: otherbroker
dir: in
phase: 0
}

By default, _out_ autolinks take phase-0 to match directly attached
producers and _in_ autolinks take phase-1 to match directly attached
consumers.  Identifying the address as "waypoint: yes" causes consumers
(normally attached listener links) to assume phase-1.

In your case, there is no multi-phase path (i.e. producer-to-broker;
broker-to-consumer), so you can dispense with the waypoint addresses and
explicitly set your autolink phases to 0.

In case it's not clear:  Dispatch has a notion of "address phase" which is
a way of dividing a single address into multiple sub-addresses for
routing.  If the address is for a broker/queue, the routing from producer
to broker is separate and independent from the routing from broker to
consumer.  From outside of the router, there appears to be only one
address, but in the router's forwarding table, there are multiple distinct
addresses.

Let me know if you have any other problems with this.  It should work fine.

-Ted

On Thu, Oct 26, 2017 at 6:26 PM, Steve Huston  wrote:

> I am bootstrapping my dispatch router knowledge on a little project driven
> by the need to feed messages through:
>
> - AMQP 0-10 client sends messages to a broker that speaks both 0-10 and 1.0
> - dispatch router takes messages out of that dual-protocol broker and
> routes them to another broker that speaks only 1.0
>
> ... and back the other way, with a different named queue.
>
> So here is the qdrouterd.conf pieces for this goal:
>
> router {
> mode: standalone
> id: Router.A
> }
>
> #Listener for the dispatch-router management connections - qdstat
> listener {
> host: 0.0.0.0
> port: amqp
> authenticatePeer: no
> }
>
> connector {
> name: otherbroker
> host: otherhost
> port: 5672
> role: route-container
> }
>
> connector {
> name: appbroker
> host: 0.0.0.0
> port: 10053
> role: route-container
> }
>
> address {
> prefix: to.myapp
> waypoint: yes
> }
>
> autoLink {
> addr: to.myapp
> connection: appbroker
> dir: in
> }
> autoLink {
> addr: to.myapp
> connection: otherbroker
> dir: out
> }
>
> address {
> prefix: from.myapp
> waypoint: yes
> }
>
> autoLink {
> addr: from.myapp
> connection: appbroker
> dir: out
> }
> autoLink {
> addr: from.myapp
> connection: otherbroker
> dir: in
> }
>
>
> When qdrouterd runs, it appears to set up the connections and links, but
> no messages are retrieved from 'appbroker' 'to.myapp' - and there are many
> messages sitting in that queue waiting.
>
> Is there something I'm missing to actually get the messages to flow?
>
> Thanks,
> -Steve
>
> -
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
>
>