共用方式為


在多個接收位置上接收 Oracle Database 變更通知

假設您在設定為接收相同資料表的多個接收位置時建立多個接收位置,以接收相同資料表 (的查詢通知,例如相同資料庫中的 ACCOUNTACTIVITY) 。 如果一百筆記錄插入相同的資料表中,所有接收位置都會收到通知訊息。 若要有效地接收多個接收位置的通知,您可以從 BizTalk 應用程式呼叫作業,如此一來,如果一個接收位置收到通知,另一個接收位置就不會收到相同的通知。 因此,您可以有效地對多個位置收到的通知進行負載平衡。

設定協調流程以負載平衡接收通知所需的工作,與使用 BizTalk Server 以累加方式接收 Oracle 資料庫變更通知的工作相同。 本主題列出這兩種方法之間唯一的差異。

跨多個接收位置 Load-Balancing 查詢通知

如同使用BizTalk Server以累加方式接收 Oracle 資料庫變更通知主題中,您執行PROCESS_RECORDS程式來設定累加式通知。 若要設定負載平衡,您可以執行預存程式,以刪除已收到通知的記錄。 例如,請考慮使用下列定義NOTIFY_LOAD_BALANCE預存程式:

PROCEDURE NOTIFY_LOAD_BALANCE (TABLE_DATA OUT SYS_REFCURSOR) IS
  var int;
BEGIN
  SELECT TID INTO var FROM ACCOUNTACTIVITY WHERE ROWNUM = 1 FOR UPDATE;
  OPEN TABLE_DATA FOR SELECT * FROM ACCOUNTACTIVITY WHERE TID = var;
  DELETE FROM ACCOUNTACTIVITY WHERE TID = var;
END NOTIFY_LOAD_BALANCE;

當您將此預存程式當做 BizTalk 應用程式的一部分執行時,會收到通知的記錄會被刪除。 因此,另一個接收位置會取得下一筆記錄的通知。

以下是您必須執行的高階步驟,以設定接收通知的負載平衡。

  1. 建立 通知 (輸入作業) 和 NOTIFY_LOAD_BALANCE 程式 (輸出作業) 的架構。

  2. 新增協調流程,並新增三則訊息來接收通知、執行程式,以及取得程式的回應。

  3. 藉由新增傳送和接收圖形、建構訊息圖形和埠來建立協調流程。 您可以使用相同的範例程式碼來建構訊息,以叫用預存程式NOTIFY_LOAD_BALANCE。 請注意,在 BizTalk Server 管理主控台中執行作業時,您必須在 C:\TestLocation\MessageIn 位置中有NOTIFY_LOAD_BALANCE程式的要求訊息。 這樣做是因為您在以累加方式接收 Oracle 資料庫變更通知中建立的協調流程中叫用的程式碼片段,BizTalk Server根據 C:\TestLocation\MessageIn 中存在的要求 XML 建立要求訊息。

  4. 建置和部署應用程式。 若要示範負載平衡,您必須至少在已安裝 BizTalk Server 和 Oracle 資料庫配接器的兩部不同電腦上部署此協調流程。

  5. 在這兩部電腦上的 BizTalk Server 管理主控台中,指定下列 WCF-Custom 或 WCF-OracleDB 接收位置的系結屬性:

    Binding 屬性
    InboundOperationType 將此設定為 [通知]。
    NotificationPort 指定 ODP.NET 必須開啟的埠號碼,以接聽 Oracle 資料庫中的資料庫變更通知。 將此設定為您必須新增至 Windows 防火牆例外狀況清單的相同埠號碼。 如需如何將埠新增至 Windows 防火牆例外狀況清單的指示,請參閱 https://go.microsoft.com/fwlink/?LinkID=196959重要: 如果您將此設定為預設值 -1,則必須完全停用 Windows 防火牆以接收通知訊息。
    NotificationStatement 將此設定為:

    SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’注意: 您必須指定資料表名稱以及架構名稱。 例如: SCOTT.ACCOUNTACTIVITY
    NotifyOnListenerStart 將此設定為 True
  6. 啟動 BizTalk 應用程式。

  7. 若要開始接收通知,請將一百筆記錄插入 ACCOUNTACTIVITY 資料表中。 這樣做時,請確定叫用NOTIFY_LOAD_BALANCE程式的要求 XML 可在 C:\TestLocation\MessageIn 中使用。

  8. 監視 BizTalk 應用程式將卸載通知訊息) 這兩部電腦上的位置 (。 您會注意到,插入的百筆記錄,一個位置會取得某些記錄的通知,而另一個位置則會取得剩餘記錄的通知。 這兩個位置都會收到所有百筆記錄的通知。

另請參閱

使用 BizTalk Server 以累加方式接收 Oracle 資料庫變更通知