ssl - 使用 7.1 jar 的 WMQ SSL 高可用性 JMS 连接出现错误

标签 ssl jms ibm-mq

我在通过 JMS 使用 7.1 jar 连接到 Websphere MQ 中启用 SSL 的队列时出现以下错误。

代码:

public MQMessageSender(String channelName, String hostName,
                   String portNumber, String queueManagerName, String queueName) {
    // Create a MQQueue Factory Object
    try {
        mqConnectionFact = new MQQueueConnectionFactory();
        mqConnectionFact.setChannel("xxx.SVRCONN");
        mqConnectionFact.setPort(Integer.parseInt("xxxx"));
        mqConnectionFact.setHostName("host1");
        //mqConnectionFact.setConnectionNameList("host2(port2)");           
        mqConnectionFact.setClientReconnectOptions(JMSC.MQCNO_RECONNECT_Q_MGR);
        mqConnectionFact.setQueueManager("XXXXX");
        mqConnectionFact.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
        mqConnectionFact.setSSLCipherSuite("SSL_RSA_WITH_RC4_128_SHA");
        qConnection = mqConnectionFact.createQueueConnection();

        qConnection.start();
        qSession = qConnection.createQueueSession(false,
                              Session.AUTO_ACKNOWLEDGE);

        requestQueue = qSession.createQueue(queueName);
    } catch (Exception exception) {
        exception.printStackTrace();
    }
}

错误:

Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with
compcode '2' ('MQCC_FAILED') reason '2399' ('MQRC_SSL_PEER_NAME_ERROR').
    at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209)
    ... 8 more
Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2399;
AMQ9204: Connection to host 'host1' rejected.
[1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2399;
AMQ9640: SSL invalid peer name, channel '?', attribute 'OID.2.5.4.17 (x2)'.
[5=OID.2.5.4.17 (x2)]],3=host1(port1),5=RemotePeerName.setValue]

最佳答案

reason '2399' ('MQRC_SSL_PEER_NAME_ERROR') 正在报告错误。参见 2399 (095F) (RC2399): MQRC_SSL_PEER_NAME_ERROR .此外,您还收到以下错误消息:

AMQ9640: SSL invalid peer name, channel '?', attribute 'OID.2.5.4.17 (x2)'.
[5=OID.2.5.4.17 (x2)]],3=host1(port1),5=RemotePeerName.setValue]

它告诉您 peerName 的哪一部分未被识别。它说,OID.2.5.4.17 是邮政编码。

一个简短的 Internet 搜索揭示了这个问题的 APAR,IC83494: WMQ V7.1: JMS CLIENT CONNECTION VIA SSL ENABLED CHANNEL FAILS WITH RC 2399 MQRC_SSL_PEER_NAME_ERROR.

此 APAR 包含在 V7.1 FixPac 3 中。

关于ssl - 使用 7.1 jar 的 WMQ SSL 高可用性 JMS 连接出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168424/

相关文章:

.net - 将wsHttpBinding SSL传输安全性与消息安全性结合使用有什么好处?

java - 在 springs 中使用 JMS 的客户端可以从不使用 springs 实现 JMS 的服务器接收消息吗?

java - 如何设计MQ Server?

http - HTTP header 是否区分空格/大小写/顺序?

java - 与Tomcat 7相互认证

authentication - 如何在 C 客户端中使用 MQCSP 中的 userId 进行 IBM MQ 连接身份验证

java - 使用 JAX-RPC 时如何将错误请求放入死信队列?

c# - IBMMQDotnet 客户端重试机制

ios - 带 SSL 固定的 AFHTTPRequestOperation 不起作用

java - 从 Wildfly 连接到 TibcoJMS 服务器