0

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

4

3 回答 3

0

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

一旦你知道了这一点,确定你的问题将是一件简单得多的事情。鉴于您通常从 MQ 获得的良好错误代码,它可能会非常明显:-)

如果您遇到的第一个2009错误是,IBM 有一篇关于您可能想要查看的最常见原因的文章。

于 2012-11-15T08:37:35.300 回答
0

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

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

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

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

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

于 2012-11-15T17:00:00.853 回答
0

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

于 2012-12-14T17:46:07.210 回答