我正在使用MQ8服务器访问HermesJms。
后者具有以下配置:

但是,当我试图通过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.请注意,在运行Hermes的linux机器中,pkaramol是我的本地操作系统用户。
问题
1)尽管我同时禁用了CHLAUTH和CONNAUTH,但为什么会出现以下错误
ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)2)为什么服务器将pkaramol视为试图访问队列管理器的用户,尽管我在ClientID和user字段中显式地提供了HermesJMS?
发布于 2017-08-29 23:56:32
我在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管理访问。您可以向实际用户提供以下权限,并且仍然能够发现队列管理器上的所有对象。请将下面的单词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将对其进行身份验证。
另一个选项,因为发现不符合用户设置,将是设置一个MCAUSER在mquser的SVRCONN通道。
发布于 2017-08-28 15:56:33
您需要授予UserId 'pkaramol‘通过塞考特命令访问队列管理器和队列的权限。
https://stackoverflow.com/questions/45917045
复制相似问题