1

我正在使用 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 机器上登录的本地操作系统用户。

问题

1)尽管我已经禁用了CHLAUTH和,但为什么我收到以下错误CONNAUTH

ALTER QMGR CHLAUTH(DISABLED) CONNAUTH(' ')

REFRESH SECURITY TYPE(CONNAUTH)

2)为什么服务器认为pkaramol用户试图访问队列管理器,尽管我mquser在HermesJMS的ClientID和字段中明确提供?user

4

2 回答 2

1

我在 HermesJMS 上找不到太多文档,但是通过一些试验和错误,我发现如果单击发现它不支持User和设置,它总是会将您登录的用户发送到队列管理器,这就是为什么您Password看不到用户mquser。因为您以运行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

我还注意到,一旦您通过 Discover 或手动添加队列填充队列,它将使用您指定的用户。

请注意,使用CHLAUTHCONNAUTH禁用队列管理器将获取呈现的任何用户并使用它。您可以CONNAUTH保持启用状态并指定有效的用户和密码,MQ 将对其进行身份验证。

由于 Discover 不支持 User 设置,另一个选项是MCAUSER在 SVRCONN 频道上设置 a mquser

于 2017-08-29T23:56:32.917 回答
-2

您需要通过setmqaut命令授予 UserId 'pkaramol' 访问队列管理器和队列的权限。

于 2017-08-28T15:56:33.773 回答