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 <shus...@riverace.com> 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
>
>

Reply via email to