次の方法で共有


ポーリングを使用する受信呼び出しのサポート

Microsoft BizTalk Adapter for Oracle E-Business Suite を使用すると、クライアント プログラムは Oracle E-Business Suite から、Oracle E-Business Suite のデータに対する変更を通知するメッセージを受信できます。 Oracle E-Business アダプターは、指定された SQL ステートメント、ストアド プロシージャ、関数、またはパッケージ内のプロシージャを実行し、データを取得し、一定の間隔でクライアントに結果を提供する"ポーリング ベース" メッセージの受信をサポートしています。

Note

Oracle E-Business アダプターで Poll 操作のアプリケーション コンテキストを設定することもできます。 操作がインターフェイス テーブルまたはインターフェイス ビューで実行される場合は、Poll 操作のアプリケーション コンテキストを設定する必要があります。 アプリケーション コンテキストとその設定方法については、「 アプリケーション コンテキストの設定」を参照してください。

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

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

  2. アダプター クライアントは、ポーリングに使用できるデータがあるかどうかを判断するために、 PolledDataAvailableStatement バインド プロパティの SELECT ステートメントを指定する必要があります。 このステートメントの実行時に返される最初の結果セットの最初の行の最初の列に正の整数値が含まれている場合は、ポーリングに使用できる日付があります。

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

  4. アダプター クライアントは、 PollingInput バインディング プロパティに SELECT ステートメントまたはストアド プロシージャを指定する必要があります。 テーブルまたはビューをポーリングする場合は、このバインディング プロパティに SELECT ステートメントを指定する必要があります。 ストアド プロシージャを使用してポーリングする場合は、このバインド プロパティの要求メッセージ全体を指定する必要があります。

    PollingInput バインド プロパティの ステートメントは、ポーリングに使用できるデータがある場合にのみ実行されます。これは、手順 2 の PolledDataAvailableStatement バインド プロパティによって決定されます。

  5. アダプター クライアントは、ポーリング操作のアクションを PollingAction バインド プロパティで指定する必要があります。 特定の操作のポーリング アクションは、アダプター サービス アドインを使用して操作に対して生成されたメタデータから決定されます。

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

    重要

    PollWhileDataFound バインド プロパティの値を True に設定すると、アダプター クライアントは Oracle からデータを継続的にポーリングし、プロセスではループ内で Oracle データベースへの接続を開いて閉じます。 ODP.NET によって接続が開かれる速度が閉じられている接続よりも大きかったため、しばらくすると接続が使い果たされ、例外がスローされます。 回避するには、 UseOracleConnectionPool の値が True に設定されていることを確認し、アダプター クライアントが開くことができる接続の数を制御するための適切な値が IncrPoolSize バインド プロパティに記載されていることを確認します。

  7. アダプター クライアントでは、 PostPollStatement バインド プロパティに対して、ポーリング後ステートメント (Oracle PL/SQL ブロック) を指定できます。 このバインディング プロパティで指定されたステートメントは、 PollingInput バインド プロパティで指定されたステートメントが実行された後に実行されます。

    Note

    アダプターは、トランザクションの PollingInput および PostPollStatement バインド プロパティで指定されたステートメントを実行します。 Oracle E-Business アダプターのトランザクションの詳細については、「アダプターで トランザクションを処理する方法」を参照してください。

    アダプターは、Oracle E-Business Suite からの空のポーリング応答を抑制します。

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

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

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

    ポーリング シナリオ (PollWhileDataFound=False)ポーリング シナリオ (PollWhileDataFound = True)

ポーリングと通知の違い

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

ポーリング Notification
ポーリングは、Oracle E-Business アダプターでサポートされているすべての Oracle データベース バージョンでサポートされます。 通知は、Oracle データベース バージョン 10.2 以降でのみサポートされています。
ポーリング間隔を構成して、一定の間隔でポーリングに使用できるデータをチェックするか、データが使用可能な場合と同じように瞬時に構成できます。 ヒント: ポーリングを使用すると、データの変更が継続的に行われているシナリオでスループットを向上させることができます。また、変更が発生したときと同じように、各変更の通知を受け取る必要はありません。 代わりに、ポーリング間隔を指定して、最後の変更通知以降に発生したすべての変更を通知します。 データ変更通知は常に瞬時に行われます。
ポーリングはアダプターによって開始されます。 アダプターは SQL ステートメントを実行して、データがポーリングに使用できるかどうかを検証し、ポーリングに使用できるデータがある場合はポーリング ステートメントを実行してポーリングを開始します。 通知は Oracle データベースによって開始されます。 アダプターによって発行された通知ステートメントは、ステートメントの結果セットに変更がある場合に備えて、通知を開始するようにデータベースに指示するだけです。 通知は Oracle データベースの機能です。
ポーリング ステートメントを使用して、Oracle データベース内のデータの読み取りまたは更新を行うことができます。 通知ステートメントを使用すると、Oracle データベース内のデータのみを読み取ることができます。
ポーリングでは、変更された実際のデータについて通知されます。 通知では、挿入、更新、削除などのデータの変更の種類についてのみ通知されます。

詳細情報は、次のとおりです。

参照

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