我使用Oracle Service Bus(OSB)作为MOM,目的地URI是一个IBM MQ队列。我只想知道哪一种是首选的交通工具。OSB为同一对象提供了两个适配器,JMS适配器和MQ适配器用于传输。有没有人知道这样做的利弊。提亚
发布于 2010-08-15 22:13:49
通常,通过本机MQI接口发送消息比使用JMS更快。在现实中,我怀疑你会看到真正的区别,除非你每天发送大量的消息。然而,除了速度之外,还有其他事情需要考虑。例如,如果您不熟悉MQI应用程序,那么学习曲线将比JMS更陡峭。
JMS标头信息在通过MQ发送到另一个JMS目的地时被映射到MQRFH2标头。MQRFH2标头的包含将从您创建的目标对象中移除。如果目的地是JMS端点,则包括标头。
我在下面包含了一个链接,解释了字段是如何映射的:
实际上,除非您每天发送数百万条消息,否则我认为WebsphereMQ上的JMS性能足以满足您的需求。至于请求响应中的线程阻塞,我不认为你需要担心这一点。默认情况下,WebsphereMQ中的应答由单独的线程使用,而不是请求线程。
发布于 2011-11-15 03:11:40
只是想补充一下我发现的对我有用的东西。在创建队列实例时,您必须执行以下操作。
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“使得原始消息在没有报头的情况下被发送。
希望这对某些人有帮助。标记
发布于 2010-08-02 14:54:31
这取决于MQ队列另一端的程序是期望JMS还是“本机”MQ消息。
MQ可以充当JMS消息的本机队列机制或传输机制。不同之处在于,JMS消息在消息缓冲区的开头有一些标准的标头字段,而“本机”mq消息只包含程序发送到缓冲区的数据。
https://stackoverflow.com/questions/3385576
复制相似问题