伙计我正在尝试从WAS Liberty应用程序连接到MQ Hub。我们的MQ Hub仅支持SSL证书身份验证。我创建了QCF,带有JKS文件的密钥库,里面有证书。然后我创建了defaultSSLConfig并指向该密钥库。
但是无论如何我都找不到在QCF中指定SSLConfig并在某些页面上读取它是不可能的。唯一的方法是使用defaultSSLConfig并从那里指定密钥库。所以现在我在这里,MQ连接不起作用。在MQ Hub日志中,我看到错误说“通道缺少用于SSL握手的证书。”
这就是我的QCF的样子,没有指定SSL配置的参数
<jmsConnectionFactory connectionManagerRef="ConMgr" jndiName="jms/wmqCF">
<properties.wmqJms channel="TEST_CHANNEL" hostName="REMOVED" port="1415" queueManager="ALQ.TEST" transportType="CLIENT" sslCipherSuite="SSL_RSA_WITH_AES_128_CBC_SHA"/>
</jmsConnectionFactory>
MQ端的完全错误
说明:
该通道缺少用于SSL握手的证书。该
通道
名字是'XXX.ADM.SVRCONN'(如果'????'在这个阶段是不知道的 SSL
处理)。远程主机为“XXX(10.xx.xx.x)”。
频道没有开始。
ACTION:
确保在中间正确配置了相应的证书 关键
通道两端的存储库。----- amqccisa.c:7355
02/14/17 15:07:44 - 流程(7510.304808)用户(mqm)程序(amqrmppa)
主机(xxx)安装(安装1)
VRMF(7.5.0.6)QMgr(XXXXX)AMQ9999:频道'XXX.ADM.SVRCONN'以托管'xxx(10.xx.xx.xx)'结束 异常。
说明:
通道程序在进程ID 7510下运行,用于通道'XX.ADM。 SVRCONN“
异常结束。主机名是'xx(10.xx.xx.xx)';在一些中 案件 主机名无法确定,因此显示为“????”。ACTION:
查看错误的通道程序的先前错误消息
记录到 确定失败的原因。请注意,此消息可以是
排除
完全或通过调整“ExcludeMessage”或
来抑制 “SuppressMessage”
qm.ini中“QMErrorLog”节下的属性。更多的信息 可以是 在“系统管理指南”中找到。
答案 0 :(得分:1)
现在正在运作:)我们认为问题的原因是这个错误http://www-01.ibm.com/support/docview.wss?uid=swg1IT16056
虽然上面的APAR中的错误与我得到的不一样。我在Liberty(客户端)上看到了这个错误
引起:com.ibm.mq.MQException:JMSCMQ0001:IBM MQ调用失败,带有
compcode'2'('MQCC_FAILED')原因'2059'('MQRC_Q_MGR_NOT_AVAILABLE')。
在com.ibm.msg.client.wmq.common.internal.Reason.createException(原因。
java:203)
当问题出现时,我正在使用此资源适配器:9.0.1.0-IBM-MQ-Java-InstallRA.jar 然后我们决定尝试使用APAR / fix的适配器的较低版本,从而使用这个版本:8.0.0.6-WS-MQ-Java-InstallRA.jar
因此解决了这个问题。
我很确定上面的错误修复程序包含在资源适配器的Ver 9.X中,但事实证明并非如此。
答案 1 :(得分:1)
我与IBM核对过并确认APAR IT16056未包含在9.0.1.0 CD版本中。他们正在努力纠正APAR以显示修复的正确目标版本。
来自IBM支持的报价如下。
我可以确认有问题的APAR,&#34; IT16056&#34;不包括在内 9.0.1.0 CD版本,目前有针对性地包含在内 9.0.2.0 CD版本。
基于此,如果您希望使用高于8.0的RA版本,则需要执行以下操作之一: