2016-02-26 1871 views
5

我已经从7.5理由是升级到IBM MQ 8.0后错误弹出 -IBM MQ 8.0,如何提供用户名和密码amqsget作为命令行参数

在MQ 8.0,新功能介绍要求使用远程访问的MQ管理员提供用户标识和密码。未提供用户标识和密码或密码不正确

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

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

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

$ amqsputc qName qMgr 
+0

如果修改示例应用程序是您的一个选项,请修改示例以从命令行接受用户标识和密码:示例:amqsputc qName qMgr userId password。 – Shashi

+0

版本8.0中的amqsput或amqsget不支持该功能 –

+0

没有得到您,什么在v8.0中不受支持? – Shashi

回答

4

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

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

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

0

你有没有试过用heredoc提供密码,像这样?

amqsputc qName qMgr <<< "passwd" 

Send string to stdin

+0

我试过了。这没有用。我收到一个错误:“此时出乎意料。 –

2

如果您的客户端(还)没有提供用户名/密码,您可以在MQ 8禁用用户名/密码的要求。0队列管理器:

  1. 开始MQ资源管理器

  2. 转到队列管理器<your_queue_manager>认证信息

  3. 点击“显示系统Ø bjects “图标在右上方

MQ Explorer/Authentication information/Show system objects

  • SYSTEM.DEFAULT.AUTHINFO.IDPWOS用户ID +口令检查客户端连接 →选择可选
  • MQ SYSTEM.DEFAULT.AUTHINFO.IDPWOS/User ID + Password/Check client connections/Optional

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

    0

    的MQ样品进行了更新允许指定用户ID,如果设置,则提示您输入密码: MQ Bitesize Blogging

    有些需要一个新的可选命令行参数[-u User],另一些则检查是否存在MQSAMP_USER_ID环境变量。

    相关问题