ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル
11g リリース1(11.1.1)
B56240-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 OrderPendingEventメディエータ・サービス・コンポーネントの追加

ビジネス・イベントは、ビジネス環境における状態変化の結果として送信されるメッセージ・データで構成されます。ビジネス・イベントがパブリッシュされると、他のサービス・コンポーネントはそのビジネス・イベントをサブスクライブできます。

この章では、Oracle Mediatorを使用してビジネス・イベントにサブスクライブする方法を説明します。 次のタスクを実行します。

この章の内容は次のとおりです。

7.1 タスク1: NewOrderSubmittedビジネス・イベントの作成

NewOrderSubmittedビジネス・イベントを作成する手順は、次のとおりです。

  1. 「composite.xml」タブをクリックして、SOAコンポジット・エディタを表示します。

  2. イベント定義の作成ウィザードを、次の方法のいずれかで起動します。

    1. SOAコンポジット・エディタで、デザイナの上にある「イベント定義の作成」アイコンをクリックします。

      bp_edn1.gifの説明は次にあります。
      図版bp_edn1.gifの説明

    2. 「ファイル」メイン・メニューから、「新規作成」「SOA層」「サービス・コンポーネント」「イベント定義」の順に選択します。

    「イベント定義の作成」ダイアログが表示されます。

  3. 「イベント定義名」フィールドにOrderEOと入力します。 Oracle JDeveloperによりNewOrderSubmittedイベントがorderEO.edlファイルに保存されます。

  4. 「ネームスペース」フィールドのデフォルト設定はそのままにします。

  5. 「イベントの追加」アイコンをクリックしてイベントを追加します。

    「イベントの追加」ダイアログが表示されます。

  6. 次の値を入力します。

    要素
    要素
    1. 「参照」アイコンをクリックしてペイロードを選択します。

      「タイプ・チューザ」ダイアログが表示されます。

    2. 「プロジェクトのスキーマ・ファイル」「OrderEO.xsd」の順に開き、「NewOrderSubmittedInfo」を選択します。 これは、第5.2項OrderProcessor BPELプロセスの作成時にサービスをコピーする際にインポートしたスキーマ・ファイルです。

    3. 「OK」をクリックします。

    名前 NewOrderSubmitted

  7. 「OK」をクリックします。

  8. 「イベント定義の作成」ダイアログで、「OK」をクリックします。

    NewOrderSubmittedイベントがあるビジネス・イベント・エディタが表示されます。

  9. 「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。

  10. 「OrderEO.edl」タブの「X」をクリックして、定義ファイルを閉じます。

    ビジネス・イベントはMDSにパブリッシュされ、SOAコンポジット・エディタに戻ります。

7.2 タスク2: NewOrderSubmittedビジネス・イベントをサブスクライブするメディエータ・サービス・コンポーネントの作成

NewOrderSubmittedビジネス・イベントをサブスクライブしてOrderProcessor BPELプロセスを開始する手順は、次のとおりです。

  1. 「メディエータ」サービス・コンポーネントを、SOAコンポジット・エディタにドラッグします。このサービス・コンポーネントを使用して、ビジネス・イベントをサブスクライブできます。

  2. 「名前」フィールドにOrderPendingEventと入力します。

  3. 「テンプレート」リストから、「イベントのサブスクライブ」を選択します。

    ウィンドウがリフレッシュされ、イベント・テーブルが表示されます。

  4. 「新規イベントのサブスクライブ」アイコンをクリックして、「イベント・チューザ」ダイアログを表示します。

  5. 「NewOrderSubmitted」イベントが選択されている状態で、「OK」をクリックします。

    「メディエータの作成」ダイアログに戻ります。

    bp_edn3.gifの説明は次にあります。
    図版bp_edn3.gifの説明

    「1つのみ」という項目は、独自のグローバルな(つまり、JTA)トランザクションでイベントがサブスクライバに配信されることを指定します。 イベント処理が完了すると、そのトランザクションのコンテキスト内でサブスクライバによって行われた変更はすべてコミットされます。サブスクライバが失敗すると、トランザクションはロールバックされます。失敗したイベントは、ホスピタル・キューに配信されるまで、設定された回数だけ再試行されます。

    「$publisher」は、イベントにセキュリティ・ロールが必要であることを指定します。

  6. 「メディエータの作成」ダイアログで、「OK」をクリックします。

    SOAコンポジット・エディタにOrderPendingEventメディエータが表示されます。左側のアイコンは、メディエータがイベント・サブスクリプションに対して構成されていることを示しています。

    bp_edn4.gifの説明は次にあります。
    図版bp_edn4.gifの説明

  7. 「ソース」をクリックします。

    次のソース・コードには、メディエータ・サービス・コンポーネントのサブスクライブされたイベントの詳細があります。

      <component name="OrderPendingEvent">
        <implementation.mediator src="OrderPendingEvent.mplan"/>
        <business-events>
          <subscribe xmlns:sub1="http://schemas.oracle.com/events/edl/OrderEO"
                     name="sub1:NewOrderSubmitted" consistency="oneAndOnlyOne"
                     runAsRoles="$publisher"/>
        </business-events>
      </component>
    

7.3 タスク3: OrderProcessor BPELプロセスへのOrderPendingEventメディエータ・サービス・コンポーネントのルーティング

OrderPendingEventメディエータ・サービス・コンポーネントからOrderProcessor BPELプロセスへのルーティング・ルールを作成する手順は、次のとおりです。

  1. 「設計」タブに戻り、「OrderPendingEvent」からOrderProcessor 参照ハンドルにワイヤをドラッグします。

    wire3.gifの説明は次にあります。
    図版wire3.gifの説明

  2. 「OrderPendingEvent」タブをダブルクリックして「メディエータ」エディタにルールを表示します。

    neworder.gifの説明は次にあります。
    図版neworder.gifの説明

  3. OrderPendingEventメディエータ・サービス・コンポーネントに使用されるトランスフォーメーションを変更し、OrderProcessor BPELプロセスがNewOrderSubmittedビジネス・イベントから入力を受信するようにします。

    1. 「次を使用して変換」フィールドの隣のトランスフォーメーション・アイコンをクリックします。

      「イベント・トランスフォーメーション・マップ」ダイアログが表示されます。

    2. 「新規マッパー・ファイルの作成」を選択し、付随するフィールドでデフォルト名のNewOrderSubmitted_To_WarehouseRequest.xslを使用して、「OK」をクリックします。

      データ・マッパーが表示されます。

    3. 「ソース: OrderEO.xsd」(左)側の「OrderID」をクリックし、「XSLTファイル: OrderProcessor.wsdl」(右)側の「ns1:WarehousreRequest」「ns1:orderId」にドラッグします。 ネームスペース番号の値(例: ns1ns2)は異なる場合があります。

      データ・マッパー・ダイアログは、次のように表示されます。

      mapper6.gifの説明は次にあります。
      図版mapper6.gifの説明

    4. 「ファイル」メイン・メニューから「すべて保存」を選択して、作業内容を保存します。

    5. 「NewOrderSubmitted_To_WarehouseRequest.xsl」タブの「X」をクリックして、データ・マッパーを閉じます。

      「OrderPendingEvent.mplan」タブに戻ると、「ルーティング・ルール」セクションでは、トランスフォーメーションが次のように更新されて表示されています。

      neworder2.gifの説明は次にあります。
      図版neworder2.gifの説明