支援使用輪詢進行輸入呼叫
Microsoft BizTalk Adapter for Oracle E-Business Suite 可讓用戶端程式接收來自 Oracle E-Business Suite 的訊息,通知他們對 Oracle E-Business Suite 中的資料所做的變更。 Oracle E-Business 配接器支援接收「輪詢型」訊息,其中配接器會在其中執行指定的 SQL 語句、預存程式、函式或封裝內的程式、擷取資料,以及定期將結果提供給用戶端。
注意
您也可以在 Oracle E-Business 配接器中設定輪詢作業的應用程式內容。 如果在介面資料表或介面檢視上執行作業,則強制設定 Poll 作業的應用程式內容。 如需應用程式內容以及如何設定它的資訊,請參閱 設定應用程式內容。
使用 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。