IBM MQ 8.0,如何为amqsget提供用户名和密码作为命令行参数

时间:2016-02-26 07:02:01

标签: ibm-mq

从7.5原因升级到IBM MQ 8.0之后,我出现了一个错误 -

在MQ 8.0中,引入了一个新功能,要求MQ管理员使用远程访问来提供用户标识和密码。未提供用户标识和密码或密码不正确时

错误:2035代码:2 队列管理器配置为需要用户ID和密码,但没有提供。

此问题在link中有更好的描述。 有三种情况可供讨论。我的解决方案将落在场景A)MQ示例:为MQ客户端应用程序提供用户和密码

我试图使用程序从MQ读取。有没有办法可以将用户名和密码作为命令行参数的一部分传递,而不是在提示时输入。因为我的程序调用了这个exe。

$ amqsputc qName qMgr

4 个答案:

答案 0 :(得分:4)

IBM提供了一个名为mqccred的客户端通道安全出口来执行此任务。完整文档位于提供的链接中,但通常需要以下内容:

  • 在CCDT文件中指定退出。
  • 通过在ini文件中放置ID和密码来配置出口
  • 对ini文件执行runmqccred命令以模糊密码。
  • 确保已设置ini文件,以便禁用世界和组读取。

请注意,Java / JMS程序可以轻松修改,退出主要用于使用本机C API或在其上编译的程序。

答案 1 :(得分:3)

如果您的客户端无法提供用户名/密码,您可以在MQ 8.0队列管理器中禁用用户名/密码要求:

  1. 启动 MQ Explorer

  2. 转到队列管理器< your_queue_manager> 身份验证信息

  3. 点击" 显示系统对象"右上角的图标

  4. MQ Explorer / Authentication information / Show system objects

    1. SYSTEM.DEFAULT.AUTHINFO.IDPWOS用户ID +密码检查客户端连接→选择可选
    2. MQ SYSTEM.DEFAULT.AUTHINFO.IDPWOS / User ID + Password / Check client connections / Optional

      1. 右键单击您的队列管理器→安全刷新授权服务...
      2. Right-click on queue manager, Security, Refresh Authorization Service

答案 2 :(得分:0)

您是否尝试过使用heredoc提供密码?

amqsputc qName qMgr <<< "passwd"

Send string to stdin

答案 3 :(得分:0)

更新了MQ示例以允许指定用户ID,如果设置,则提示您输入密码: MQ Bitesize Blogging

有些采用新的可选命令行参数[-u User],其他人检查是否存在MQSAMP_USER_ID环境变量。