On 13 Dec 2011, at 16h12, William Henry wrote:
> ----- Original Message -----
>> On 12/12/2011 05:53 PM, William Henry wrote:
>>> Hi all,
>>> 
>>> I have been very confused about the addressing and the mapping that
>>> we have (incompletely) defined [...]
>> 
>>> Why is henry/william or william/henry ambiguous?
>> 
>> See above. It's because you have both a queue and an exchange of the
>> same name in each case.
> 
> Yep that and a chat with Ted yesterday helped.  I had thought that (from 
> previous conversations with people that what was before (left of) the '/' was 
> always an exchange.  And that the right hand side was an address which could 
> implicitly be a queue. And that has been the cause of my confusion for a long 
> long time.  
> 
> I had not seen the content of the above URL before.

Interesting. I had also picked up on the same misapprehension. It would be good 
to have more comprehensive documentation, but I found the page here quite 
useful:

        
http://qpid.apache.org/books/0.12/Programming-In-Apache-Qpid/html/ch02s04.html

Basically, until I had to write address strings to publish and subscribe from a 
custom exchange I had written for the Java broker, I'd never really 
investigated the innards of the format. In particular, most of the 
documentation is for the C++ broker. It would be good to split it out into a 
separate chapter that is broker agnostic, perhaps?

>>> Why don't we document this stuff better?
>> 
>> A combination of reasons. What makes perfect sense to the author may
>> not make sense to (all) readers; we need feedback that we can act on. It
>> takes time to improve things and that time isn't always easy to find
>> in busy schedules. I think there are still some structural/procedural
>> issues that make fixing documentation more daunting than it should
>> be.
>> 
>> We certainly want to do a better job, so any suggestions &
>> contributions are welcome.
>> 
>>> Why do we have examples that imply that an address maps to a queue?
>> 
>> An address *can* refer to a queue.


I am actually still a bit unclear as to the link/node distinctions. Would I be 
correct assuming these are to provide forward compatibility with AMQP 1-0 then? 
Also, I seem to have to give a 'type: topic' for the node when I want to force 
an address to be resolved as an exchange, which is misleading. The following 
example shows a typical address for my application, which seems overly complex:

        'app'/'destination'; {
            create: always,
            assert: never,
            link: {
                name: 'destination.id',
                reliability: unreliable,
                auto-delete: true
            },
            node: {
                type: topic,
                x-bindings: [
                    {
                        exchange: 'app',
                        key: 'destination.id'
                    }
                ]
            }
        }

The aim here is to deliver messages sent to 'destination' on the 'app' exchange 
to the 'destination.id' queue. There is extra excitment with the actual 
exchange implementation, which isn't really relevant. But, is there some 
simpler address I could use here to achieve this result?

Cheers,
Andrew.
-- 
-- andrew d kennedy ? +447584719571 : http://grkvlt.blogspot.com/ ;


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to