次の方法で共有


BizTalk Serverを使用して Oracle Database の変更通知を段階的に受信する

重要

簡潔にするために、このトピックでは、通知を段階的に受信する方法のみを説明します。 ビジネス シナリオでは、受信した通知メッセージの種類を抽出し、後続の操作を実行するロジックをオーケストレーションに含めるのが理想的です。 言い換えると、このトピックで説明するオーケストレーションは、「通知メッセージの処理」で説明されているオーケストレーションの上に構築して、BizTalk Serverを使用して Oracle Database の特定のタスクを完了する必要があります。

このトピックでは、Oracle から増分クエリ通知メッセージを受信するように Oracle Database アダプターを構成する方法について説明します。 増分通知を示すために、"処理済み" 列を含むテーブル ACCOUNTACTIVITY を検討します。 このテーブルに新しいレコードが挿入されると、"Processed" 列の値が 'n' に設定されます。 増分通知を受信するようにアダプターを構成するには、次の操作を行います。

  • "Processed" 列を持つすべてのレコードを 'n' として取得する SELECT ステートメントを使用して通知に登録します。 これを行うには、 NotificationStatement バインド プロパティに SELECT ステートメントを指定します。

  • 通知された行の場合は、"Processed" 列を 'y' に更新します。

    このトピックでは、BizTalk オーケストレーションを作成し、これを実現するために BizTalk アプリケーションを構成する方法について説明します。

Oracle データベース アダプターのバインド プロパティを使用した通知の構成

次の表は、Oracle データベースからの通知の受信を構成するために使用する Oracle Database アダプター バインド プロパティをまとめたものです。 BizTalk Server管理コンソールで受信ポートを構成するときに、これらのバインド プロパティを指定する必要があります。

Note

Notification 操作のスキーマを生成するときに、必須ではない場合でも、これらのバインド プロパティを指定することもできます。 その場合、アダプター サービス アドインを使用してメタデータ生成の一部として生成されるポート バインド ファイルには、バインド プロパティに指定した値も含まれます。 このバインド ファイルは、後で BizTalk Server 管理コンソールにインポートして、バインド プロパティが既に設定されている WCF-custom または WCF-OracleDB 受信ポートを作成できます。 バインド ファイルを使用して受信ポートを作成する方法の詳細については、「 Oracle Database へのポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください。

Binding プロパティ 説明
InboundOperationType 実行する受信操作を指定します。 通知メッセージを受信するには、これを [通知] に設定します。
NotificationPort Oracle データベースからのデータベース変更通知をリッスンするために ODP.NET 開く必要があるポート番号を指定します。
NotificationStatement クエリ通知の登録に使用する SELECT ステートメントを指定します。 アダプターは、指定された SELECT ステートメントの結果セットが変更された場合にのみ通知メッセージを取得します。
NotifyOnListenerStart リスナーの起動時にアダプターがアダプター クライアントに通知を送信するかどうかを指定します。

これらのプロパティの詳細については、「 BizTalk Adapter for Oracle Database Binding Properties の使用」を参照してください。 Oracle データベース アダプターを使用して Oracle データベースから通知を受信する方法の詳細については、詳細を参照してください。

このトピックでは、通知メッセージの受信方法について説明します

