首页 > 解决方案 > AMQ9641:通道 IBM WebSphere MQ 客户端 8.0.0.9 的远程 CipherSpec 错误

问题描述

我正在从(仅命令行而不是 Web 客户端)Webspere MQ 客户端 v 8.0.0.9 运行以下命令,但我无法连接 MQ 服务器

/opt/mqm/samp/bin/amqsgetc Q-name Q-manager

我正在出口

export MQCHLTAB=xxx.TAB                   ---------xxx.TAB under /var/mqm
export MQCHLLIB=/var/mqm
export MQSSLKEYR=/var/mqm/ssl/cms/cert     -------- cert.kdb under cms dir using
export MQSERVER=channel-name/TCP/'xx.xx.xx.xx(xxx)'

我得到的错误是

07/04/2018 09:22:20 AM - Process(6024.1) User(username) Program(amqsgetc)
                    Host(hostname) Installation(Installation1)
                    VRMF(8.0.0.9) QMgr(.)

AMQ9641: Remote CipherSpec error for channel 'ch-name' to host
'MQ-server-ip(port)'.

EXPLANATION:
The remote end of channel 'ch-name' on host 'MQ-server-ip(port)' has had
a CipherSpec error. The channel did not start.
ACTION:
Review the error logs on the remote system to discover the problem with the
CipherSpec.
----- cmqxrfpt.c : 573 --------------------------------------------------------

标签: ibm-mq

解决方案


简短的回答是删除MQSERVER环境变量。有关更多详细信息和参考,请阅读下文。


如果您指定MQSERVER环境变量,MQ 将只使用此信息并忽略 CCDT 环境变量(MQCHLLIBMQCHLTAB)。

这在 IBM MQ 知识中心页面配置 > 配置服务器和客户端之间的连接 > 使用 IBM MQ 环境变量 > MQSERVER > 使用 MQSERVER中引用。

如果您使用 MQSERVER 环境变量来定义 IBM® MQ MQI 客户端机器和服务器机器之间的通道,那么这是您的应用程序可用的唯一通道,并且不会引用客户端通道定义表 (CCDT)。


有关 MQ 应用程序如何确定连接详细信息的更多信息,请参阅 IBM MQ 知识中心页面开发应用程序 > 使用 IBM MQ 开发 MQI 应用程序 > 编写客户端过程应用程序 > 在 IBM MQ MQI 客户端环境中运行应用程序 > 连接 IBM MQ MQI 客户端应用程序到队列管理器

当在 IBM MQ 客户端环境中运行的应用程序发出 MQCONN 或 MQCONNX 调用时,客户端会确定如何建立连接。当 IBM MQ 客户端上的应用程序发出 MQCONNX 调用时,MQI 客户端库按以下顺序搜索客户端通道信息:

  1. 使用 MQCNO 结构的 ClientConnOffset 或 ClientConnPtr 字段的内容(如果提供)。这些字段标识要用作客户端连接通道定义的通道定义结构 (MQCD)。可以使用预连接出口覆盖连接详细信息。有关更多信息,请参阅使用存储库的预连接出口引用连接定义。
  2. 如果设置了 MQSERVER 环境变量,则使用它定义的通道。
  3. 如果定义了 mqclient.ini 文件并包含 ServerConnectionParms,则使用它定义的通道。有关更多信息,请参阅使用配置文件配置客户端和客户端配置文件的 CHANNELS 节。
  4. 如果设置了 MQCHLLIB 和 MQCHLTAB 环境变量,则使用它们指向的客户端通道定义表。
  5. 如果定义了 mqclient.ini 文件并包含 ChannelDefinitionDirectory 和 ChannelDefinitionFile 属性,则这些属性用于定位客户端通道定义表。有关更多信息,请参阅使用配置文件配置客户端和客户端配置文件的 CHANNELS 节。
  6. 最后,如果未设置环境变量,客户端将使用从 mqs.ini 文件中的 DefaultPrefix 建立的路径和名称搜索客户端通道定义表。如果搜索客户端定义表失败,客户端将使用以下路径:

    • UNIX 和 Linux 系统:/var/mqm/AMQCLCHL.TAB
    • Windows:C:\Program Files\IBM\WebSphere MQ\amqclchl.tab
    • IBM i:/QIBM/UserData/mqm/@ipcc
    • IBM MQ 设备:_AMQCLCHL.TAB。它们出现在 mqbackup:// URI 下。

您不能使用MQSERVER环境变量指定 Cipherspec。这在 IBM MQ 知识中心页面配置 > 配置服务器和客户端之间的连接 > 使用 IBM MQ 环境变量 > MQSERVER中引用

MQSERVER 环境变量用于定义最小通道。MQSERVER 指定 IBM® MQ 服务器的位置和要使用的通信方法。

您不能使用 MQSERVER 定义 SSL 通道或具有通道出口的通道。有关如何定义 SSL 通道的详细信息,请参阅使用 SSL 保护通道。


推荐阅读