於事件通知方面,配接器會偵測 WebSphere Commerce 寫入佇列中的事件。
配接器使用 pollForEvents() 方法來定期輪詢佇列中的訊息。 當配接器找到訊息時,就從佇列中擷取訊息並查驗以判斷其格式。 若格式已於配接器的靜態 meta 物件中定義,配接器會將訊息主體及格式相關之 商業物件的新實例傳送至已配置的資料處理常式; 資料處理常式將對商業物件輸入資料並指定動詞。 若格式未定義於靜態 meta 物件中,則配接器只將訊息主體傳送到資料處理常式; 資料處理常式將針對訊息來判斷、建立及移入資料到正確的商業物件。 有關於事件失敗情況,請參閱"錯誤處理"。
配接器於處理訊息時,首先將對輸入佇列開啟一個交易式階段作業。 若配接器順利地送出商業物件,但無法確定佇列中的交易, 則可能導致商業物件遞送兩次到協同作業實例,此交易式方法可儘量避免這種情形。 為了避免這個問題,配接器將所有訊息移至進行中佇列。 訊息保留於此處,直到處理完成為止。 若配接器在處理期間非預期地關閉, 則訊息會保留在進行中佇列內,而非復原到原始的輸入佇列中。
在起始設定時,配接器會檢查進行中佇列是否有尚未完成處理的訊息 (假設是由於連接器關閉所造成)。 連接器配置內容 InDoubtEvents 可讓您指定四種選項的其中一種來處理這些訊息的復原: 啟動時失敗、重新處理、忽略、記載錯誤。
透過啟動時失敗選項,若配接器於起始設定期間發現進行中佇列含有訊息, 則記載錯誤並立即關閉。 使用者或系統管理者有責任查驗訊息並採取適當的動作, 不論是完全刪除這些訊息,或移至不同的佇列。
透過重新處理選項,若配接器在起始設定發現進行中佇列含有任何訊息, 則會在後續的輪詢期間優先處理這些訊息。 當進行中佇列內的所有訊息皆已處理完畢時, 配接器就開始處理輸入佇列中的訊息。
透過忽略選項,若配接器於起始設定期間發現進行中佇列含有任何訊息, 配接器將忽略之,但不會關閉。
透過記載錯誤選項,若配接器於起始設定期間發現進行中佇列含有任何訊息, 則會記載錯誤,但不關閉。
若連接器內容 ArchiveQueue 已指定且定義有效的佇列,則配接器會將所有已順利處理的訊息複本放入保存佇列中。 如果未定義 ArchiveQueue,則訊息在處理之後就會捨棄。 如需保存未訂閱或錯誤訊息的詳細資訊, 請參閱錯誤處理。