Sun Java System Message Queue 3.7 UR1 技术概述

请求-回复模式

可以在一个连接中同时包含生成方和使用方(在使用统一 API 时甚至可包含会话)。此外,JMS API 允许使用临时目的地来实现消息传送操作的请求-回复模式。

要设置请求-回复模式,需要执行以下操作:

  1. 创建使用方可发送回复的临时目的地。

  2. 在要发送的消息中,将消息头的 JMSReplyTo 字段设置为该临时目的地。

消息使用方处理消息时,将检查消息的 JMSReplyTo 字段以决定是否需要回复,并将该回复发送到指定目的地。

请求-回复机制为生成方免去了设置回复目的地的受管理对象的麻烦,同时让使用方可以轻松地响应请求。当生成方只有在确保请求已处理后才能继续时,此模式非常有用。

图 2–6 说明了请求-回复模式,即向主题中发送消息并接收临时队列中的回复。

图 2–6 请求-回复模式

发布者通过一个主题目的地向两个订户发送消息、通过一个队列目的地接收回复。该图用文本进行说明。

如图所示,MyTopicPublisher 生成 Msg1 并将它发送到目的地 MyTopicMyTopicSubsriber1 MyTopicSubscriber2 接收该消息并向 MyTempQueue 发送回复,MyTQReceiverMyTempQueue 中检索该回复。该模式可能适用于向大量客户端发布定价信息,并将客户端的回复订单排队以便按顺序进行处理的应用程序。

临时目的地的存在时间只能与创建它们的连接的存在时间一样长。任何生成方都可以向临时目的地发送消息,但只有创建目的地的连接所创建的那些使用方能够访问临时目的地。

由于请求/回复取决于临时目的地的创建,因此在下列情况中不应使用此模式: