On Thu, Aug 29, 2019 at 3:48 PM Lohmann Carsten (INST/ECS4) <
carsten.lohm...@bosch-si.com> wrote:

> > > > we have a network of 3 Qpid dispatch router instances.
> > > > A client is connected to router instance A and has opened a receiver
> link
> > > > on address addrA.
> > > > *After* having received the ATTACH frame for this,
> > > > another client on another machine which is connected to router
> instance B
> > > > opens a sender link on the empty address (anonymous relay).
> > > > After receiving credit, a message with the "To" address "addrA" is
> sent
> > > on
> > > > this sender link.
> > > >
> > > > With this, we frequently get a rejected disposition from the router:
> > > > Disposition{role=RECEIVER, first=2, last=null, settled=false,
> > > > state=Rejected{error=Error{condition=amqp:not-found,
> > > > description='Deliveries cannot be sent to an unavailable address',
> > > > info=null}}, batchable=false}
> > > >
> > > > Adding a delay before sending the message causes the message to be
> > > > accepted.
> > > >
> > > >
> > > > Is it correct to assume that "rejected" disposition will come when
> the
> > > > information about the "addrA" receiver on router A has not been
> > > propagated
> > > > yet to router B?
> > > >
> > > Yes, that is a correct assumption.
> > >
> > > > Is there some way to know for the message sender when it is safe to
> send
> > > > the message on the anonymous relay link without it getting rejected?
> > > >
> > > You could run a qdstat -a on the router B and make sure you see your
> > > address before starting to send on the anonymous link.
> > >
> > > Thanks.
> > >
> > >
> > Or you can re-try the send at some point.
> > Usually the router returns a Released disposition when it cannot forward
> a
> > message (as in this case the address hasn't been propagated to the
> router).
> >
> > A "Released" disposition means the message definitely has not been acted
> > upon my any receiver, so it can be re-transmitted without risk of
> > duplication.
> >
> > The reason you see Rejected instead is your router has configured the
> > "defaultDistribution" configuration option to "unavailable".  That forces
> > the router to reject any message that cannot be forwarded.
> >
>
> ok, thanks.
>
> Unfortunately, using qdstat or anything Qpid-specific is not an option
> here for us.
> So, yes, either we could re-try sending the message or use a non-anonymous
> sender link instead.
>
> Just an idea:
> Would it be feasible for the router to only send the reply ATTACH frame
> for the receiver link creation once the address was propagated to all nodes
> of the router network? And maybe activating that behaviour via a Qpid
> configuration option.
>
Since this is an anonymous link, we send the response attach immediately
since it is not for any specific address. In the case of a non-anonymous
sender we will not send you back an attach until there is a receiver
available.

>
>
> Best regards
>
> Carsten Lohmann
>
> Engineering Cloud Services 4 Bosch IoT Hub (INST/ECS4)
> Bosch Software Innovations GmbH | Ullsteinstr. 128 | 12109 Berlin |
> GERMANY | www.bosch-si.com
>
> Sitz: Berlin, Registergericht: Amtsgericht Charlottenburg; HRB 148411 B
> Aufsichtsratsvorsitzender: Dr.-Ing. Thorsten Lücke; Geschäftsführung: Dr.
> Stefan Ferber, Michael Hahn, Dr. Aleksandar Mitrovic
>
>

Reply via email to