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
を指定する必要があります。 このバインディング プロパティの既定値は ポーリングです。アダプター クライアントは、ポーリングに使用できるデータがあるかどうかを判断するために、 PolledDataAvailableStatement バインディング プロパティの SELECT ステートメントを指定する必要があります。 このステートメントの実行時に返される最初の結果セットの最初の行の最初の列に正の整数値が含まれている場合は、ポーリングに使用できる日付があります。
アダプター クライアントは、PolledDataAvailableStatement バインディング プロパティで指定されたステートメントが実行される間隔を秒単位で定義するために、PollingInterval バインディング プロパティのポーリング間隔を指定する必要があります。 ポーリング間隔の終了時に、ポーリングされたデータの使用可能なステートメントが実行され、結果セットが返されます。
アダプター クライアントは、 PollingInput バインディング プロパティの SELECT ステートメントまたはストアド プロシージャを指定する必要があります。 テーブルまたはビューをポーリングする場合は、このバインド プロパティに SELECT ステートメントを指定する必要があります。 ストアド プロシージャを使用してポーリングする場合は、このバインド プロパティの要求メッセージ全体を指定する必要があります。
PollingInput バインディング プロパティのステートメントは、ポーリングに使用できるデータがある場合にのみ実行されます。これは、手順 2 の PolledDataAvailableStatement バインディング プロパティによって決定されます。
アダプター クライアントは 、PollingAction バインディング プロパティでポーリング操作のアクションを指定する必要があります。 特定の操作のポーリング アクションは、Consume Adapter Service アドインを使用して操作に対して生成されたメタデータから決定されます。
アダプター クライアントは 、PollWhileDataFound バインディング プロパティを使用してポーリング間隔を無視し、使用可能な場合と同様にデータを継続的にポーリングできます。
Von Bedeutung
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 アダプターのポーリング ワークフローに関する情報を示しています。 ポーリング ワークフローの 2 つのシナリオを示します。
PollWhileDataFound の値が "False" (既定の設定) に設定されている場合。
PollWhileDataFound の値が "True" に設定されている場合。
ポーリングと通知の違い
ポーリングと通知はどちらも受信操作であり、Oracle データベースのデータ変更についてアダプター クライアントに通知しますが、次の表に、2 つの違いをいくつか示します。 次の違いは、要件に応じて操作を決定するのに役立ちます。
ポーリング | 通知 |
---|---|
ポーリングは、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 のポーリング」を参照してください。