|
啟動 |
啟動「明信片」時,它會檢查這部電腦上有哪些佇列管理程式, 然後據以起始設定簽入對話框(如果完全沒有佇列管理程式存在,它會提示您安裝預設配置)。
明信片會利用 JMS 呼叫 |
接收訊息 |
當「明信片」功能在執行中時,它會輪詢稱為 postcard 的佇列, 以接收其他「明信片」傳來的訊息。(如果沒有稱為 postcard 的佇列存在,「明信片」會嘗試建立該佇列)。 當「明信片」開始執行時,它會為本端的 postcard 佇列建立一個 JMS QueueReceiver 物件,且會提供一個選取元字串作為參數,以交互識別碼 (CorrelId 欄位)來過濾要從佇列接收的訊息。 這個選取元字串會規定明信片從屬站只應接收其 CorrelId 欄位與使用者暱名相符的訊息。 之後,訊息資料文字就會出現在「JMS 明信片」視窗中。 |
傳送訊息 |
如果您沒有於在:欄位輸入電腦名稱,「明信片」會假設收件者是位在相同的佇列管理程式中。 如果您有輸入電腦名稱,明信片會檢查這個名稱有沒有佇列管理程式存在 - 它首先會使用所提供的完全相同的名稱,之後,會使用和預設配置 建立的相同格式的字首。
不論是哪一種情況,它都會發出
最後,它會以暱名和使用者輸入的字詞來建立一個 JMS BytesMessage,並執行
|
明信片如何到達目的地 |
當這部電腦中的其他「明信片」實例使用同一個佇列管理程式和佇列時,只需要在同一個佇列中放置和取得訊息即可。 不過,如此可以確定這部電腦上安裝的 WebSphere MQ 程式碼的配置和運作完全正確。 為了讓「明信片」能傳給另一個佇列管理程式,兩個佇列管理程式之間必須有連線存在。 這個連線的存在方式有兩種,一是這兩個佇列管理程式是屬於同一個叢集的成員, 或您明確建立了兩者之間的連線。 因此,「明信片」可以假設佇列管理程式是可以連接的,並如上所述來連接它, 開啟佇列和放置訊息,將取得訊息的工作交由 WebSphere MQ 叢集程式負責。 換句話說,「明信片」只使用一個程式碼來放置訊息,它並不需要知道訊息是否要傳到另一部電腦。 在「明信片」中,當呼叫 session.createSender("postcard") 時, 叢集程式會檢查儲存庫以尋找其他佇列管理程式,並檢查佇列是否存在,如果因故無法執行這個動作,它會擲出異常狀況。 當呼叫 queueSender.send(theMessage) 時,叢集程式會開啟一個通道來通往其他佇列管理程式 (必要時,會建立該佇列管理程式),然後再傳送訊息。 之後,如果叢集最佳化程式不再需要該通道,就會捨棄該通道。 如果佇列管理程式是在不同的電腦上,這些全部會由叢集程式處理。 |
處置無法遞送的訊息 |
如果您傳了一封「明信片」給 "John",但從未使用暱名 "John" 執行「明信片」,該則訊息便會永遠停留在佇列當中。為了避免發生這種狀況,「明信片」會在訊息描述子 (MQMD) 中,將訊息期限(期限 )欄位設成 48 小時。 超過該時間之後,不論訊息是位在哪裡,都會被捨棄(即使仍在傳輸當中也一樣)。 |
請將您對說明及書籍的寶貴意見傳送至 idrcf@hursley.ibm.com。
(C) IBM Corporation 1996, 2002. All Rights Reserved