このトピックでは、Oracle データベース アダプターが Oracle データベースからの増分データベース変更通知メッセージの受信をサポートする方法を示すために、ACCOUNTACTIVTY テーブルへの変更に関する通知を受信するようにアダプターを構成します。 ACCOUNTACTIVITY テーブルに列 "TID"、"Account"、および "Processed" があるとします。 新しいレコードが追加されるたびに、"処理済み" 列の値が 'n' に設定されます。 そのため、増分通知を取得するには、BizTalk オーケストレーションの一部として次のタスクを実行する必要があります。

  • "Processed" が 'n' であるすべてのレコードの通知を取得します。 これを行うには、通知ステートメントとして SELECT ステートメントを指定します。

  • 特定のレコードの通知を受信したら、"Processed" を 'y' に設定します。 これを行うには、"処理済み" 列を更新するストアド プロシージャ PROCESS_RECORDSを実行します。

    増分通知を受け取る方法を示すために、次の操作を行います。

  • ACCOUNTACTIVITY テーブルの 通知 (受信操作)、 およびPROCESS_RECORDS (送信操作) のスキーマを生成します。

  • 次のオーケストレーションを作成します。

    • 通知メッセージを受信する受信場所。 通知用に構成するには、SELECT ステートメントを次のように指定します。

      SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
      

      Note

      テーブル名とスキーマ名を指定する必要があります。 たとえば、「 SCOTT.ACCOUNTACTIVITY 」のように入力します。

    • 通知が既に送信されている行を更新する送信ポート。 このポートでPROCESS_RECORDS ストアド プロシージャを実行して、通知を受信するレコードの "Processed" 列の値を 'y' に設定します。

      この操作は、処理された行が更新されるように、通知メッセージを受信した後に実行する必要があることに注意してください。 通知応答の取得を待機してから、PROCESS_RECORDS プロシージャを実行するための要求メッセージを手動で削除するオーバーヘッドを取り除くには、オーケストレーション自体内でプロシージャPROCESS_RECORDS要求メッセージを生成します。 これを行うには、オーケストレーション内で メッセージの構築 図形を使用します。

Oracle データベースから通知メッセージを受信する方法

BizTalk Serverを使用して Oracle データベース アダプターを使用して Oracle データベースに対して操作を実行するには、「Oracle Database を使用して BizTalk アプリケーションを開発するための構成要素」で説明されている手順に従います。 通知メッセージを受信するようにアダプターを構成するには、次のタスクを実行します。

  1. BizTalk プロジェクトを作成し、ACCOUNTACTIVITY テーブルの 通知 (受信操作) および PROCESS_RECORDS プロシージャ (送信操作) のスキーマを生成します。 必要に応じて、 InboundOperationTypeNotificationPort、および NotificationStatement バインド プロパティの値を指定できます。

  2. Oracle データベースから通知を受信するためのメッセージを BizTalk プロジェクトに作成します。

  3. PROCESS_RECORDS ストアド プロシージャを実行し、応答メッセージを受信するためのメッセージを BizTalk プロジェクトに作成します。

  4. 次の処理を行うオーケストレーションを作成します。

    • Oracle データベースから通知メッセージを受信します。

    • PROCESS_RECORDS プロシージャを実行するメッセージを作成します。

    • このメッセージを Oracle データベースに送信して、レコードを選択して更新し、応答を受信します。

  5. BizTalk プロジェクトをビルドして展開します。

  6. 物理送受信ポートを作成して BizTalk アプリケーションを構成します。

    Note

    通知メッセージの受信などの受信操作の場合は、一方向の WCF-Custom または受信ポートのみを構成 WCF-OracleDB 必要があります。 双方向の受信ポートは、受信操作ではサポートされていません。

  7. BizTalk アプリケーションを起動します。

    このトピックでは、これらのタスクを実行する手順について説明します。

スキーマの生成

Notification 操作と PROCESS_RECORDS プロシージャのスキーマを生成する必要があります。 スキーマの生成方法の詳細については、「 Visual Studio で Oracle 操作のメタデータを取得 する」を参照してください。 スキーマを生成するときは、次のタスクを実行します。 デザイン時にバインド プロパティを指定しない場合は、最初の手順をスキップします。

  1. スキーマの生成中に、 InboundOperationTypeNotificationPort、および NotificationStatement バインド プロパティの値を指定します。 このバインド プロパティの詳細については、「 BizTalk Adapter for Oracle Database Binding Properties の操作」を参照してください。 バインド プロパティを指定する方法については、「バインディング プロパティ の指定」を参照してください。

  2. コントラクトの種類を [サービス (受信操作)] として選択します。

  3. 通知操作のスキーマを生成します。

  4. コントラクトの種類を [ クライアント (送信操作)] として選択します。

  5. PROCESS_RECORDS プロシージャのスキーマを生成します。 この手順は、 ACCOUNT_PKG パッケージで入手できます。

メッセージとメッセージの種類の定義

