Hi Ted,
So what I'm doing is :
[1] using the qpid proton recv example to consume attached to dispatch
router QDR.A (10.64.30.148:5672).
[2] using the qpid proton send example to producer either via attached to
another dispatch router QDR.C (10.64.30.142:5672) or via activemq broker on
an amqp transport on 10.64.30.142:5676.
[3] QDR.C has a connector and a link router pattern routing to the activemq
broker.
so
consumer<--QDR.A<-->QDR.C<---producer works
where as
consumer-->QDR.A<-->QDR.C--->ActiveMQ<--producer doesn't seem to work
So if I set up the consumer on 30.148 and send a message via the dispatch
router on 30.142 the message is received at 30.148.
i.e.
[root@node2 bin]# export
PN_TRACE_FRM=1;/root/qpid-proton/qpid-proton-0.9/build/examples/c/messenger/send
-a amqp://10.64.30.142:5672/R1 VIAROUTER
[0x1f6e380]: -> AMQP
[0x1f6e380]:0 -> @open(16)
[container-id="5a9b39e1-e782-4a55-ac2d-97fdeca39cec",
hostname="10.64.30.142"]
[0x1f6e380]:0 -> @begin(17) [next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=1]
[0x1f6e380]:0 -> @attach(18) [name="sender-xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="R1",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x1f6e380]: <- AMQP
[0x1f6e380]:0 <- @open(16) [container-id="Qpid.Dispatch.Router.C",
max-frame-size=16384, offered-capabilities=:"ANONYMOUS-RELAY"]
[0x1f6e380]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=0,
incoming-window=61, outgoing-window=0]
[0x1f6e380]:0 <- @attach(18) [name="sender-xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="R1",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x1f6e380]:0 <- @flow(19) [next-incoming-id=0, incoming-window=61,
next-outgoing-id=0, outgoing-window=0, handle=0, delivery-count=0,
link-credit=1000, drain=false]
[0x1f6e380]:0 -> @transfer(20) [handle=0, delivery-id=0,
delivery-tag=b"\x00\x00\x00\x00\x00\x00\x00\x00", message-format=0,
settled=true, more=false] (103)
"\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR
\x00\x00Ss\xd0\x00\x00\x00>\x00\x00\x00\x0d@@\xa1\x1bamqp://
10.64.30.142:5672/R1@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x09VIAROUTER
"
[0x1f6e380]:0 -> @detach(22) [handle=0, closed=true]
[0x1f6e380]:0 -> @close(24) []
[0x1f6e380]: -> EOS
[0x1f6e380]:0 <- @detach(22) [handle=0, closed=true]
[0x1f6e380]:0 <- @close(24) []
[0x1f6e380]: <- EOS
[root@node2 bin]#
[root@broker1 ~]# export
PN_TRACE_FRM=1;/root/qpid-proton/qpid-proton-0.9/build/examples/c/messenger/recv
amqp://10.64.30.148:5672/R1
[0x253dcf0]: -> AMQP
[0x253dcf0]:0 -> @open(16)
[container-id="c80537b6-7e58-49d3-993c-1547785edd58",
hostname="10.64.30.148"]
[0x253dcf0]:0 -> @begin(17) [next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=0]
[0x253dcf0]:0 -> @attach(18) [name="R1", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="R1",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x253dcf0]:0 -> @flow(19) [incoming-window=2147483647, next-outgoing-id=0,
outgoing-window=0, handle=0, delivery-count=0, link-credit=1024,
drain=false]
Sat May 16 16:40:00 2015 ROUTER (info) Registered local address=R1 phase=0
[0x253dcf0]: <- AMQP
[0x253dcf0]:0 <- @open(16) [container-id="Qpid.Dispatch.Router.A",
max-frame-size=16384, offered-capabilities=:"ANONYMOUS-RELAY"]
[0x253dcf0]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=0,
incoming-window=61, outgoing-window=0]
[0x253dcf0]:0 <- @attach(18) [name="R1", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="R1",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x253dcf0]:0 <- @transfer(20) [handle=0, delivery-id=0,
delivery-tag=b"\x04K\x00\x00\x00\x00\x00\x00", message-format=0,
settled=false, more=false] (185)
"\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR
\x00\x00Sr\xd1\x00\x00\x00J\x00\x00\x00\x04\xa3\x0ex-opt-qd.trace\xd0\x00\x00\x00\x16\x00\x00\x00\x02\xa1\x070/QDR.C\xa1\x070/QDR.A\xa3\x10x-opt-qd.ingress\xa1\x070/QDR.C\x00Ss\xd0\x00\x00\x00>\x00\x00\x00\x0d@
@\xa1\x1bamqp://
10.64.30.142:5672/R1@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x09VIAROUTER
"
Address: amqp://10.64.30.142:5672/R1
Subject: (no subject)
Content: "VIAROUTER"
[0x253dcf0]:0 -> @disposition(21) [role=true, first=0, last=0, settled=true
However if I point the producer at the activemq broker no message is
received at the consumer but there are messages enqueue at the broker.
[root@node2 bin]# export
PN_TRACE_FRM=1;/root/qpid-proton/qpid-proton-0.9/build/examples/c/messenger/send
-a amqp://10.64.30.142:5676/R1 VIAROUTER
[0x229c380]: -> AMQP
[0x229c380]:0 -> @open(16)
[container-id="9bc5bb48-52d2-40d7-a877-7b6f27490cc7",
hostname="10.64.30.142"]
[0x229c380]:0 -> @begin(17) [next-outgoing-id=0,
incoming-window=2147483647, outgoing-window=1]
[0x229c380]:0 -> @attach(18) [name="sender-xxx", handle=0, role=false,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1",
durable=0, timeout=0, dynamic=false], target=@target(41) [address="R1",
durable=0, timeout=0, dynamic=false], initial-delivery-count=0]
[0x229c380]: <- AMQP
[0x229c380]:0 <- @open(16) [container-id="", hostname="",
max-frame-size=4294967295, channel-max=32767,
offered-capabilities=@PN_SYMBOL[:"ANONYMOUS-RELAY"],
properties={:"topic-prefix"="topic://", :"queue-prefix"="queue://"}]
[0x229c380]:0 <- @begin(17) [remote-channel=0, next-outgoing-id=1,
incoming-window=0, outgoing-window=0, handle-max=1024]
[0x229c380]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647,
next-outgoing-id=1, outgoing-window=0]
[0x229c380]:0 <- @attach(18) [name="sender-xxx", handle=0, role=true,
snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [address="R1"],
target=@target(41) [address="R1"]]
[0x229c380]:0 <- @flow(19) [next-incoming-id=0, incoming-window=2147483647,
next-outgoing-id=1, outgoing-window=0, handle=0, delivery-count=0,
link-credit=1000]
[0x229c380]:0 -> @transfer(20) [handle=0, delivery-id=0,
delivery-tag=b"\x00\x00\x00\x00\x00\x00\x00\x00", message-format=0,
settled=true, more=false] (103)
"\x00Sp\xd0\x00\x00\x00\x0b\x00\x00\x00\x05BP\x04@BR
\x00\x00Ss\xd0\x00\x00\x00>\x00\x00\x00\x0d@@\xa1\x1bamqp://
10.64.30.142:5676/R1@@@@@\x83\x00\x00\x00\x00\x00\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x00@R\x00@\x00Sw\xa1\x09VIAROUTER
"
[0x229c380]:0 -> @detach(22) [handle=0, closed=true]
[0x229c380]:0 -> @close(24) []
[0x229c380]: -> EOS
[0x229c380]:0 <- @detach(22) [handle=0, closed=true]
[0x229c380]:0 <- @close(24) []
[0x229c380]: <- EOS
The only AMQP configuration I've done on the Activemq broker is enable the
AMQP transport i.e.
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and
frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://
0.0.0.0:61615?maximumConnections=1000&wireFormat.maxFrameSize=104857600
"/>
<transportConnector name="amqp" uri="amqp://
10.64.30.142:5676?maximumConnections=1000&wireFormat.maxFrameSize=104857600
"/>
</transportConnectors>
On Sat, May 16, 2015 at 5:45 AM Ted Ross <[email protected]> wrote:
> Noel,
>
> Tried a similar setup using activemq and didn't see the same problem you
> saw.
>
> I used this topology:
>
>
>
> <sender/receiver>----[Router]----[Router]----[activemq]----<sender/receiver>
>
> All combinations of sender and receiver worked as I expected including
> sending directly to the broker while receiving via the routers.
>
> Is your receiver issuing credit for messages? Can you run your failing
> receiver with PN_TRACE_FRM=1 set and capture the AMQP trace?
>
> -Ted
>
>
> On 05/14/2015 09:38 AM, Ted Ross wrote:
> > Hi Noel,
> >
> > I'll try to reproduce your scenario today. I haven't yet tested this
> > feature against ActiveMQ. There shouldn't be a need for a separate
> > bridge function.
> >
> > -Ted
> >
> > On 05/13/2015 07:51 AM, Noel OConnor wrote:
> >> Hi Ted,
> >> Did you get a chance to look at this ?
> >>
> >> cheers
> >> Noel
> >>
> >> On Thu, May 7, 2015 at 7:53 AM Noel OConnor <[email protected]>
> >> wrote:
> >>
> >>> Hi Ted,
> >>> Yep I'm using linkroutes from the dispatch router instances to the
> >>> brokers. Config below.
> >>>
> >>> cheers
> >>> Noel
> >>>
> >>> connector {
> >>> name: broker1
> >>> role: on-demand
> >>> addr: 10.64.30.142
> >>> port: 5676
> >>> sasl-mechanisms: ANONYMOUS
> >>> }
> >>>
> >>>
> >>> connector {
> >>> name: broker2
> >>> role: on-demand
> >>> addr: 10.64.30.142
> >>> port: 5675
> >>> sasl-mechanisms: ANONYMOUS
> >>> }
> >>>
> >>> linkRoutePattern {
> >>> prefix: b1.
> >>> connector: broker1
> >>> }
> >>>
> >>> linkRoutePattern {
> >>> prefix: b2.
> >>> connector: broker2
> >>> }
> >>>
> >>> On Wed, May 6, 2015 at 10:47 PM Ted Ross <[email protected]> wrote:
> >>>
> >>>> Hi Noel,
> >>>>
> >>>> Can you provide more detail on how you have your routers configured?
> >>>> Are you using link-routing to connect consumers to the broker (i.e.
> the
> >>>> linkRoutePattern configuration)?
> >>>>
> >>>> -Ted
> >>>>
> >>>> On 05/05/2015 09:26 PM, Noel OConnor wrote:
> >>>>> Hi,
> >>>>> I'm looking at setting up a mesh of dispatch routers which connect to
> >>>>> an activemq broker. Any messages sent by a producer attaching to the
> >>>>> dispatch routers are available on the broker and the destinations are
> >>>>> automatically created on the brokers and consumers attached to the
> >>>>> broker get the messages. I'm using a linkrouter to send the messages
> >>>>> to the broker.
> >>>>>
> >>>>> However when I send a message from a producer connected to the broker
> >>>>> the consumer which attached to the dispatch router, doesn't get the
> >>>>> message.
> >>>>>
> >>>>> My question is how to I propagate destinations on the broker across
> >>>>> the dispatch router network. I suspect that I may need to setup some
> >>>>> sort of bridge from the broker to a dispatch router but I wanted to
> >>>>> check if there was an easier way.
> >>>>>
> >>>>> cheers
> >>>>> Noel
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: [email protected]
> >>>>> For additional commands, e-mail: [email protected]
> >>>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: [email protected]
> >>>> For additional commands, e-mail: [email protected]
> >>>>
> >>>>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>