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:05:00 UTC

[jira] [Updated] (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 updated ARTEMIS-4121:
------------------------------------
    Component/s:     (was: ActiveMQ-Artemis-Native)

> 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:
> {{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}}
> 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:
> {{		<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>}}
>  
> Create an address with multicast queues under it.
> Try to consume from that q.
> We use a recent camel and springboot to do this.
>  
> The workaround we implemented is (widening permissions and auto create until it works):
> {{		<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>}}
> This will give us the following error (what we want to avoid accidentally creating q.) for an queue that does not exist : {{{}Setup of JMS message listener invoker failed for destination '{}}}{{{}test.notexists{}}}{{{}' - trying to recover. Cause: AMQ229203: Address Does Not Exist: {}}}{{test.notexists}}{{{}{}}}
>  
>  
>  
>  



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