【问题标题】:IBM Websphere MQ: Failed to connect queue manager and queue with 2009 error codeIBM Websphere MQ:无法连接队列管理器和队列,错误代码为 2009
【发布时间】:2017-02-27 13:16:21
【问题描述】:

错误详情如下:(stacktrace)

Caused by: com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2009'.
        at com.ibm.mq.MQDestination.open(MQDestination.java:310)
        at com.ibm.mq.MQQueue.<init>(MQQueue.java:261)
        at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:2751)
        at com.ibm.mq.MQQueueManager.accessQueue(MQQueueManager.java:2779)
        at com.citi.sh.h2h.service.adapter.H2hMqSendReceiveAdapter.connect(H2hMqSendReceiveAdapter.java:79)
        ... 17 more

Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009
        at com.ibm.mq.jmqi.remote.internal.RemoteHconn.getConnection(RemoteHconn.java:884)
        at com.ibm.mq.jmqi.remote.internal.RemoteHconn.getCmdLevel(RemoteHconn.java:2698)
        at com.ibm.mq.MQDestination.open(MQDestination.java:302)
        ... 21 more

Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2009;AMQ9213: A communications error for 'TCP' occurred. [1=java.net.SocketException[Unrecognized Windows Sockets error: 0: recv failed],4=TCP,5=sockInStream.read]
        at com.ibm.mq.jmqi.remote.internal.RemoteTCPConnection.receive(RemoteTCPConnection.java:1515)
        at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.receiveBuffer(RemoteRcvThread.java:804)
        at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.receiveOneTSH(RemoteRcvThread.java:768)
        at com.ibm.mq.jmqi.remote.internal.RemoteRcvThread.run(RemoteRcvThread.java:158)
        at java.lang.Thread.run(Thread.java:745)

Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:152)
        at java.net.SocketInputStream.read(SocketInputStream.java:122)
        at com.ibm.mq.jmqi.remote.internal.RemoteTCPConnection.receive(RemoteTCPConnection.java:1505)
        ... 4 more

在 windows 2003 服务器中,我的应用程序作为服务运行以连接 MQ 以执行消息。一些进程成功执行,但一些失败。出现上述错误。 我的Java应用程序使用JDK1.7,MQ版本是7.0.1.11 你能给我一些解决这个问题的方法吗?非常感谢您的帮助!

【问题讨论】:

    标签: java-7 ibm-mq


    【解决方案1】:

    IBM MQ v7.0 已于 2015 年 9 月 30 日停止支持。

    我建议您迁移到受支持的 IBM MQ 版本。我将 7.1 排除在下面的列表之外,因为它将于 2017 年 4 月 30 日停止支持。请注意,7.5 将于 2018 年 4 月 30 日停止支持。

    MQ 7.5 client
    MQ 8.0 client
    MQ 9.0 client


    如果您必须继续使用不支持的版本,我确实找到了一些关于您的问题原因的参考资料,即 Windows 服务器同时支持 IPv4 和 IPv6 堆栈。解决方案是通过将以下设置添加到您的 Java 启动来强制 JRE 仅使用 IPv4。

    -Djava.net.preferIPv4Stack=true
    

    【讨论】:

    • 非常感谢您的回复。我会去做测试。你认为这个问题是由Java7引起的吗? JVM 与 MQ 7.0 不匹配。
    • @HW.BL 看起来 7.0.1.11 会支持 Java7,system requirements 表示 7.0.1.6 增加了对 Oracle Java SDK/JRE/JDK 7.0.5 的支持。
    • 我的 JDK 版本是 1.7.0_101(32bit)。这个问题是随机出现的,所以很奇怪。
    • @HW.BL 您的问题是否通过 -Djava.net.preferIPv4Stack=true 设置或升级 MQ 客户端版本解决?
    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    相关资源
    最近更新 更多