Sun Java System Message Queue 3.7 UR1 技術摘要

請求回覆式樣

您可以將產生器與用戶結合在同一條連線中 (使用統一 API 時,甚至可結合在同一個階段作業中)。此外,JMS API 可讓您使用暫時目標,對您的訊息傳送作業實作請求回覆式樣。

若要設定請求回覆式樣,必須執行下列動作:

  1. 建立可供用戶傳送回覆的暫時目標。

  2. 在要傳送的訊息中,將訊息標頭的 JMSReplyTo 欄位設為該暫時目標。

當訊息用戶處理訊息時,會檢查訊息的 JMSReplyTo 欄位,以決定是否需要回覆,並將回覆傳送到指定的目標。

請求回覆機制讓產生器不需要設置回覆目標的受管理物件,而且讓用戶容易回應請求。當產生器在處理之前必須確定請求是否已處理時,此式樣非常有用。

圖 2–6 說明請求回覆式樣將訊息傳送到主題,並從暫時佇列中接收回覆。

圖 2–6 請求/回覆式樣

發佈者透過主題目標將訊息傳送給兩位訂閱者,並透過佇列接收回覆。下圖以文字進行說明。

如圖所示,MyTopicPublisher 會產生 Msg1,並傳送到目標 MyTopic 上。MyTopicSubsriber1MyTopicSubscriber2 會在收到訊息後,傳送回覆到 MyTempQueue,而 MyTQReceiver 則會由此處擷取回覆。應用程式如須發佈報價資訊給大量用戶端,且將其 (回覆) 訂單排入佇列依序處理,則此式樣會非常有用。

暫時目標的存在情況取決於建立它們的連線。任何產生器都可以對暫時目標進行傳送,但只有透過建立目標之相同連線建立的用戶,才可以存取暫時目標。

由於請求回覆式樣取決於暫時目標的建立,因此不應在下列情況下使用此式樣: