不論目標是由管理員所建立、自動建立或是暫時建立,都會影響目標在叢集中傳播的方式,以及在連線失敗或代理程式失敗時處理目標的方式。下列幾節說明幾種使用狀況,以判斷建立目標的時機和複製目標的方式。其中包括:
下圖顯示在用戶端產生至佇列並使用回覆發送模型時,目標的建立和複製方式。
管理員會建立實體目標 QW。在建立叢集期間,佇列會複製到整個叢集。
產生器 ProdQW 傳送訊息到佇列 QW,並使用回覆發送模型,引導回覆到暫時佇列 TempQ1W。(暫時佇列會在應用程式建立暫時目標並增加用戶時,建立並複製。)
本機代理程式 BrokerW 保留傳送到 QW 的訊息,並將該訊息路由到第一個符合此訊息選取條件的使用中用戶。訊息會傳送到用戶 C1QW (在 BrokerX 上) 或用戶 C2QW (在 BrokerY上),這需視哪個用戶已備妥接收訊息而定。接收訊息的用戶會傳送回覆到目標 TempQ1W。
下圖顯示在產生器將訊息傳送到不存在而需要自動建立的目標時,建立和複製目標的方式。
產生器 ProdAutoQY 會將訊息傳送到目標 AutoQY,但是代理程式上不存在該目標。
代理程式會保留訊息,並建立目標 AutoQY。
自動建立的目標不會自動複製到整個叢集。只有當用戶選擇接收佇列 AutoQY 的訊息時,該用戶的本機代理程式才會建立目標 AutoQY,並傳送訊息到用戶。自動建立的目標會在用戶建立它的位置複製到整個叢集。在此範例中,當用戶 CAutoQY 建立目標時,複製便開始進行。
下圖顯示在用戶端將訊息發佈到管理員建立的主題目標時,在叢集中建立和複製目標的方式。
管理員會建立實體主題目標 TY。管理員建立的目標 TY 會複製到整個代理程式叢集 (在使用目標之前)。
發佈者 PubTY 將訊息傳送到主題 TY。
本機代理程式 BrokerY 保留發佈到 TY 的任何訊息,並將訊息路由到符合此訊息選取條件的所有主題訂閱者。在此範例中,C1TY 和 C2TY 訂閱主題 TY。
表 4–2 說明不同類型的目標如何在叢集中進行複製與刪除。
表 4–2 處理叢集中的目標