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

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

D vd Broek created ARTEMIS-4121:
-----------------------------------

             Summary: 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
          Components: ActiveMQ-Artemis-Native
    Affects Versions: 2.27.1, 2.24.0
            Reporter: D vd Broek
            Assignee: Clebert Suconic


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)