【问题标题】:Cannot create temporary queue with default app user无法使用默认应用用户创建临时队列
【发布时间】:2021-09-27 19:41:29
【问题描述】:

我是 MQ 的新手,我正在使用这个 docker image 和默认设置。 我需要通过 java 应用程序连接(但没有 websphere)。

我使用 app 用户。这个可以毫无问题地连接到“DEV.APP.SVRCONN”通道,但我需要创建一个临时队列(为了获得响应),它无法创建它并出现以下错误:

JMSWMQ2008: Failed to open MQ queue 'SYSTEM.DEFAULT.MODEL.QUEUE'

这个错误的原因:

com.ibm.mq.MQException: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').

我检查了 MQ 管理器,“SYSTEM.DEFAULT.MODEL.QUEUE”不存在,我需要创建它吗?

【问题讨论】:

  • 这真的是与stackoverflow.com/q/69344838/1968 不同的问题吗?
  • 对我来说这 2 个不同的问题,所以可以问 2 个不同的问题
  • 您是否创建了默认对象?请参阅有关 env vars 的 docker 说明,了解有关 MQ_DEV - 将此设置为 false 以停止创建默认对象。
  • 您是如何检查 SYSTEM.DEFAULT.MODEL.QUEUE 的。这应该存在。该错误表明您缺少对队列的权限,如果它不存在,您将得到 2085 MQRC_UNKNOWN_OBJECT_NAME,除非 2035 与队列 Manger 相关,而不是与队列相关。

标签: java ibm-mq


【解决方案1】:

根据Default developer configurationmqclient 组中的用户(这将是您正在使用的)已被授予访问所有以DEV.** 开头的队列和主题的权限,并且拥有putget、@ 987654326@、subbrowseinq 权限。

您正在尝试使用不以DEV.** 开头的队列,因此您首先需要为mqclient 组中的用户设置适当的权限才能执行此操作。他们还需要dsp 权限才能从模型创建临时队列。

SET AUTHREC GROUP('mqclient') OBJTYPE(QUEUE) PROFILE(SYSTEM.DEFAULT.MODEL.QUEUE)    AUTHADD(GET,PUT,DSP)

【讨论】:

  • 谢谢你的问题
  • @Jib'z - 很高兴听到这解决了您的问题。如果答案是您所需要的,请单击勾选接受它。
猜你喜欢
  • 2010-12-07
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2013-04-08
  • 2018-05-11
  • 1970-01-01
  • 2019-10-01
  • 2010-10-23
相关资源
最近更新 更多