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)