2017-02-27 114 views
1

错误详细连接如下:(堆栈跟踪)的IBM WebSphere MQ:未能队列管理器和队列与2009年的错误代码

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 你能给我一些解决方案来解决这个问题吗?非常感谢您的帮助!

回答

0

IBM MQ V7.0出去的支持9月30日2015年

我建议你移动到IBM MQ的支持的版本。我要离开7.1下文,因为它会走出去的支持,4月30日2017年需要注意的是7.5将走出去的支持,4月30日2018年

MQ 7.5 client
MQ 8.0 client
MQ 9.0 client


名单

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

-Djava.net.preferIPv4Stack=true 
+0

非常感谢您的回复。我会做测试。你认为这个问题是由Java7引起的吗? JVM与MQ 7.0不匹配。 –

+0

@ HW.BL看起来像7.0.1.11会支持Java7,[系统需求](http://www-01.ibm.com/support/docview.wss?uid=swg27011920)指出添加了7.0.1.6支持Oracle Java SDK/JRE/JDK 7.0.5。 – JoshMc

+0

我的JDK版本是1.7.0_101(32位)。这个问题随机出现,所以很奇怪。 –