前に生成したスキーマでは、オーケストレーション内のメッセージに必要な "型" について説明します。 通常、メッセージは変数であり、対応するスキーマによって定義される型です。 スキーマが生成されたら、BizTalk プロジェクトのオーケストレーション ビューからメッセージにリンクする必要があります。

このトピックでは、3 つのメッセージを作成する必要があります。1 つは Oracle データベースから通知を受信し、もう 1 つはPROCESS_RECORDS プロシージャを実行し、もう 1 つはプロシージャの応答を受信するメッセージです。

メッセージを作成し、スキーマにリンクするには、次の手順を実行します。

  1. BizTalk プロジェクトにオーケストレーションを追加します。 ソリューション エクスプローラーから BizTalk プロジェクト名を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。 BizTalk オーケストレーションの名前を入力し、[ 追加] をクリックします。

  2. BizTalk プロジェクトがまだ開いていない場合は、オーケストレーション ビュー ウィンドウを開きます。 [ 表示] をクリックし、[ その他のウィンドウ] をポイントして、[ オーケストレーション ビュー] をクリックします。

  3. オーケストレーション ビューで、[メッセージ] を右クリックし、[新しいメッセージ] をクリックします。

  4. 新しく作成したメッセージを右クリックし、[ プロパティ ウィンドウ] を選択します。

  5. Message_1[プロパティ] ウィンドウで、次の操作を行います。

    プロパティ 目的
    識別子 NotifyReceive.
    メッセージ型 ドロップダウン リストから [ スキーマ] を展開し、[ OracleNotifyIncremental.OracleDBBinding.Notification] ( OracleNotifyIncremental は BizTalk プロジェクトの名前) を選択します。 OracleDBBinding は、 通知 操作用に生成されるスキーマです。
  6. 手順 3 を繰り返して、2 つの新しいメッセージを作成します。 新しいメッセージの [プロパティ ] ウィンドウで、次の操作を行います。

    識別子を に設定する メッセージの種類を に設定する
    手順 OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSOracleDBBinding1、PROCESS_RECORDS プロシージャ用に生成されたスキーマです。
    ProcedureResponse OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSResponse

オーケストレーションの設定

Oracle データベースから通知メッセージを受信し、通知を受信した行を更新するためにBizTalk Serverを使用するには、BizTalk オーケストレーションを作成する必要があります。 このオーケストレーションでは、アダプターは NotificationStatement バインディング プロパティに指定された SELECT ステートメントに基づいて通知メッセージを受信します。 通知メッセージは FILE の場所で受信されます。 応答を受信すると、オーケストレーションは、通知を受信する行を更新するPROCESS_RECORDS プロシージャを呼び出すメッセージを構築します。 このメッセージの応答は、同じ FILE の場所でも受信されます。

そのため、オーケストレーションには次のものが含まれている必要があります。

  • 通知メッセージを受信する一方向の WCF-Custom または WCF-OracleDB 受信ポート。

  • 双方向の WCF-Custom または WCF-OracleDB PROCESS_RECORDS プロシージャを実行するメッセージを送信するポートを送信します。

  • オーケストレーション内でPROCESS_RECORDSプロシージャを実行するメッセージを作成するメッセージの 構築 図形。

  • 通知メッセージとPROCESS_RECORDSプロシージャの応答を保存するための FILE 送信ポート。

  • 図形を受信および送信します。

    サンプル オーケストレーションは次のようになります。

    cef49414-490a-4bd5-a32d-b3f4cde5950aOracle

メッセージ図形の追加

メッセージ図形ごとに次のプロパティを指定してください。 [図形] 列に一覧表示される名前は、単一のオーケストレーションに表示されるメッセージ図形の名前です。

図形 図形の種類 プロパティ
ReceiveNotification 受信 - 名前を ReceiveNotification に設定する

- Activate をTrue に設定する
SaveNotification Send - 名前を SaveNotification に設定する
SendProcMessage Send - 名前を SendProcMessage に設定する
ReceiveProcResponse 受信 - 名前を ReceiveProcResponse に設定する
SaveProcResponse Send - 名前SaveProcResponse に設定する

