次の方法で共有


SQL アダプターを使用したSQL Serverでのポーリング

Microsoft BizTalk Adapter for SQL Serverを使用すると、アダプター クライアントは、SQL Server データベースからデータ変更メッセージを受信できます。 SQL アダプターは、指定された SQL ステートメント (SELECT ステートメントまたはストアド プロシージャ) を実行し、データを取得または更新し、一定の間隔でアダプター クライアントに結果を提供する"ポーリング ベース" メッセージの受信をサポートします。

SQL アダプターは、ポーリングのために次の操作を公開します。

  • ポーリング: SQL Serverテーブルまたはビューの定期的なデータ変更メッセージを受信できます。 メッセージは厳密に型指定されていません。

  • TypedPolling: SQL Server データベースから厳密に型指定されたメッセージを受信できます。 ポーリング メッセージ内の要素を他のスキーマにマップする場合は、この操作を使用する必要があります。

  • XmlPolling。 FOR XML 句を使用し、データを XML メッセージとして返す SELECT ステートメントまたはストアド プロシージャを使用できます。 この操作は、ポーリング メッセージを XML メッセージとして返します。

    FOR XML 句の詳細については、「」を参照してください https://go.microsoft.com/fwlink/?LinkId=131402

    SQL アダプターでのポーリングの詳細については、「BizTalk Serverを使用してポーリング ベースのデータ変更メッセージをSQL Serverから受信する」を参照してください。

ポーリング

SQL アダプターを使用する一般的なポーリング操作には、次の操作が含まれます。

  1. アダプター クライアントは、InboundOperationType バインディング プロパティで受信操作として を指定Pollingする必要があります。 このバインディング プロパティの既定値は です Polling

  2. アダプター クライアントは、ポーリングに使用できるデータがあるかどうかを決定する PolledDataAvailableStatement バインド プロパティの SQL ステートメントを指定する必要があります。 このステートメントの実行時に返される最初の結果セットの最初の行の最初の列には、整数値が含まれています。 ポーリングに使用できるデータがない場合、戻り値は 0 (ゼロ) です。 使用可能なデータがある場合、戻り値は 0 より大きくなります。

  3. アダプター クライアントは、PolledDataAvailableStatement バインディング プロパティのステートメントが実行される間隔を定義するために、PollingIntervalInSeconds バインディング プロパティのポーリング間隔を指定する必要があります。 ポーリング間隔の終了時に、ポーリングされたデータの使用可能なステートメントが実行され、結果セットが返されます。

  4. アダプター クライアントは、 PollingStatement バインディング プロパティに対してポーリング SQL ステートメント (SELECT ステートメントまたはストアド プロシージャ) を指定する必要があります。 ポーリングに使用できるデータがある場合 (PolledDataAvailableStatement バインディング プロパティによって決定されます)、アダプターはポーリング ステートメントを実行して、SQL Server データベース内のデータを取得して更新します (該当する場合)。 SQL アダプターをBizTalk Serverと共に使用する場合は、メッセージをBizTalk Serverに送信するためにも同じトランザクションが使用されます。

  5. アダプター クライアントは 、PollWhileDataFound バインディング プロパティを使用してポーリング間隔を無視し、使用可能な場合と同様にデータを継続的にポーリングできます。

  6. ポーリング ステートメントを実行した結果として返される結果セットは、受信メッセージとしてアダプター クライアントに送信されます。

Note

UseAmbientTransaction が False に設定されている場合、PolledDataAvailableStatement は呼び出されません。 代わりに、アダプターは PollingStatement を直接呼び出します。

Note

XmlPolling 操作には、ポーリング操作と同じ手順が含まれます。

Strongly-Typed ポーリング

SQL アダプターを使用する一般的な厳密に型指定されたポーリング操作には、次の操作が含まれます。

  1. アダプター クライアントは、InboundOperationType バインディング プロパティで受信操作として を指定TypedPollingする必要があります。 このバインディング プロパティの既定値は です Polling

  2. アダプター クライアントは、接続 URI の一部として受信 ID を指定する必要があります。 受信 ID には任意の文字列を指定でき、名前空間の競合を防ぐために TypedPolling 操作の標準名前空間に追加されます。

  3. 残りの手順は、前のセクションで説明したポーリング操作に記載されている手順 2 から 6 と同じです。

    ポーリングと厳密に型指定されたポーリングに関連するバインディング プロパティの詳細については、「BizTalk Adapter for SQL Server アダプターのバインド プロパティ」を参照してください。

Note

ポーリング ステートメントを実行した結果、複数の結果セットを返すことができます。 結果セットに行が含まれていない場合、アダプター クライアントにメッセージは送信されません。

次の図は、SQL アダプターのポーリング ワークフローに関する情報を示しています。 ポーリング ワークフローの 2 つのシナリオを示します。

  1. PollWhileDataFound の値が "False" (既定の設定) に設定されている場合。

  2. PollWhileDataFound の値が "True" に設定されている場合。

    ポーリング ワークフロー (PollWhileDataFound = False)ポーリング ワークフロー (PollWhileDataFound = True)

ポーリングとクエリ通知の違い

ポーリングとクエリ通知はどちらも受信操作であり、SQL Server データベースのデータ変更についてアダプター クライアントに通知しますが、次の表に、2 つの違いをいくつか示します。 次の違いは、要件に応じて操作を決定するのに役立ちます。

ポーリング クエリ通知
ポーリングはアダプターによって開始されます。 アダプターはステートメントを実行して、データがポーリングに使用できるかどうかを検証し、ポーリングに使用できるデータがある場合はポーリング ステートメントを実行してポーリングを開始します。 クエリ通知は、SQL Serverによって開始されます。 アダプターによって発行された通知ステートメントは、ステートメントの結果セットに変更がある場合に備えて、通知を開始するようにデータベースに指示するだけです。
ポーリング ステートメントを使用して、SQL Server データベース テーブル内のデータの読み取りまたは更新を行うことができます。 クエリ通知ステートメントを使用すると、SQL Server データベース テーブル内のデータのみを読み取ることができます。
ポーリングでは、変更された実際のデータについて通知されます。 クエリ通知では、挿入、更新、削除などのデータの変更の種類についてのみ通知されます。
データ変更通知はポーリング間隔によって異なり、アダプター クライアントは、すべてのポーリング間隔の最後にデータ変更について通知されます。 ヒント: ポーリングを使用すると、データの変更が継続的に行われるシナリオでスループットを向上させることができます。また、変更が発生したときと同様に、各変更の通知を受け取る必要はありません。 代わりに、前回のデータ変更通知以降に発生したすべての変更の通知を受け取るポーリング間隔を指定します。 データ変更通知は瞬時に行われます。

microsoft BizTalk Adapter for SQL Server でのクエリ通知の詳細については、「BizTalk Serverを使用して SQL クエリ通知を受信する」を参照してください。

参照

アダプターを使用して実行できる操作