[
https://issues.apache.org/jira/browse/ARTEMIS-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17024300#comment-17024300
]
Robbie Gemmell commented on ARTEMIS-2605:
-----------------------------------------
As I say, this isnt something I've tried, I've just seen different folks
mention they are doing it over time.
There appear to be some basic detail here on both:
http://activemq.apache.org/components/artemis/documentation/latest/management.html
There is a simple test doing it over AMQP here:
https://github.com/apache/activemq-artemis/blob/2.11.0/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/AmqpManagementTest.java#L49
This appears to be doing roughly what you want, as part of doing general
management using AMQP messages:
https://github.com/EnMasseProject/enmasse/blob/0.30.2/agent/lib/artemis.js#L58
> Unable to create non-durable queue with specific name
> -----------------------------------------------------
>
> Key: ARTEMIS-2605
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2605
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: AMQP
> Affects Versions: 2.6.2
> Reporter: Dirkjan
> Priority: Major
>
> When attaching as a receiver to create a new queue, it appears Artemis will
> try to create a durable queue by default, even if I specify that the queue
> should not be durable. If my user does not have permission to create durable
> queues (even though it has permission to create non-durable queues), creation
> of the queue will fail with a permission error.
> More context:
> The application I'm targeting usually uses Core messages to do RPC, but it
> accepts AMQP messages as well, so it could be that there is a mismatch here
> between how things are set up.
>
> When using Core, I see that ServerSessionPacketHandler triggers on a packet
> with type -12 to create the queue with a well-defined name, which in the end
> dispatches to ServerSessionImpl.createQueue() with temporary = true and
> durable = false. This is the behavior I'm seeking to replicate. However, all
> my attempts to create to a temporary non-durable queue by attaching to it
> with AMQP seem to be failing so far.
>
> With my AMQP client, I try to create the response queue by attaching to it
> with source address = <receive-queue-name>. This lets me end up in
> ProtonServerSenderContext.initialise() by way of
> AMQPSessionContext.addSender(). However, this throws a permission error
> (AMQ119213, my user does not have permission for CREATE_DURABLE_QUEUE). This
> is surprising to me because I leave the "durable" field as default, which
> should mean to default to no durability. It seems to happen because
> AMQPSessionCallback.queueQuery() calls (through some indirection)
> ServerSessionImpl.createQueue() with durable = true.
>
> I could potentially create non-durable queues by setting dynamic = true, but
> in that case Artemis will create the queue with random UUID name, whereas my
> user only has permission to create queues with a name with a specific prefix.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)