Ibm mq IBM Cast Iron:MQ Put活动问题

Ibm mq IBM Cast Iron:MQ Put活动问题,ibm-mq,cast-iron,Ibm Mq,Cast Iron,我试图将一条消息从部署在Cast Iron Live上的编排放入Websphere MQ队列。自从管弦乐团部署在铸铁上以来,我一直使用安全连接器。当我尝试执行该流时,它失败,消息未放置在MQ队列中。以下是错误: Error while trying to call remote operation execute on Secure Connector for activity com.approuter.module.mq.activity.MqPut and Secure Connector

我试图将一条消息从部署在Cast Iron Live上的编排放入Websphere MQ队列。自从管弦乐团部署在铸铁上以来,我一直使用安全连接器。当我尝试执行该流时,它失败,消息未放置在MQ队列中。以下是错误:

Error while trying to call remote operation execute on Secure Connector for activity
com.approuter.module.mq.activity.MqPut and Secure Connector LocalSecureConnector, 
error is Unable to put message on queue null. MQ returned error code 2538.

Unable to put message on queue null. MQ returned error code 2538.
Fault Name : Mq.Put.OperationActivityId : 163
Message: Unable to put message on queue null. MQ returned error code 2538.
Activity Name:Put MessageFault Time: 2015-07-15T05:40:29.711Z
有人能帮我解决这个问题吗。如果需要进一步的细节,请告诉我

详情如下:

  • 铸铁流部署在铸铁云上,即铸铁带电
  • MQ正在本地运行
  • 我尝试连接的端口是1414
  • 在安装MQ的计算机上运行安全连接器
  • MQ版本为8
  • 在Cast Iron flow中,我使用一个MQ连接器,方法是将运行MQ的主机名、端口号:1414、通道名:SYSTEM.DEF.SVRCONN和用户名指定为mqm。厌倦使用我的登录用户名,将其添加到mqm组。但这似乎也起了作用

  • 返回代码具有指导意义:

    2538  0x000009ea  MQRC_HOST_NOT_AVAILABLE
    
    这表示Cast Iron正试图使用客户端连接联系MQ,但在其使用的主机/端口上找不到侦听器

    这里有几个可能性,但没有足够的信息来说明可能是哪一个。我将解释并提供一些您可以尝试的诊断

  • 2538表示尝试联系QMgr失败。例如,这可能是因为QMgr未在配置的端口(1414)上侦听,或者MQ侦听器未运行
  • 错误代码表示队列名称为“null”。这个问题没有指定连接器配置的队列名称,但可能它配置了一些队列名称。此错误代码表明MQ服务器端的安全连接器未安装其配置
  • Cast Iron文档建议使用
    mqm
    组中的ID进行连接,但未提及在任何MQ版本7.1或更高版本上,这保证会失败,除非制定了允许管理员连接的特殊规定。这可能是由于授权错误和连接器未报告正确错误而导致的实际故障
  • 如果它像侦听器不运行一样简单,那么修复起来就足够容易了。只要启动它,并确保它在1414年的预期

    接下来,确保安全连接器具有使用Cast Iron管理面板创建的配置。您需要理解为什么错误代码显示队列名称为空

    现在在QMgr中启用授权事件和通道事件,并尝试再次连接。MQ服务器上的连接器应在启动时连接,如果成功,您可以通过查看MQ通道状态来查看这一点。但是,如果失败,您可以通过查看事件消息或MQ错误日志来判断。如果连接已经成功,这两项都将显示授权失败和连接尝试

    我预期2035授权错误失败的原因是v7.1及以上版本的任何QMgr默认情况下都允许在任何通道上进行管理连接。这是在默认的
    CHLAUTH
    规则集中配置的。其目的是MQ管理员必须通过添加一个或多个新的
    CHLAUTH
    规则来显式地提供管理员访问权限

    出于安全考虑,
    SYSTEM.DEF.*
    SYSTEM.AUTO.*
    频道不得用于合法连接。最佳做法是定义一个新的
    SVRCONN
    ,例如一个名为
    CAST.IRON.SVRCONN
    ,然后定义一个CHLAUTH规则以允许管理连接

    例如:

    DEFINE CHL(CAST.IRON.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) REPLACE
    SET CHLAUTH('CAST.IRON.SVRCONN') TYPE(ADDRESSMAP) +
        ADDRESS('127.0.0.1') +
        USERSRC(MAP) MCAUSER('mqm') +
        ACTION(REPLACE) 
    SET CHLAUTH('CAST.IRON.SVRCONN') TYPE(BLOCKUSER) +
        USERLIST('*NOBODY') +
        WARN(NO) ACTION(REPLACE)
    
    第一条语句定义了新通道

    下一个允许从安全连接器所在的
    127.0.0.1
    进行连接。(假设您将内部安全连接安装在与MQ相同的服务器上,是吗?)理想情况下,连接器将在通道上使用TLS,而不是IP过滤
    CHLAUTH
    规则将基于证书可分辨名称进行过滤。此规则几乎没有那么活跃,允许本地主机上的任何人通过使用此通道成为MQ管理员


    最后一条语句用一条新规则覆盖阻止
    *NOBODY
    的默认
    CHLAUTH
    规则,该规则阻止
    *MQADMIN
    ,但仅限于该频道。

    嗨,Rob,感谢您的回复。我对我的问题进行了编辑,提供了进一步的细节。希望这能有所帮助。我正在寻找一些关于这方面的提示。仍然没有足够的信息用于诊断,但我已经提供了收集这些信息的步骤和一些其他诊断注意事项。希望有帮助。这很有帮助,但我们需要更多。例如,“在安装MQ的机器上运行安全连接器”是什么意思?这不是MQ术语。这是一个铁铸的术语吗?此外,“我尝试连接的端口是1414”也很有用,但没有提到是否定义了MQ侦听器并在该端口上运行。此外,如果Cast Iron部署在非本地云中,而MQ位于本地,您是否知道有一条通过防火墙到达MQ的路径?MQ将在其日志文件中记录连接尝试并作为事件消息。如果登录名是问题所在,您将在QMgr上看到2035个错误。2538表明它并没有走那么远。但是,如果您真的做到了这一点,v8 QMgr在默认情况下将不允许在任何SVRCONN通道上进行管理员连接。您必须禁用CHLAUTH或定义一个或两个新的CHLAUTH rukle才能获取mqm ID或mqm组中的任何内容以进行连接。同样,问题中没有足够的信息来说明这是否是一个问题。谢谢你的回复。安全连接器是一个铸铁术语。它是一个在运行MQ的机器上运行的连接器,在Cast Iron控制台中设置了相同的配置(非常类似于单向SSL握手)。用于铸铁云在预制件上进行通信