メッセージの構築図形の追加

[メッセージの構築] 図形を使用すると、オーケストレーション内で要求メッセージを生成して、PROCESS_RECORDS プロシージャを実行できます。 これを行うには、 メッセージの構築 図形を追加し、その中に メッセージ割り当て 図形をオーケストレーションに追加する必要があります。 この例では、[ メッセージの割り当て] 図形は、プロシージャを実行するために Oracle データベースに送信されるメッセージを生成するコードを呼び出します。 [メッセージの割り当て] 図形では、Oracle データベースに送信するメッセージのアクションも設定します。

メッセージの構築図形の場合は、 Message Constructed プロパティを Procedure に設定します。

応答を生成するコードは、BizTalk プロジェクトと同じ Visual Studio ソリューションの一部である可能性があります。 応答メッセージを生成するためのサンプル コードは次のようになります。

namespace SampleMessageCreator
{
    public class SampleMessageCreator
    {
        private static XmlDocument Message;
        private static string XmlFileLocation;
        private static string ResponseDoc;

        public static XmlDocument XMLMessageCreator()
        {
            XmlFileLocation = "C:\\TestLocation\\MessageIn";
            try
            {
                ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];
            }
            catch (Exception ex)
            {
                Console.WriteLine("Trying to get XML from: " + XmlFileLocation);
                Console.WriteLine("EXCEPTION: " + ex.ToString());
                throw ex;
            }
            //Create Message From XML
            Message = new XmlDocument();
            Message.PreserveWhitespace = true;
            Message.Load(ResponseDoc);
            return Message;
        }
    }
}

上記のコードの抜粋で要求メッセージを生成できるようにするには、変数に指定された XmlFileLocation 場所に XML 要求メッセージ (PROCESS_RECORDS プロシージャ用) が必要です。

Note

プロジェクトをビルドすると、プロジェクト ディレクトリに MessageCreator.dll が作成されます。 この DLL をグローバル アセンブリ キャッシュ (GAC) に追加する必要があります。 また、MessageCreator.dll を参照として BizTalk プロジェクトに追加する必要があります。

次の式を追加して、このコードを [メッセージの割り当て] 図形から呼び出し、メッセージのアクションを設定します。 式を追加するには、[ メッセージの割り当て ] 図形をダブルクリックして式エディターを開きます。

Procedure = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();
Procedure(WCF.Action) = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/PROCESS_RECORDS";

ポートの追加

論理ポートごとに次のプロパティを指定してください。 [ポート] 列に表示される名前は、オーケストレーションに表示されるポートの名前です。

Port プロパティ
OracleNotifyPort - 識別子OracleNotifyPort に設定する

- OracleNotifyPortType に設定する

- 通信パターン一方向に設定する

- 受信する通信方向を設定する
SaveMessagePort - 識別子SaveMessagePort に設定する

- TypeSaveMessagePortType に設定する

- 通信パターン一方向に設定する

- [通信の方向] を [送信] に設定する

- Notify 操作を作成します。 この操作は、通知メッセージに使用されます。

- 操作プロシージャを作成 します。 この操作は、選択応答メッセージに使用されます。
OracleOutboundPort - 識別子OracleOutboundPort に設定する

- TypeOracleOutboundPortType に設定する

- 通信パターンRequest-Response に設定する

- [通信の方向] を [送受信] に設定する

アクション図形のメッセージを指定し、ポートに接続する

次の表では、アクション図形のメッセージを指定し、メッセージをポートにリンクするために設定する必要があるプロパティとその値を指定します。 [図形] 列に表示される名前は、前述のオーケストレーションに表示されるメッセージ図形の名前です。

図形 プロパティ
ReceiveNotification - MessageNotifyReceive に設定する

- 操作OracleNotifyPort.Notify.Request に設定する
SaveNotification - MessageNotifyReceive に設定する

- 操作SaveMessagePort.Notify.Request に設定する
SendProcMessage - メッセージプロシージャに設定する

- 操作OracleOutboundPort.Procedure.Request に設定する
ReceiveProcResponse - MessageProcedureResponse に設定する

