事件處理

於事件通知方面,配接器會偵測 WebSphere Commerce 寫入佇列中的事件。

擷取

配接器使用 pollForEvents() 方法來定期輪詢佇列中的訊息。 當配接器找到訊息時,就從佇列中擷取訊息並查驗以判斷其格式。 若格式已於配接器的靜態 meta 物件中定義,配接器會將訊息主體及格式相關之 商業物件的新實例傳送至已配置的資料處理常式; 資料處理常式將對商業物件輸入資料並指定動詞。 若格式未定義於靜態 meta 物件中,則配接器只將訊息主體傳送到資料處理常式; 資料處理常式將針對訊息來判斷、建立及移入資料到正確的商業物件。 有關於事件失敗情況,請參閱"錯誤處理"

配接器於處理訊息時,首先將對輸入佇列開啟一個交易式階段作業。 若配接器順利地送出商業物件,但無法確定佇列中的交易, 則可能導致商業物件遞送兩次到協同作業實例,此交易式方法可儘量避免這種情形。 為了避免這個問題,配接器將所有訊息移至進行中佇列。 訊息保留於此處,直到處理完成為止。 若配接器在處理期間非預期地關閉, 則訊息會保留在進行中佇列內,而非復原到原始的輸入佇列中。

註:
對 WebSphere MQ 的交易式階段作業需要先執行並確定佇列上每一個所要求的動作, 才能夠從佇列中移除事件。因此,當配接器從佇列擷取訊息時,在發生下列三件事之前並不會確定擷取: 1) 訊息已轉換成商業物件; 2) 商業物件已由 gotApplEvents() 方法遞送至 InterChange Server; 3) 收到回覆值。

復原

在起始設定時,配接器會檢查進行中佇列是否有尚未完成處理的訊息 (假設是由於連接器關閉所造成)。 連接器配置內容 InDoubtEvents 可讓您指定四種選項的其中一種來處理這些訊息的復原: 啟動時失敗、重新處理、忽略、記載錯誤。

啟動時失敗

透過啟動時失敗選項,若配接器於起始設定期間發現進行中佇列含有訊息, 則記載錯誤並立即關閉。 使用者或系統管理者有責任查驗訊息並採取適當的動作, 不論是完全刪除這些訊息,或移至不同的佇列。

重新處理

透過重新處理選項,若配接器在起始設定發現進行中佇列含有任何訊息, 則會在後續的輪詢期間優先處理這些訊息。 當進行中佇列內的所有訊息皆已處理完畢時, 配接器就開始處理輸入佇列中的訊息。

忽略

透過忽略選項,若配接器於起始設定期間發現進行中佇列含有任何訊息, 配接器將忽略之,但不會關閉。

記載錯誤

透過記載錯誤選項,若配接器於起始設定期間發現進行中佇列含有任何訊息, 則會記載錯誤,但不關閉。

保存

若連接器內容 ArchiveQueue 已指定且定義有效的佇列,則配接器會將所有已順利處理的訊息複本放入保存佇列中。 如果未定義 ArchiveQueue,則訊息在處理之後就會捨棄。 如需保存未訂閱或錯誤訊息的詳細資訊, 請參閱錯誤處理

註:
根據 JMS 使用慣例,擷取的訊息無法立即送到另一個佇列。 為了保存和重新遞送訊息,配接器會先產生第二個訊息, 這個訊息會複製原始訊息的主體和標頭(如果有的話)。 為了避免與 WebSphere Commerce 傳訊服務發生衝突,僅重複 JMS 必要的欄位。 因此,對於要保存或重新遞送的訊息,format 欄位是唯一會複製的額外訊息內容。

Copyright IBM Corp. 1997, 2003