共用方式為


使用 SQL 配接器輪詢SQL Server

Microsoft BizTalk Adapter for SQL Server 可讓配接器用戶端從SQL Server資料庫接收資料變更訊息。 SQL 配接器支援接收「輪詢型」訊息,其中介面卡會在 SELECT 語句或預存程式 (SELECT 語句或預存程式) 、擷取或更新資料,並定期將結果提供給配接器用戶端。

SQL 配接器會公開下列用於輪詢的作業:

  • 輪詢:可讓您接收SQL Server資料表或檢視的定期資料變更訊息。 訊息不是強型別的。

  • TypedPolling:可讓您從SQL Server資料庫接收強型別訊息。 如果您想要將輪詢訊息中的專案對應至任何其他架構,則必須使用此作業。

  • XmlPolling。 可讓您使用使用 FOR XML 子句的 SELECT 語句或預存程式,並將資料當做 XML 訊息傳回。 這項作業會以 XML 訊息的形式傳回輪詢訊息。

    如需 FOR XML 子句的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=131402

    如需在 SQL 配接器中輪詢的詳細資訊,請參閱使用 BizTalk Server 從SQL Server接收輪詢型資料變更的訊息

輪詢

使用 SQL 配接器的一般輪詢作業包含下列各項:

  1. 配接器用戶端必須在InboundOperationType系結屬性中指定 Polling 為輸入作業。 這個系結屬性的預設值為 Polling

  2. 配接器用戶端必須指定 PolledDataAvailableStatement 系結屬性的 SQL 語句,以判斷是否有資料可供輪詢。 執行這個語句時傳回之第一個結果集之第一個資料列的第一個資料行包含整數值。 如果沒有資料可供輪詢,則傳回值為 0 (零) 。 如果有可用的資料,傳回值會大於零。

  3. 配接器用戶端必須指定 PollingIntervalInSeconds 系結屬性的輪詢間隔,以定義 執行 PolledDataAvailableStatement 系結屬性中語句的間隔。 在每個輪詢間隔結束時,會執行輪詢的資料可用語句,並傳回結果集。

  4. 配接器用戶端必須針對 PollingStatement 系結屬性指定輪詢 SQL 語句 (SELECT 語句或預存程式) 。 如果有資料可供輪詢 (由 PolledDataAvailableStatement系結屬性所決定) ,配接器會執行輪詢語句,以便在SQL Server資料庫中的資料) 取得和更新 (。 當 SQL 配接器與BizTalk Server搭配使用時,也會使用相同的交易將訊息提交至BizTalk Server。

  5. 配接器用戶端可以使用 PollWhileDataFound 系結屬性來忽略輪詢間隔,並在可用時持續輪詢資料。

  6. 執行輪詢語句所傳回的結果集會以輸入訊息的形式傳送至配接器用戶端。

注意

UseAmbientTransaction 設定為 False 時,不會呼叫 PolledDataAvailableStatement 。 相反地,配接器會直接呼叫 PollingStatement

注意

XmlPolling 作業牽涉到與輪詢作業相同的步驟。

Strongly-Typed 輪詢

使用 SQL 配接器的一般強型別輪詢作業牽涉到下列事項:

  1. 配接器用戶端必須在InboundOperationType系結屬性中指定 TypedPolling 為輸入作業。 這個系結屬性的預設值為 Polling

  2. 配接器用戶端必須將輸入識別碼指定為連線 URI 的一部分。 輸入識別碼可以是任何字串,並附加至 TypedPolling 作業的標準命名空間,以防止命名空間衝突。

  3. 其餘步驟與上一節所述的輪詢作業中列出的步驟 2-6 相同。

    如需與輪詢和強型別輪詢相關的系結屬性詳細資訊,請參閱閱讀 bizTalk Adapter for SQL Server 配接器系結屬性

注意

執行輪詢語句的結果可以傳回多個結果集。 如果結果集不包含任何資料列,則不會傳送任何訊息給配接器用戶端。

下圖提供 SQL 配接器中輪詢工作流程的相關資訊。 說明輪詢工作流程的兩個案例:

  1. PollWhileDataFound 的值設定為 「False」 時, (預設設定) 。

  2. PollWhileDataFound 的值設定為 「True」 時。

    輪詢工作流程 (PollWhileDataFound = False) Polling Workflow (PollWhileDataFound = True)

輪詢和查詢通知之間的差異

雖然輪詢和查詢通知都是輸入作業,並通知配接器用戶端SQL Server資料庫中的資料變更,下表列出兩者之間的一些差異。 下列差異可協助您根據需求決定作業:

輪詢 查詢通知
輪詢是由配接器起始。 配接器會執行 語句來驗證資料是否可供輪詢,然後在某些資料可供輪詢時執行輪詢語句來起始輪詢。 查詢通知是由 SQL Server 起始。 配接器所發出的通知語句只會指示資料庫在語句的結果集中發生變更時起始通知。
您可以使用輪詢語句來讀取或更新SQL Server資料庫資料表中的資料。 您可以使用查詢通知語句,唯讀取SQL Server資料庫資料表中的資料。
輪詢會通知您已變更的實際資料。 查詢通知只會通知資料中的變更類型,例如插入、更新和刪除。
資料變更通知取決於輪詢間隔,而且配接器用戶端會在每次輪詢間隔結束時收到資料變更的通知。 提示: 輪詢可在資料變更持續發生的情況下提供更佳的輸送量,而且您不想在每次變更發生時收到通知。 相反地,您可以指定輪詢間隔,之後您想要收到自上次資料變更通知以來發生之所有變更的通知。 資料變更通知是立即的。

如需 Microsoft BizTalk Adapter for SQL Server 中查詢通知的詳細資訊,請參閱使用 BizTalk Server 接收 SQL 查詢通知

另請參閱

可以使用配接器執行哪些作業?