无法从Queue iBM MQ 7.0获取少量消息

时间:2012-11-15 08:29:54

标签: c# ibm-mq

我正在使用IBM MQ 7.0来获取和发送消息。我无法从一个队列中获取所有消息。我能够得到一些消息,但很少有人无法得到。我的应用程序试图得到5次,我得到错误的原因代码= 2009和完成代码= 2.它发生非常频繁,我不知道为什么它只发生几个消息。如果我再次重新处理这些消息到队列,那么它再次工作。其他队列在同一台服务器上工作正常,只有两个队列发出此错误。提前致谢

3 个答案:

答案 0 :(得分:0)

2009是“连接断开”。您需要在之前查看五个失败的完成代码和原因代码(某些描述的MQGET)

一旦你知道,确定你的问题将是一个更简单的问题。鉴于您通常从MQ获得的错误代码很好,它可能会非常明显: - )

如果您收到的第一个错误是2009,那么IBM就您可能想要查看的最常见原因撰写了一篇文章here

答案 1 :(得分:0)

该修复仅适用于WMQ Client v7.0.1.0。你使用的是那个版本吗?其次,根据APAR,“大于约32000字节的消息”。那么你的消息是否大于32000字节?

2009年的RC通常意味着您的频道名称错误。频道名称区分大小写。例如JAVA.CHL与java.chl不同,也与Java.Chl不同。

如果您通过runmqsc将通道定义为:

define channel(java.chl) CHLTYPE(SVRCONN) TRPTYPE(TCP)

因为你没有在通道名称周围使用引号,所以MQ在定义它时会将通道名称(即JAVA.CHL)大写。因此,最好始终使用MQ大写名称。

答案 2 :(得分:0)

升级到7.0.1.8后我的问题得到解决。