Microsoft BizTalk Adapter for Oracle E-Business Suite 可讓用戶端程式接收來自 Oracle E-Business Suite 的訊息,告知他們 Oracle E-Business Suite 中的數據變更。 Oracle E-Business 配接器支援接收「輪詢型」訊息,其中配接器會在其中執行指定的 SQL 語句、預存程式、函式或封裝內的程式、擷取數據,並定期將結果提供給用戶端。
備註
您也可以在 Oracle E-Business 配接器中設定輪詢作業的應用程式內容。 如果在介面數據表或介面檢視上執行作業,則強制設定輪詢作業的應用程式內容。 如需應用程式內容以及如何設定它的資訊,請參閱 設定應用程式內容。
使用 Oracle E-Business 配接器的典型輪詢作業牽涉到下列各項:
配接器客戶端必須在 InboundOperationType 系結屬性中指定
Polling為輸入作業。 這個系結屬性的預設值為 Polling。配接器客戶端必須指定 PolledDataAvailableStatement 系結 屬性的 SELECT 語句,以判斷是否有數據可供輪詢。 如果執行這個語句時傳回之第一個結果集第一個數據列的第一個數據行包含正整數值,則輪詢有日期可用。
配接器客戶端必須指定 PollingInterval 系結屬性的輪詢間隔,以秒為單位定義 執行 PolledDataAvailableStatement 系結屬性中指定的語句間隔。 在每個輪詢間隔結束時,會執行已輪詢的數據可用語句,並傳回結果集。
配接器客戶端必須指定 PollingInput 系結屬性的 SELECT 語句或預存程式。 如果您想要輪詢數據表或檢視表,您必須指定這個系結屬性的 SELECT 語句。 如果您想要使用預存程式進行輪詢,您必須指定這個系結屬性的整個要求訊息。
只有在有數據可供輪詢時, 才會執行 PollingInput 系結屬性中的 語句,而此數據是由步驟 2 中的 PolledDataAvailableStatement 系結 屬性所決定。
配接器客戶端必須在 PollingAction 系結屬性中指定輪詢作業的動作。 特定作業的輪詢動作取決於使用取用配接器服務載入巨集為作業產生的元數據。
配接器用戶端可以使用 PollWhileDataFound 系結屬性來忽略輪詢間隔,並在可用時持續輪詢數據。
這很重要
如果您將 PollWhileDataFound 系結屬性的值設定為True,配接器用戶端會持續輪詢來自Oracle的數據,並在程式中開啟並關閉迴圈中Oracle資料庫的連線。 由於 ODP.NET 開啟連線的速率超過連線關閉的速率,連線在一定時間後會耗盡,並導致產生異常。 若要解決此問題,請確定 UseOracleConnectionPool 的值設定為True, 並在IncrPoolSize 系結屬性中提及適當的值,以控制適配卡用戶端可以開啟的連線數目。
配接器用戶端可以針對 PostPollStatement 系結屬性指定輪詢後語句,這是一個 Oracle PL/SQL 區塊。 執行 PollingInput 系結屬性中指定的語句之後,就會執行這個系結屬性中指定的語句。
備註
配接器會在交易中執行 PollingInput 和 PostPollStatement系結 屬性中指定的語句。 如需 Oracle E-Business 配接器中交易的詳細資訊,請參閱 配接器如何處理交易?。
配接器會隱藏來自 Oracle E-Business Suite 的任何空白輪詢回應。
下圖提供 Oracle E-Business 配接器中輪詢工作流程的相關信息。 示範輪詢工作流程的兩個案例:
當 PollWhileDataFound 的值設定為 “False” 時(預設值)。
當 PollWhileDataFound 的值設定為 “True”。
輪詢和通知之間的差異
雖然輪詢和通知都是輸入作業,並通知配接器用戶端 Oracle 資料庫中的數據變更,但下表列出兩者之間的一些差異。 下列差異可協助您根據需求決定作業:
| 投票 | 通知 |
|---|---|
| Oracle E-Business 配接器支援的所有 Oracle 資料庫版本支援輪詢。 | 只有 Oracle 資料庫 10.2 版和更新版本才支援通知。 |
| 您可以設定輪詢間隔,以定期檢查可供輪詢的數據,或當數據可用時立即進行輪詢。 提示: 輪詢可以在數據持續變更的情況下提供更好的吞吐量,適用於您不希望每次變更發生時都收到通知的情境。 相反地,您會指定輪詢間隔,之後您想要收到自上次變更通知之後發生的所有變更通知。 | 數據變更通知一律是即時的。 |
| 輪詢由配接器發起。 配接器會執行 SQL 語句來驗證數據是否可供輪詢,然後在某些數據可供輪詢時,執行輪詢語句來起始輪詢。 | 通知是由 Oracle 資料庫起始。 配接器發出的通知語句只會指示資料庫起始通知,以防語句的結果集發生變更。 通知是 Oracle 資料庫的一項功能。 |
| 您可以使用輪詢語句來讀取或更新 Oracle 資料庫中的數據。 | 您可以使用通知語句,只讀取 Oracle 資料庫中的數據。 |
| 輪詢會讓您了解真實的數據變動。 | 通知只會通知數據中的變更類型,例如插入、更新和刪除。 |
如需下列項目的詳細資訊:
與輪詢相關的系結屬性,請參閱 閱讀 BizTalk Adapter for Oracle E-Business Suite 系結屬性。
使用 BizTalk Server 接收輪詢型訊息,請參閱 使用 BizTalk Server 輪詢 Oracle E-Business Suite。