嗨,有人知道如何使用IBM MQ创建消息监听器吗?我知道如何使用JMS规范来做到这一点,但是我不确定如何为IBM MQ做到这一点。任何链接或指针,不胜感激。

最佳答案

尽管前面的响应者提到了WMQ Java API,但是WMQ也支持JMS,因此这里有一些资源可以帮助您入门。

看一下这篇文章:IBM WebSphere Developer Technical Journal: Running a standalone Java application on WebSphere MQ V6.0

另外,如果您已经安装了完整的WMQ客户端,而不仅仅是捕获了jar,那么您将安装许多示例代码。缺省情况下,这些文件将位于C:\Program Files\IBM\WebSphere MQ\tools\jms或/opt/mqm/samp中,具体取决于您的平台。

如果需要WMQ客户端安装媒体,请获取它here。请注意,这是WMQ v7客户端,而不是v6客户端。它与v6 QMgr兼容,但是由于v6已于2011年9月停产,因此您应该在v7客户端和v7 QMgr(如果可能)上进行新开发。如果双方都是v7,则可以提供许多功能和性能增强。

如果需要,可以获取产品手册here

最后,请确保在收到JMS异常时打印链接的异常。这不是WMQ,而是JMS。 Sun为JMS异常提供了一个多级数据结构,真正有趣的部分通常处于嵌套级。这没什么大不了的,可以通过以下几行来实现:

try {
  .
  . code that might throw a JMSException
  .
} catch (JMSException je) {
  System.err.println("caught "+je);
  Exception e = je.getLinkedException();
  if (e != null) {
    System.err.println("linked exception: "+e);
  } else {
    System.err.println("No linked exception found.");
  }
}

这有助于确定JMS错误与传输错误之间的差异。例如,JMS安全错误可能是WMQ 2035,或者可能是JSSE配置,或者应用程序可能无法访问文件系统中的某些内容。其中只有一个值得花大量时间在WMQ错误日志中进行挖掘,并且仅通过打印链接的异常,您就可以知道是否是那个异常。

10-07 16:20