[
https://issues.apache.org/jira/browse/ARTEMIS-2100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16665048#comment-16665048
]
ASF GitHub Bot commented on ARTEMIS-2100:
-----------------------------------------
Github user mtaylor commented on the issue:
https://github.com/apache/activemq-artemis/pull/2392
> > With AMQP raw, there is no such thing as a routing type (this is a
broker concept). Therefore messages sent via AMQP to an address should be
routed to any routing type currently configured on that address. If an address
has a single routing type configured e.g. Multicast, the message should be
routed there, it should not create a new routing type with Anycast, which is
what is happening here.
>
> agreed
>
> > Artemis also implements the JMS AMQP extension, which enables
additional functionality, one of which is the ability to define a sender
destination type, i.e. Queue or Topic. These map to Address Anycast and
Multicast respectively. In this case (with auto-create disabled), if an AMQP
client using this extension e.g. QPID JMS client, sends explicitly sends to
Anycast, but only a Multicast address exists, then an error should be returned.
> > With auto-create enabled for both addresses and queues, the behaviour
would be different, an Anycast address would be created and no error thrown.
>
> This would make sense if anycast and multicast addresses (i.e. queue and
topic) were entirely independent. They are not though.
I am not sure what you mean by entirely independent. Can you elaborate.
> address routing-type overridden on attaching AMQP sender
> --------------------------------------------------------
>
> Key: ARTEMIS-2100
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2100
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Affects Versions: 2.6.2
> Reporter: Gordon Sim
> Priority: Major
> Fix For: 2.6.4
>
>
> If the default-address-routing-type is set to ANYCAST and an address is
> created with routing-type MULTICAST, then when an AMQP sender attaches to
> that address the address is recreated with routing-type=[MULTICAST,ANYCAST]
> and a queue with the same name as the address is created. It is expected that
> the address routing-type should be honoured.
> E.g. on broker with:
> {noformat}
> <address-setting match="#">
> <dead-letter-address>DLQ</dead-letter-address>
> <expiry-address>ExpiryQueue</expiry-address>
> <redelivery-delay>0</redelivery-delay>
> <!-- with -1 only the global-max-size is in use for limiting -->
> <max-size-bytes>-1</max-size-bytes>
>
> <message-counter-history-day-limit>10</message-counter-history-day-limit>
> <address-full-policy>PAGE</address-full-policy>
> <auto-create-queues>true</auto-create-queues>
> <auto-create-addresses>true</auto-create-addresses>
> <auto-create-jms-queues>true</auto-create-jms-queues>
> <auto-create-jms-topics>true</auto-create-jms-topics>
>
> <default-address-routing-type>ANYCAST</default-address-routing-type>
> </address-setting>
> {noformat}
> Create a MULTICAST address:
> {noformat}
> artemis address create --multicast --no-anycast --name mytopic
> {noformat}
> Check the address and any queues (feilds ommitted for clarity):
> {noformat}
> $ artemis address show --name mytopic
> Address [name=mytopic, routingTypes={MULTICAST}, autoCreated=false]
> $ artemis queue stat
> |NAME |ADDRESS
> |DLQ |DLQ
> |ExpiryQueue |ExpiryQueue
> |activemq.management.612e33f1-1c5f-4bde-99bb-9e9188efa508|activemq.management.612e33f1-1c5f-4bde-99bb-9e9188efa508|1
>
> {noformat}
> Now attach an AMQP sender to the address, e.g. using Qpid Proton python
> example
> {noformat}
> simple_send.py -a localhost/mytopic -m 1
> {noformat}
> Now the address has been altered and a queue called mytopic exists:
> {noformat}
> $ artemis address show --name mytopic
> Address [name=mytopic, routingTypes={MULTICAST,ANYCAST}, autoCreated=false]
> $ artemis queue stat
> |NAME |ADDRESS
> |DLQ |DLQ
> |ExpiryQueue |ExpiryQueue
> |activemq.management.5a393c3e-746d-404b-9afb-36849886aaa5|activemq.management.5a393c3e-746d-404b-9afb-36849886aaa5
> |mytopic |mytopic
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)