![](/img/trans.png)
[英]Error '2035' ('MQRC_NOT_AUTHORIZED') While Connecting to MQ
[英]Error 2035 ('MQRC_NOT_AUTHORIZED') from HermesJMS to MQ8
我正在使用HermesJms访问MQ8服务器。
后者具有以下配置:
但是,当我尝试通过Hermes提供的相关选项“发现”时,出现2035
,队列管理器错误日志中出现以下消息:
AMQ9557: Queue Manager User ID initialization failed for 'pkaramol'.
EXPLANATION:
The call to initialize the User ID 'pkaramol' failed with CompCode 2 and Reason
2035.
请注意, pkaramol
是我以运行Hermes的linux机器登录的本地OS用户。
问题 :
1)为什么我禁用了CHLAUTH
和CONNAUTH
却得到以下错误:
ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)
2)尽管我在mquser
的ClientID
和user
字段中都明确提供了mquser
,但是为什么服务器试图将pkaramol
视为用户尝试访问队列管理器?
我在HermesJMS上找不到太多文档,但是通过一些试验和错误,我发现如果单击“发现”,它将不接受“ User
和“ Password
设置,它将始终将您登录的用户发送到队列管理器,这是为什么看不到用户mquser
。 因为您以运行队列管理器的服务器上不存在的pkaramol
用户pkaramol
运行它,所以会收到以下错误:
AMQ9557: Queue Manager User ID initialization failed for 'pkaramol'.
我还发现,要执行发现,它会使用模型队列SYSTEM.DEFAULT.MODEL.QUEUE
打开一个临时动态队列,并将PCF消息放入SYSTEM.ADMIN.COMMAND.QUEUE
。 此外,要发现任何队列详细信息,队列上必须至少具有+inq
和+dsp
。
在您的评论中,您声明已将用户pkaramol
添加到服务器,并将其放在mqm
组中。 尽管这是使它起作用的快速方法,但它确实为该用户提供了完全的MQ Admin访问权限。 您可以为实际用户提供以下权限,但仍然能够发现队列管理器上的所有对象。 请更换字group
下面一组你的用户是在服务器上的成员:
setmqaut -m DMSQM -t qmgr -g group +connect +inq +dsp
setmqaut -m DMSQM -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -g group +inq +put +dsp
setmqaut -m DMSQM -n SYSTEM.DEFAULT.MODEL.QUEUE -t queue -g group +get +dsp
setmqaut -m DMSQM -n '**' -t queue -g group +inq +dsp
我还指出,一旦您通过发现或手动添加队列填充了队列,它将使用您指定的用户。
请注意,在禁用CHLAUTH
和CONNAUTH
的情况下,队列管理器将采用任何呈现的用户并使用它。 您可以启用CONNAUTH
并指定有效的用户名和密码,然后MQ会对它进行身份验证。
由于Discover不遵守User设置,因此另一个选项是在mquser
的SVRCONN通道上设置MCAUSER
。
您需要授予UserId'pkaramol'权限,才能通过setmqaut命令访问队列管理器和队列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.