- 操作OracleOutboundPort.Procedure.Response に設定する
SaveProcResponse - メッセージProedureResponse に設定する

- 操作SaveMessagePort.Procedure.Request に設定する

これらのプロパティを指定すると、メッセージの図形とポートが接続され、オーケストレーションが完了します。

BizTalk ソリューションをビルドし、BizTalk Serverに展開する必要があります。 詳細については、「オーケストレーションの ビルドと実行」を参照してください。

BizTalk アプリケーションの構成

BizTalk プロジェクトを展開すると、前に作成したオーケストレーションが、BizTalk Server管理コンソールの [オーケストレーション] ウィンドウの下に一覧表示されます。 アプリケーションを構成するには、BizTalk Server管理コンソールを使用する必要があります。 チュートリアルについては、「 チュートリアル: 基本的な BizTalk アプリケーションの展開」を参照してください。

アプリケーションの構成には、次の作業が含まれます。

  • アプリケーションのホストの選択。

  • オーケストレーションで作成したポートを、BizTalk Server管理コンソールの物理ポートにマッピングします。 このオーケストレーションでは、次の操作を行う必要があります。

    • 物理 WCF-Custom または一方向の受信ポート WCF-OracleDB 定義します。 このポートは、Oracle データベースからの通知をリッスンします。 受信ポートを作成する方法については、「 Oracle データベース アダプターへの物理ポート バインドを手動で構成する」を参照してください。 受信ポートには、次のバインド プロパティを指定してください。

      重要

      デザイン時にバインド プロパティを指定した場合は、この手順を実行する必要はありません。 このような場合は、アダプター サービス アドインを使用して作成されたバインド ファイルをインポートすることで、必要なバインド プロパティを設定して受信ポートを作成できます。 詳細については、「 Oracle Database へのポート バインド ファイルを使用して物理ポート バインドを構成する」を参照してください。

      Binding プロパティ
      InboundOperationType これを [通知] に設定します。
      NotificationPort Oracle データベースからのデータベース変更通知をリッスンするために ODP.NET 開く必要があるポート番号を指定します。 これを、Windows ファイアウォールの例外リストに追加する必要があるのと同じポート番号に設定します。 Windows ファイアウォールの例外の一覧にポートを追加する方法については、「」を参照してください https://go.microsoft.com/fwlink/?LinkID=196959

      大事な: これを既定値 -1 に設定した場合は、通知メッセージを受信するために Windows ファイアウォールを完全に無効にする必要があります。
      NotificationStatement これを次のように設定します。

      SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’

      メモ: テーブル名とスキーマ名を指定する必要があります。 たとえば、「 SCOTT.ACCOUNTACTIVITY 」のように入力します。
      NotifyOnListenerStart これを True に設定 します

      さまざまなバインド プロパティの詳細については、「 BizTalk Adapter for Oracle Database Binding Properties の操作」を参照してください。

      Note

      Oracle Database アダプターを使用して受信操作を実行するときに、トランザクション分離レベルとトランザクション タイムアウトを構成することをお勧めします。 これを行うには、WCF-Custom または受信ポートの構成中にサービスの動作 WCF-OracleDB 追加します。 サービスの動作を追加する方法については、「 トランザクション分離レベルとトランザクション タイムアウトの構成」を参照してください。

    • PROCESS_REOCRDS プロシージャを実行するために、物理 WCF-Custom または送信ポートを定義して Oracle データベースにメッセージを送信 WCF-OracleDB。 また、送信ポートでアクションを指定する必要があります。

    • ハード ディスク上の場所と、BizTalk オーケストレーションが Oracle データベースからメッセージを削除する対応するファイル ポートを定義します。 これらは、Oracle データベースから受信した通知メッセージと、WCF-Custom または送信ポートを介して実行するPROCESS_RECORDS プロシージャ WCF-OracleDB メッセージです。

アプリケーションの起動

Oracle データベースから通知メッセージを受信し、PROCESS_RECORDSプロシージャを実行するには、BizTalk アプリケーションを起動する必要があります。 BizTalk アプリケーションを起動する手順については、「オーケストレーションを 開始する方法」を参照してください。

