java - com.ibm.mq.MQQueue 与 com.ibm.mq.jms.MQQueue?

标签 java ibm-mq

我正在尝试将原始 MQSTR 消息放入 WebSphere MQ 队列。根据this ,我能做到:

((com.ibm.mq.jms.MQQueue) queue).setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);

表明它是一个非JMS队列。 (我知道 JMSC.MQJMS_CLIENT_NONJMS_MQ 已被弃用 - 这与这个问题无关。)但是,我一直在使用 com.ibm.mq.MQQueue 而不是 com.ibm.mq.jms.MQQueue。从前者到后者的转换不起作用。此外,只有 com.ibm.mq.jms.MQQueue 具有 setTargetClient 方法。

为什么有两个 MQQueue 类,我应该使用哪一个?我想使用主机名、 channel 名称和队列管理器名称(不是 JNDI)在 Java 程序中从外部连接到 z/OS 队列。

最佳答案

嗯。我不想给出“RTM”答案,但这确实是答案。有 2 个 JAVA MQ API:1 个用于“Java 的 MQ 类”,1 个用于“JMS 的 MQ 类”。

注意:“MQ 类用于 JMS”会将 JMS header (又名 MQRFH2)放在消息上,而“MQ 类用于 Java”则不会。

因此,如果您正在编写常规 Java/MQ 应用程序,则不要使用“用于 JMS 的 MQ 类”,只需使用“用于 Java 的 MQ 类”即可。

关于java - com.ibm.mq.MQQueue 与 com.ibm.mq.jms.MQQueue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033864/

相关文章:

java - Spring ACL 使用 JPA,但 ACL 实现是 JDBC。两种方式

java - 为什么 ExceptionHandlerExceptionResolver 会进行重定向而不是简单的响应?

java - Apache POI 未正确格式化单元格

c++ - 使用 C++ API 将 mq 客户端连接到具有加密 channel 的 mq 服务器

java - PERSISTENT 消息的性能比 NON_PERSISTENT 消息慢得多

python-2.7 - libmqic_r.so : cannot open shared object file: No such file or directory, python

包含在网页中的 Java 报告库

Java 游戏碰撞检测,(侧面碰撞)与矩形

java - spring中如何过滤jms消息

transactions - 具有多个消费者但只有一个事件的 MQ 队列