【问题标题】:Can create Websphere Queue Manager but not connect可以创建 Websphere 队列管理器但无法连接
【发布时间】:2012-02-25 01:01:41
【问题描述】:

我需要为 WebSphere MQ 队列编写一个 .Net 连接器,因此我在我的 Windows 7 机器上安装了 IBM WebSphere MQ 的试用版。我最初在 MQ Explorer 中设置了一些虚拟队列以使用设置过程,并且我能够连接到这些队列管理器并创建队列。我删除了那些虚拟队列并按照第一组指令from Lesson 1.1 from IBM here 从命令行创建了一些队列

由于安全问题,to run Lesson 1.2 失败,我现在无法连接到 MQ Explorer 中的任何队列管理器。当我尝试连接时,我收到错误消息

An unexpected error (2063) has occurred. (AMQ4999)
  • 我是我机器上的本地管理员。
  • 我已将自己添加到创建的 mqm 组中
  • 我运行 MQ Explorer 时有无“以管理员身份运行”选项
  • 我已经卸载了 MQ 并重新安装了它
  • 我已经重启了好几次了

我还注意到,当我在 MQ Explorer 中创建队列管理器时,最后一部分失败并显示 AMQ8135: Not authorized.(请参阅下面的输出)

我有什么明显的遗漏吗?

有什么方法可以让我自己找出问题所在 - 日志文件似乎没有让我知道在哪里查看


****************************************
* Command: "C:\Program Files (x86)\IBM\WebSphere MQ\bin\crtmqm"  -sa  QM1
****************************************
There are 90 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager created.
Directory 'C:\Program Files (x86)\IBM\WebSphere MQ\qmgrs\QM1' created.
The queue manager is associated with installation 'Installation2'.
Creating or replacing default objects for queue manager 'QM1'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
exitvalue = 0
****************************************
* Command: "C:\Program Files (x86)\IBM\WebSphere MQ\bin\strmqm" QM1
****************************************
There are 90 days left in the trial period for this copy of WebSphere MQ.
WebSphere MQ queue manager 'QM1' starting.
The queue manager is associated with installation 'Installation2'.
5 log records accessed on queue manager 'QM1' during the log replay phase.
Log replay for queue manager 'QM1' complete.
Transaction manager state recovered for queue manager 'QM1'.
WebSphere MQ queue manager 'QM1' started using V7.1.0.0.
exitvalue = 0
****************************************
* Command: "C:\Program Files (x86)\IBM\WebSphere MQ\bin\runmqsc" QM1
* Input: DEFINE LISTENER('LISTENER.TCP') TRPTYPE(TCP) PORT(1414) CONTROL(QMGR)
****************************************
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QM1.
AMQ8135: Not authorized.
No MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
exitvalue = 20

【问题讨论】:

    标签: ibm-mq


    【解决方案1】:

    如果您有最近的 WMQ 试用版,那么您正在使用 v7.1 QMgr。从 v7.1 开始,WMQ 将只允许非特权远程连接。为了与管理员帐户连接,有必要禁用限制,或者更好的是,为管理连接定义一个新通道并对其进行身份验证。

    对于 Windows,最大的问题是 WMQ 对域 ID 进行身份验证并且必须查找它们的组。在企业环境中运行 WMQ 时,一个非常常见的问题是它试图查找 ID 或组,但没有域权限。 域帐户,即使是具有本地管理员权限的帐户,也经常失败,因为他们无权在域 SAM 中进行查询以进行组查找。 Infocenter here 中有一个完整的部分描述了 Windows 帐户的要求。

    仅适用于开发环境的一种解决方法是创建本地管理员帐户,然后使用该帐户登录并创建 QMgr。或者确保默认帐户MUSR_MQADMIN 具有本地管理员权限和登录权限。同样,您必须使用该帐户实际登录才能使这项工作正常进行,因为这样就不需要在 Active Directory 中查找帐户,因为它都会访问本地 SAM 数据库。同样,这只是为了开发!在生产环境中,您希望使用真实的域帐户并授予其正确的访问权限以进行 SAM 查找,但不能使其成为本地管理员,如上面链接的信息中心部分所述。

    假设您已成功创建 QMgr,接下来创建一个新频道并授权它使用管理员帐户接受您的本地连接:

    runmqsc
    * Define the channel, anyone connecting runs as MUSR_MQADMIN
    DEFINE CHL('DOTNET.SVRCONN')  CHLTYPE(SVRCONN) MCAUSER('MUSR_MQADMIN@hostname')
    
    * Override default block-list - channel now allows ANYBODY
    SET CHLAUTH('DOTNET.SVRCONN') TYPE(BLOCKUSER) USERLIST('nobody')
    
    * Block access from ALL IP addresses
    SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('*') USERSRC(NOACCESS) WARN(NO) ACTION(ADD)
    
    * Allow access from local host only
    SET CHLAUTH('DOTNET.SVRCONN') TYPE(ADDRESSMAP) ADDRESS('127.0.0.1') USERSRC(CHANNEL) ACTION(ADD) 
    
    END
    

    现在您有了一个只接受本地连接的通道,将它们映射到管理帐户,然后覆盖阻止管理帐户远程连接的安全性。使用管理员帐户意味着不需要队列或 QMgr 授权,并且作为本地管理员的帐户意味着没有域查找问题。 MCAUSER('MUSR_MQADMIN) 将每个远程 ID 转换为本地管理员 ID,以便 WMQ 不需要查找远程 ID。映射规则仅限制与本地主机的连接。任何可以连接到频道的人都将拥有本地管理员,可以远程执行操作系统代码,因此如果您想接受来自其他用户的连接,建议使用证书对其进行身份验证。

    【讨论】:

    • 谢谢 T.Rob - 这是作为非域用户运行服务的问题。
    【解决方案2】:

    发生意外错误 (2063)。 (AMQ4999)

    上述错误也可能是权限问题,请检查组权限并添加用户

    【讨论】:

    • 2063由于权限问题不会出现,2035会因为这个原因出现。
    【解决方案3】:

    我遇到了类似的问题。我的办公室 dektop 正在运行 windows xp 32 位,我的项目要求我在本地安装 Websphere MQ 7 (WMQ)。 在我的 PC 上拥有本地管理员权限,我能够在没有域控制器选项配置的情况下安装 WMQ 并添加 quemanager,但无法添加任何本地队列。 检查错误日志后,我发现我的用户 id 没有足够的权限。

    因此解决方法是 - 验证您的登录 ID 是否属于您域中的管理员组。 转到控制-> 用户帐户以检查您的用户 ID。 如果您在您的电脑上有本地管理员权限,那么您可以将您的用户 ID 添加为管理员组的一部分。 现在删除之前创建的队列管理器。 重新启动 WMQ 并再次创建队列管理器。 您现在应该在新创建的队列管理器下看到用于添加本地队列、主题等的所有选项。

    【讨论】:

      【解决方案4】:

      您可能想阅读 T.Rob here 的这篇文章。他还有其他与安全相关的帖子,它们非常有帮助。

      【讨论】:

        猜你喜欢
        • 2018-12-17
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 2018-06-28
        • 2021-01-15
        • 1970-01-01
        • 2014-08-08
        相关资源
        最近更新 更多