Robbie Gemmell created ARTEMIS-2910:
---------------------------------------

             Summary: consider routing type annotations during node 
auto-creation for AMQP anonymous producers
                 Key: ARTEMIS-2910
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2910
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: AMQP
    Affects Versions: 2.15.0
            Reporter: Robbie Gemmell
             Fix For: 2.16.0


For AMQP 'anonymous producers' (those that dont have a fixed destination and 
attach to the null address) the broker bases its 'routing type' decisions on 
the address a message is sent to, typically falling back to the default routing 
type from the address settings.
(Technically it could look at terminus capabilities for type hints, but 
anonymous producers would not tend to have these for the same reason they dont 
have a fixed address: it isnt known information at the time).

This leads to user gotchas where behaviour can be surprising and/or 
non-deterministic (e.g due to differing timing between producers producing 
messages and the consumers lifecycle). This is especially true for people 
wanting to use queues, and encountering interaction with the brokers default 
multicast routing type (something many arent yet aware of, not having seen the 
quick detail tucked away in the docs). Here it is easy to send a message 'to a 
queue' that then gets dropped unexpectedly, but also auto-creates a multicast 
address that then prevents attaching the consumers aiming to receive such 
messages from the queue.

The broker already supports a couple varieties of annotation based mechanism 
for determining its routing type information from the message (the one AMQP JMS 
clients use to convey the JMSDestination type, and another of artemis own), but 
this detail isnt consulted at all during message handling for the anonymous 
producers currently. Having the broker examine the detail would remove these 
gotchas when specified.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to