Hi all,

I have been very confused about the addressing and the mapping that we have 
(incompletely) defined as part of the documentation.  I'm told that there is no 
implicit magic but there is some decision making going internally to determine 
what an address means.  So for example if there is a queue called 'test', 
without any bindings. but I run drain and spout on test, some things 
automatically happen and I get the messages.

So I was wondering what would happen if I had a queue and an exchange with the 
same name?

So I tried something:
qpid-config add queue william
qpid-config add queue henry
qpid-config add exchange direct william
qpid-config add exchange direct henry
qpid-config bind william henry
qpid-config bind henry william
./drain -f -c 100 william

qpid isn't sure what to do. Fair enough!:
Ambiguous address, please specify queue or topic as node type

(But it means that someone could do something like this dynamically and cause 
issues)

Okay so what about:
./drain -f -c 100 william/henry
Ambiguous address, please specify queue or topic as node type

How about:
./drain -f -c 100 henry/william;
Ambiguous address, please specify queue or topic as node type

Wait those aren't actually ambiguous. But actually they are.  An address isn't 
really an exchange or a queue I'm told. However we do map an address to a queue 
or an exchange if we feel like it (I'm being flippant here - I mean there is 
some implicit mapping if it's not ambiguous). So I can create a queue that maps 
to an address very conveniently because of some convenient mapping rule that 
happens implicitly. How is that happening?

It's these implicit mapping rules that are confusing.  Where are these rules 
defined?  Why is henry/william or william/henry ambiguous?  Why don't we 
document this stuff better?  Why do we have examples that imply that an address 
maps to a queue?

William

 

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

Reply via email to