この段階で、次のことを確認します。

  • WCF-Custom または WCF-OracleDB Oracle データベースから通知メッセージを受信する一方向の受信ポートが実行されています。

  • PROCESS_RECORDS プロシージャを実行するための WCF-Custom または WCF-OracleDB 送信ポートが実行されています。

  • Oracle データベースからメッセージを受信する FILE 送信ポートが実行されています。

  • 操作の BizTalk オーケストレーションが実行されています。

操作の実行

ACCOUNTACTIVITY テーブルに既にいくつかのレコードがあるとします。 また、PROCESS_RECORDSプロシージャを実行する XML メッセージが C:\TestLocation\MessageIn で使用できることを確認します。 XML ファイルは次のようになります。

<PROCESS_RECORDS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>

BizTalk オーケストレーションが開始されると、次の一連のアクションが同じ順序で実行されます。

  • アダプターは、次のような通知メッセージを受信します。

    \<?xml version="1.0" encoding="utf-8" ?\>
    <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
      <Info>ListenerStarted</Info>
      <Source>OracleDBBinding</Source>
      <Type>Startup</Type>
    </Notification>
    

    このメッセージは、通知メッセージを受信するための受信ポートが開始されたことを通知します。 要素の値 <Info> は "ListnerStarted" であることに注意してください。

  • アダプターは、PROCESS_RECORDS プロシージャを実行します。 Oracle データベースからの次の応答は、 プロシージャ用です。

    <?xml version="1.0" encoding="utf-8" ?>
    <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
      <TABLE_DATA>
        <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element msdata:IsDataSet="true" name="NewDataSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element minOccurs="0" name="TID" type="xs:decimal" />
                      <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
                      <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
        <NewDataSet xmlns="">
          <NewTable>
            <TID>1</TID>
            <ACCOUNT>100001</ACCOUNT>
            <PROCESSED>n</PROCESSED>
          </NewTable>
          <NewTable>
            ......
            ......
          </NewTable>
          ......
          ......
        </NewDataSet>
        </diffgr:diffgram>
      </TABLE_DATA>
    </PROCESS_RECORDSResponse>
    

    これは、PROCESS_RECORDS プロシージャの一部として実行される SELECT ステートメントの応答です。

  • また、PROCESS_RECORDSプロシージャは、PROCESSED を 'y' に設定するように行を更新します。 そのため、アダプターは Update 操作に関する別の通知を受け取ります。

    <?xml version="1.0" encoding="utf-8" ?>
    <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/">
      <Details>
        <NotificationDetails>
          <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName>
          <Info>32</Info>
          <QueryId>0</QueryId>
        </NotificationDetails>
      </Details>
      <Info>Update</Info>
      <ResourceNames>
        <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string>
      </ResourceNames>
      <Source>Data</Source>
      <Type>Change</Type>
    </Notification>
    

    要素に Info "Update" が含まれていることに注意してください。

  • 2 番目の通知の後、アダプターは再びPROCESS_RECORDSプロシージャを実行します。 ただし、PROCESSED 列が 'n' に設定されているレコードがないため、プロシージャは次のような空の応答を返します。

    <?xml version="1.0" encoding="utf-8" ?>
    <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
      <TABLE_DATA>
        <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element msdata:IsDataSet="true" name="NewDataSet">
            <xs:complexType>
              <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element minOccurs="0" name="TID" type="xs:decimal" />
                      <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
                      <xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet xmlns="" />
        </diffgr:diffgram>
      </TABLE_DATA>
    </PROCESS_RECORDSResponse>
    

ベスト プラクティス

BizTalk プロジェクトを展開して構成したら、構成設定をバインド ファイルと呼ばれる XML ファイルにエクスポートできます。 バインド ファイルを生成したら、ファイルから構成設定をインポートして、同じオーケストレーションの送信ポートと受信ポートを作成する必要がないようにすることができます。 バインド ファイルの詳細については、「 Oracle データベース アダプターのバインドを再利用する」を参照してください。

参照

BizTalk Serverを使用した Oracle データベース変更通知の受信