您可以使用下列其中一種方式來為具有 JMS 功能的連接器配置保證事件遞送功能:
如果具有 JMS 功能的連接器使用 JMS 佇列來實作其事件儲存庫,則連接器組織架構可作為「儲存區」並管理 JMS 事件儲存庫 (JMS 來源佇列)。以單一 JMS 交易而言,連接器可將訊息從來源佇列移除,並放置到目的地佇列上。本節提供下列資訊,內容是關於如何針對具有 JMS 事件儲存庫且具有 JMS 功能的連接器來使用保證事件遞送功能:
若要對具有 JMS 事件儲存庫且具有 JMS 功能的連接器啟用保證事件遞送功能,
請將連接器配置內容設為表 5 中所顯示的值。
表 5. 具有 JMS 事件儲存庫之連接器的保證事件遞送連接器內容
連接器內容 | 值 |
---|---|
DeliveryTransport | JMS |
ContainerManagedEvents | JMS |
PollQuantity | 事件儲存庫單一輪詢中處理的事件數目 |
SourceQueue |
JMS 來源佇列 (事件儲存庫) 的名稱,連接器組織架構會輪詢該佇列,並且從中擷取事件來處理
|
除了配置連接器之外,您還必須配置資料處理常式,以便在 JMS
儲存庫事件與商業物件之間進行轉換。這個資料處理常式資訊是由表 6 彙總的連接器配置內容組成。
資料處理常式內容 | 值 | 必要? |
---|---|---|
MimeType | 資料處理常式處理的 MIME 類型。 這個 MIME 類型可識別要呼叫的資料處理常式。 | 是 |
DHClass | 實作資料處理常式的 Java 類別完整名稱 | 是 |
DataHandlerConfigMOName | 建立 MIME 類型及其資料處理常式關聯性的最上層 Meta 物件名稱 | 選用 |
如果配置具有 JMS 事件儲存庫的連接器來使用保證事件遞送,您必須如表 5 和表 6 中所述來設定連接器內容。若要設定這些連接器配置內容, 請使用「連接器配置程式」工具。「連接器配置程式」會在其「標準內容」標籤上顯示表 5 中的連接器內容。而會在其「資料處理常式」標籤上顯示表 6 中的連接器內容。
如需「連接器配置程式」的相關資訊,請參閱附錄 B, 連接器配置程式。
如果連接器藉由將 ContainedManagedEvents 設為 JMS 來 使用保證事件遞送,其操作方式與不使用此功能的連接器稍有不同。為提供受儲存器管理的事件, 連接器組織架構採取下列步驟來輪詢事件儲存庫:
事件儲存庫實作為 JMS 來源佇列。JMS 訊息包含事件記錄。您可以從 SourceQueue 連接器配置內容取得 JMS 來源佇列的名稱。
連接器組織架構會呼叫已使用表 6 中的內容來配置的資料處理常式。
當 JMS 交易確定後,訊息會寫入 JMS 目的地佇列,並從相同交易中的 JMS 來源佇列移除。
如果具有 JMS 功能的連接器使用非 JMS 解決方案來實作其事件儲存庫 (例如,JDBC 事件表格、電子郵 件信箱或純文字檔),連接器組織架構可使用重複事件排除來確保不會發生重複的事件。 本節提供下列資訊,內容是關於如何針對具有非 JMS 事件儲存庫且具有 JMS 功能的連接器來使用保證事件遞送功能:
若要對具有非 JMS 事件儲存庫且具有 JMS
功能的連接器啟用保證事件遞送功能,請將連接器配置內容設為表 7 中所顯示的值。
表 7. 具有非 JMS 事件儲存庫之連接器的保證事件遞送連接器內容
連接器內容 | 值 |
---|---|
DeliveryTransport | JMS |
DuplicateEventElimination | true |
MonitorQueue |
連接器組織架構將已處理商業物件的 ObjectEventId 儲存在其中的 JMS
監視器佇列名稱
|
如果配置連接器來使用保證事件遞送,您必須如表 7 中 所述來設定連接器內容。若要設定這些連接器配置內容, 請使用「連接器配置程式」工具。它會在本身的「標準內容」標籤上顯示這些連接器 內容。如需「連接器配置程式」的相關資訊,請參閱附錄 B, 連接器配置程式。
如果連接器藉由將 DuplicateEventElimination 設為 true 來使用保 證事件遞送,其操作方式與不使用此功能的連接器稍有不同。為提供重複事件排除,連接器組織架構使用 JMS 監視器佇列來追蹤商業物件。您可以從 MonitorQueue 連接器配置內容取得 JMS 監視器佇列名稱。
連接器組織架構從特定應用程式元件接收商業物件後 (透過在 pollForEvents() 方 法中呼叫 gotApplEvent()),它必須判斷現行商業物件 (從 gotApplEvents() 接收) 是否代表重複事件。為做出判定,連接器組織架構會從 JMS 監視器佇列擷取商業物件,然後將其 ObjectEventId 與現行商業物件的 ObjectEventId 相互比較:
為了讓具有 JMS 功能的連接器能夠支援重複事件排除,您必須確定連接器的 pollForEvents() 方法包含下列步驟:
應用程式會產生這個事件識別碼來唯一識別事件儲存庫中的事件記錄。如果連接器在事件傳送到整合分配管理系統後卻在可變更此事件記錄的狀態之前停止作用,此事件記錄會以「進行中」狀態保留在事件儲存庫中。當連接器重新作用後, 它會回復任何「進行中」事件。當連接器回復輪詢時,它會針對仍保留在事件儲存庫中的事件記錄產生商業物件。不過,由於已經送出和新建的商業物件其事件記錄與本身的 ObjectEventId 相同, 所以連接器組織架構會將新的商業物件視為重複項目,而且不會將它傳給整合分配管理系統。
除非連接器在啟動時將任何「進行中」事件變更為「備妥輪詢」狀態,否則輪詢方法不會重新處理事件記錄。