延續訂閱者是一個訊息使用端,其會收到針對某主題所發佈的所有訊息, 包括訂閱者不作用期間所發佈的訊息。
只有在應用程式連接 WebSphere MQ 佇列管理程式或 WebSphere 服務整合匯流排時, 這個主題中的資訊才適用。本資訊不適用於和分配管理系統間的即時連線。
若要為主題建立延續訂閱者, 應用程式可呼叫 Session 物件的「建立延續訂閱者」方法, 並以參數方式指定延續訂閱的識別名稱以及代表該主題的 Destination 物件。應用程式可使用或不使用訊息選取器來建立延續訂閱者, 並且可指定延續訂閱者是否要接收其本身連線所發佈的訊息。
用來建立延續訂閱者的階段作業必須有一個相關聯的用戶端 ID。用戶端 ID 和用以建立階段作業之連線的相關聯用戶端 ID 相同, 且其指定方法是在用來建立連線的 Connection Factory 中設定 XMSC_CLIENT_ID 內容。
延續訂閱的識別名稱在用戶端 ID 中必須是唯一的, 因此,用戶端 ID 是唯一的完整延續訂閱 ID 中的一部分。傳訊伺服器會維護延續訂閱的記錄, 並確保針對該主題所發佈的所有訊息都會留存, 直到經過延續訂閱者的確認或者是到期為止。
即使延續訂閱者關閉,傳訊伺服器仍會繼續維護延續訂閱的記錄。若要重複使用先前所建立的某項延續訂閱, 應用程式必須建立一個延續訂閱者, 且所指定的訂閱名稱以及所用階段作業的用戶端 ID, 皆必須和該延續訂閱的相關聯訂閱名稱與用戶端 ID 相同。在一項特定的延續訂閱中, 一次只能有一個階段作業有一個延續訂閱者。
延續訂閱的範圍是以正在維護訂閱記錄的傳訊伺服器為限。若有兩個分別連接不同傳訊伺服器的應用程式使用了相同的訂閱名稱和用戶端 ID 各建立一個延續訂閱者, 則會建立兩個完全獨立的延續訂閱。
若要刪除延續訂閱,應用程式可呼叫 Session 物件的「取消訂閱」方法, 並以參數方式指定延續訂閱的識別名稱。階段作業的相關聯用戶端 ID 必須和延續訂閱的相關聯用戶端 ID 相同。傳訊伺服器會刪除它所維護的延續訂閱記錄, 且不會傳送任何進一步的訊息給延續訂閱者。
若要變更現有的訂閱,應用程式可在建立延續訂閱者時, 使用相同的訂閱名稱和用戶端 ID,只是換個不同的主題或(與)訊息選取器。變更延續訂閱等同於刪除訂閱並建立新的。
如果應用程式連接佇列管理程式, 則每一個延續訂閱者必須各有一個指定的訂閱者佇列。若要為主題指定訂閱者佇列名稱, 請在代表該主題的 Destination 物件中設定 XMSC_WMQ_DUR_SUBQ 內容。預設訂閱者佇列為 SYSTEM.JMS.D.SUBSCRIBER.QUEUE。
延續訂閱者可共用單一訂閱者佇列,或者, 每一個延續訂閱者可從其專用的訂閱者佇列擷取本身的訊息。如需您應用程式所適用方法的相關資訊, 請參閱 WebSphere MQ 使用 Java。
請注意,您無法變更延續訂閱的訂閱者佇列。如果您需要變更訂閱者佇列,唯一的方法是刪除訂閱再新建一個。
如果應用程式連接服務整合匯流排, 則每一個延續訂閱者必須各有一個指定的延續訂閱起始位置。若要針對使用相同連線的所有延續訂閱者指定延續訂閱起始位置, 請在用來建立連線的 ConnectionFactory 物件中設定 XMSC_WPM_DUR_SUB_HOME 內容。若要為個別的主題指定延續訂閱起始位置, 請在代表該主題的 Destination 物件中設定 XMSC_WPM_DUR_SUB_HOME 內容。連線必須指定一個延續訂閱起始位置, 應用程式才能建立使用該連線的延續訂閱者。任何指定給目的地的值會置換指定給連線的值。