IBM MQ默认app用户创建临时队列失败报错2035问题咨询
IBM MQ临时队列创建失败问题解答
核心结论
不需要手动创建SYSTEM.DEFAULT.MODEL.QUEUE,该队列是IBM MQ队列管理器创建时默认生成的系统级模型队列,你核查时看不到是因为app用户默认没有系统对象的查看权限,并非队列不存在。你遇到的报错根因是app用户缺少该模型队列的访问权限,对应错误码2035(MQRC_NOT_AUTHORIZED)也直接指向权限问题。
解决步骤
- 首先切换到MQ管理员身份(docker版默认管理员为
mqm操作系统用户或admin用户),执行以下命令校验权限:dspmqaut -m <你的队列管理器名称> -n SYSTEM.DEFAULT.MODEL.QUEUE -t q -p app
如果返回结果中没有dsp、get、put、inq、crt相关权限,即可确认根因。 - 给
app用户授予模型队列的必要权限,执行命令:setmqaut -m <你的队列管理器名称> -n SYSTEM.DEFAULT.MODEL.QUEUE -t q -p app +dsp +get +put +inq +crt - 额外确认
DEV.APP.SVRCONN通道的MCAUSER配置为app,避免通道映射到其他无权限的用户。
极端情况处理
如果确实确认该模型队列被误删,才需要手动创建,执行命令:define qlocal(SYSTEM.DEFAULT.MODEL.QUEUE) defpsist(no) usage(normal) share
创建时严格使用上述默认参数,避免影响临时队列的生成逻辑。
内容的提问来源于stack exchange,提问作者Jib'z
相关产品推荐
相关产品推荐

