本節將總結目前已介紹的內容,說明如何使用 Message Queue 服務,將訊息從產生器傳送給用戶。為提供完整的概念,必須再深入說明一點。系統在傳送程序中所處理的訊息分成兩類:
圖 2–7 是訊息傳送的示意圖。
安全傳送永久性訊息時的訊息傳送步驟如下所示:
1. 用戶端執行階段透過連線,將訊息從訊息產生器傳送至代理程式。
2. 代理程式從連線讀取訊息,並將其放入適當的目標中。
3. 代理程式將 (永久性) 訊息放入資料存放區中。
4. 代理程式向訊息產生器的用戶端執行階段確認收到訊息。
5. 代理程式判斷訊息的路由情況。
6. 代理程式將訊息從目標寫入適當的連線,並為用戶在上面標記唯一的識別碼。
7. 訊息用戶的用戶端執行階段從連線傳送訊息至訊息用戶。
8. 訊息用戶的用戶端執行階段向代理程式確認訊息的使用。
9. 代理程式處理用戶端確認,並在收到所有確認後刪除 (永久性) 訊息。
10. 代理程式向用戶的用戶端執行階段確認已處理用戶端確認。
若管理員從目標中刪除訊息,或管理員移除或重新定義長期訂閱,而導致主題目標中的訊息尚未傳送即被移除,則代理程式便可能會在使用該訊息之前,即將其捨棄。在其他情況下,您可以讓代理程式將訊息儲存在名為停用的訊息佇列的特殊目標中,而不要將訊息捨棄。當訊息因為過期、記憶體限制而被移除,或在傳送時因用戶端發生異常而失敗時,會置於停用的訊息佇列中。將訊息儲存在停用的訊息佇列中可讓您進行系統的疑難排解,並在特定情況下回復訊息。