IBM Websphere MQ:无法使用2009错误代码连接队列管理器和队列

时间:2017-02-27 04:37:52

标签: java-7 ibm-mq

错误详情如下:(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 你能给我一些解决方案来解决这个问题吗?非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

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堆栈。解决方案是强制JRE仅通过将以下设置添加到Java启动来使用IPv4。

-Djava.net.preferIPv4Stack=true