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