从 CMS 客户端连接到 ActiveMQ Artemis 需要 CREATE_NON_DURABLE_QUEUE 权限

问题描述 投票:0回答:1

我需要从 C++ 应用程序(Linux 环境)连接到客户的 Artemis MQ 代理。我没有经纪人的管理权限。以前,我已经能够成功地将 CMS 客户端库 (https://activemq.apache.org/components/cms/) 用于不同代理的此目的。现在,即使客户端包附加了 Hello World 示例,我也遇到了以下问题:

connectionFactory->createConnection()
执行良好(使用正确的用户名和密码参数),但是
connection->start()
在下一行失败并显示以下消息:

AMQ229213: User: ******** does not have permission='CREATE_NON_DURABLE_QUEUE' for queue d002d98a-4343-4f0a-ad0d-cf9a6941b36d on address ActiveMQ.Advisory.TempQueue
        FILE: org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.convertException(OpenWireConnection.java), LINE: 461
        FILE: org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.act(OpenWireConnection.java), LINE: 373
        FILE: org.apache.activemq.artemis.utils.actors.ThresholdActor.doTask(ThresholdActor.java), LINE: 73
        FILE: org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java), LINE: 68
        FILE: org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java), LINE: 57
        FILE: org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java), LINE: 32
        FILE: org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java), LINE: 68
        FILE: java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java), LINE: 1136
        FILE: java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java), LINE: 635
        FILE: org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java), LINE: 118
        FILE: activemq/core/ActiveMQConnectionFactory.cpp, LINE: 360

我在互联网上找不到任何相关信息。经纪人管理员坚持认为我需要更改客户端,以便它不会尝试创建任何类型的队列 - 我无意这样做,但似乎不可避免。

activemq-artemis activemq-cpp
1个回答
0
投票

客户端正在向代理注册,以便接收有关各种目的地创建事件的建议,如被拒绝的目的地名称所示。

要禁用此功能,您需要使用连接选项此处关闭建议监视。

connectionFactory.setWatchTopicAdvisories(false);

或者,如果我没记错的话,可以通过以下方式在连接 URI 上设置:

?connection.watchTopicAdvisories=false
© www.soinside.com 2019 - 2024. All rights reserved.