使用WebSphere MQ类而不是JMS有什么好处?

时间:2015-10-08 06:13:59

标签: java jms message-queue ibm-mq

我需要为IBM MQ编写简单的Java客户端。使用WebSphere MQ classes for Java(com.ibm.mq.jar)而不是使用JMS的WebSphere MQ类(jms.jar)在Java中编写MQ客户端有什么好处?

1 个答案:

答案 0 :(得分:6)

IBM KnowledgeCenter上有a short article。没有直接的“一个比另一个好”的答案。 2之间的主要区别是它们提供的API。有一个合理的论据,你应该根据你最熟悉的API选择使用哪一个。

JMS客户端的MQ类实现了JMS 1.1 specification和(对于8.0或更高版本)JMS 2.0规范。在大多数情况下,这意味着您可以遵循有关如何编写优秀JMS应用程序的非IBM文档。 Web上有很多关于JMS的文档,因此您可以从其他JMS用户的广泛支持中受益。

Java客户端的MQ类是专有的IBM API,用于编写使用IBM MQ的消息传递应用程序。它提供面向对象的过程MQ API for C,并允许您访问IBM MQ中可用的所有消息传递功能。使用Java类编写应用程序会使您更加了解MQ细节。例如,要打开一个用于向其发送消息的队列,请指定CMQC.MQOO_OUTPUT选项,这是MQ开发人员熟悉的,但JMS开发人员不会这样做。如果您打算了解MQ以及编写快速示例应用程序,那么Java类可能更适合于此。

此外,由于JMS类实现了开放标准,因此它们不适合配置或使用MQ的所有专有功能或配置选项。可以在JMS类上设置特定于MQ的行为,它不像Java的MQ类那样适合。

如果你想要的只是一个快速样本客户端,MQ会为两种应用程序提供样本:

  • 对于JMS的MQ类,[mq-install-root] / samp / jms / samples中有样本(on Unix)或[mq-install-root] / Tools / jms / samples(在Windows上)。
  • 对于Java的MQ类,样本在 [mq-install-root] / samp / wmqjava / samples(在Unix上)或 [MQ-安装根] /工具/ wmqjava /样品