首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JMS传输v/s MQ传输

JMS传输v/s MQ传输
EN

Stack Overflow用户
提问于 2010-08-02 14:43:55
回答 6查看 23.2K关注 0票数 15

我使用Oracle Service Bus(OSB)作为MOM,目的地URI是一个IBM MQ队列。我只想知道哪一种是首选的交通工具。OSB为同一对象提供了两个适配器,JMS适配器和MQ适配器用于传输。有没有人知道这样做的利弊。提亚

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-08-15 22:13:49

通常,通过本机MQI接口发送消息比使用JMS更快。在现实中,我怀疑你会看到真正的区别,除非你每天发送大量的消息。然而,除了速度之外,还有其他事情需要考虑。例如,如果您不熟悉MQI应用程序,那么学习曲线将比JMS更陡峭。

JMS标头信息在通过MQ发送到另一个JMS目的地时被映射到MQRFH2标头。MQRFH2标头的包含将从您创建的目标对象中移除。如果目的地是JMS端点,则包括标头。

我在下面包含了一个链接,解释了字段是如何映射的:

  1. Mapping JMS messages onto MQI messages.

实际上,除非您每天发送数百万条消息,否则我认为WebsphereMQ上的JMS性能足以满足您的需求。至于请求响应中的线程阻塞,我不认为你需要担心这一点。默认情况下,WebsphereMQ中的应答由单独的线程使用,而不是请求线程。

票数 8
EN

Stack Overflow用户

发布于 2011-11-15 03:11:40

只是想补充一下我发现的对我有用的东西。在创建队列实例时,您必须执行以下操作。

代码语言:javascript
复制
Queue queue = queueSession.createQueue("queue:///" + queueName + "?targetClient=1");
//Send w/o MQRFH2 header (i.e. receiver is not a JMS client but just MQ)

包含"?targetClient=1“使得原始消息在没有报头的情况下被发送。

希望这对某些人有帮助。标记

票数 5
EN

Stack Overflow用户

发布于 2010-08-02 14:54:31

这取决于MQ队列另一端的程序是期望JMS还是“本机”MQ消息。

MQ可以充当JMS消息的本机队列机制或传输机制。不同之处在于,JMS消息在消息缓冲区的开头有一些标准的标头字段,而“本机”mq消息只包含程序发送到缓冲区的数据。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3385576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档