Sun Java System Message Queue 3.7 UR1 技術摘要

訊息在系統中的行程

本節將總結目前已介紹的內容,說明如何使用 Message Queue 服務,將訊息從產生器傳送給用戶。為提供完整的概念,必須再深入說明一點。系統在傳送程序中所處理的訊息分成兩類:

圖 2–7 是訊息傳送的示意圖。

圖 2–7 訊息傳送步驟

圖表顯示在安全傳送永久性訊息時的訊息傳送步驟。圖形以文字進行說明。

安全傳送永久性訊息時的訊息傳送步驟如下所示:

訊息生產

1. 用戶端執行階段透過連線,將訊息從訊息產生器傳送至代理程式。

訊息處理和訊息路由

2. 代理程式從連線讀取訊息,並將其放入適當的目標中。

3. 代理程式將 (永久性) 訊息放入資料存放區中。

4. 代理程式向訊息產生器的用戶端執行階段確認收到訊息。

5. 代理程式判斷訊息的路由情況。

6. 代理程式將訊息從目標寫入適當的連線,並為用戶在上面標記唯一的識別碼。

訊息使用

7. 訊息用戶的用戶端執行階段從連線傳送訊息至訊息用戶。

8. 訊息用戶的用戶端執行階段向代理程式確認訊息的使用。

訊息結束

9. 代理程式處理用戶端確認,並在收到所有確認後刪除 (永久性) 訊息。

10. 代理程式向用戶的用戶端執行階段確認已處理用戶端確認。

若管理員從目標中刪除訊息,或管理員移除或重新定義長期訂閱,而導致主題目標中的訊息尚未傳送即被移除,則代理程式便可能會在使用該訊息之前,即將其捨棄。在其他情況下,您可以讓代理程式將訊息儲存在名為停用的訊息佇列的特殊目標中,而不要將訊息捨棄。當訊息因為過期、記憶體限制而被移除,或在傳送時因用戶端發生異常而失敗時,會置於停用的訊息佇列中。將訊息儲存在停用的訊息佇列中可讓您進行系統的疑難排解,並在特定情況下回復訊息。