You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (Jira)" <ji...@apache.org> on 2022/12/20 15:10:00 UTC

[jira] [Resolved] (ARTEMIS-4121) multicast does not work with auto-create off

     [ https://issues.apache.org/jira/browse/ARTEMIS-4121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Bertram resolved ARTEMIS-4121.
-------------------------------------
    Resolution: Not A Problem

> multicast does not work with auto-create off
> --------------------------------------------
>
>                 Key: ARTEMIS-4121
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4121
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.24.0, 2.27.1
>            Reporter: D vd Broek
>            Priority: Minor
>
> We haven a setup in which we want to be in control of the created addresses en queues.
> We use multicast on some occasions. We are not able to remove permissions and turn-off auto create queues in that case. Normal anycast address and q work fine.
> The error we get is:
> {noformat}
> o.a.c.component.jms.DefaultJmsMessageListenerContainer : Setup of JMS message listener invoker failed for destination 'test.exists' - trying to recover. Cause: Destination test.exists does not exist{noformat}
> This is not what we expected. We think this is not the correct behavior.
> +*Reproduce steps:*+
> Setup de broker with an user that is allowed to send and receive.
> Set auto-create on false.
> This is what we have:
> {code:xml}	
> <security-settings>
>    <security-setting match="#">
>       <permission type="createNonDurableQueue" roles="amq"/>
>       <permission type="deleteNonDurableQueue" roles="amq"/>
>       <permission type="createDurableQueue" roles="amq"/>
>       <permission type="deleteDurableQueue" roles="amq"/>
>       <permission type="createAddress" roles="amq"/>
>       <permission type="deleteAddress" roles="amq"/>
>       <permission type="consume" roles="amq,csb"/>
>       <permission type="browse" roles="amq"/>
>       <permission type="send" roles="amq,csb"/>
>       <!-- we need this otherwise ./artemis data imp wouldn't work -->
>       <permission type="manage" roles="amq"/>
>    </security-setting>
> </security-settings>
> <address-settings>
>    <!--default for catch all-->
>    <address-setting match="#">
>       <!-- 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>false</auto-create-queues>
>       <auto-create-addresses>false</auto-create-addresses>
>       <auto-create-jms-queues>false</auto-create-jms-queues>
>       <auto-create-jms-topics>false</auto-create-jms-topics>
>       <management-message-attribute-size-limit>-1</management-message-attribute-size-limit>
>    </address-setting>{code}
> Create an address with multicast queues under it.
> Try to consume from that q.
> We use a recent Camel and Spring Boot to do this. 
> The workaround we implemented is (widening permissions and auto create until it works):
> {code:xml}
> <security-settings>
>    <security-setting match="#">
>       <permission type="createNonDurableQueue" roles="amq"/>
>       <permission type="deleteNonDurableQueue" roles="amq"/>
>       <permission type="createDurableQueue" roles="amq,csb"/>
>       <permission type="deleteDurableQueue" roles="amq"/>
>       <permission type="createAddress" roles="amq"/>
>       <permission type="deleteAddress" roles="amq"/>
>       <permission type="consume" roles="amq,csb"/>
>       <permission type="browse" roles="amq"/>
>       <permission type="send" roles="amq,csb"/>
>       <!-- we need this otherwise ./artemis data imp wouldn't work -->
>       <permission type="manage" roles="amq"/>
>    </security-setting>
> </security-settings>
> <address-settings>
>    <!--default for catch all-->
>    <address-setting match="#">
>       <!-- 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>false</auto-create-addresses>
>       <auto-create-jms-queues>true</auto-create-jms-queues>
>       <auto-create-jms-topics>false</auto-create-jms-topics>
>       <management-message-attribute-size-limit>-1</management-message-attribute-size-limit>
>    </address-setting>{code}
> This will give us the following error (what we want to avoid accidentally creating q.) for an queue that does not exist:
> {noformat}
> Setup of JMS message listener invoker failed for destination 'test.notexists' - trying to recover. Cause: AMQ229203: Address Does Not Exist: test.notexists{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)