ヘッダーをスキップ
Oracle Fusion Middleware Oracle SOA Suite開発者ガイド
11g リリース1(11.1.1)
B56238-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

32 Oracle BAMとSOAコンポジット・アプリケーションの統合

Oracle BAMには、Oracle JDeveloperのSOAコンポジット・エディタで使用できるアダプタが用意されています。 この章では、Oracle BAMアダプタとOracle BAMセンサー・アクションを使用して、SOAコンポジット・アプリケーションをOracle BAMと統合する方法について説明します。

項目は次のとおりです。

32.1 Oracle BAMとSOAコンポジット・アプリケーションの統合の概要

Oracle BAMアダプタは、Oracle BAMサーバーにデータとイベントを送信するためにJava EEクライアントから使用できるJava Connector Architecture(JCA)準拠のアダプタです。Oracle BAMアダプタでは、Oracle BAMデータ・オブジェクトに対する挿入、更新、アップサートおよび削除の各操作がサポートされています。

Oracle BAMアダプタは、これらの操作をRemote Method Invocation(RMI)コール(同じファームにデプロイされている場合)、直接Javaオブジェクト起動(同じコンテナにデプロイされている場合)、またはSimple Object Access Protocol(SOAP)(両者の間にファイアウォールがある場合)を介して実行できます。

Oracle BAMアダプタは、これらのいずれかの接続プールを提供するために、Oracle WebLogic Server管理コンソール内で構成されます。 Oracle BAMアダプタには、SOAコンポジット・アプリケーションからOracle BAMアクティブ・データ・キャッシュにデータを送信できる方法が次の3通りあります。

また、アクティブなOracle BAMサーバーの移行が自動的にサポートされるため、メッセージを失うことなくアクティブなサーバーと常に通信します。

Oracle BAMアダプタには、SOAコンポジット・アプリケーションでOracle BAMサーバーにデータを送信できる方法が次の3通りあります。

32.2 Oracle BAMアダプタの構成

Oracle BAMサーバーとのランタイム接続にアダプタを使用(さらにBPELでOracle BAMセンサー・アクションとともに使用)する場合は、Oracle BAMアダプタのJava Naming and Directory Interface(JNDI)接続プールを構成する必要があります。 構成に関する詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMアダプタの構成に関する項を参照してください。

Oracle BAMアダプタのプロパティで構成するJDNI名をメモしておき、Oracle JDeveloperのOracle BAMアダプタ・ウィザードとOracle BAMセンサー・アクションの構成で使用できるようにしてください。

32.3 Oracle BAMサーバーへの設計時接続の作成

Oracle JDeveloperでのアプリケーションの設計中に、使用可能なデータ・オブジェクトを参照し、トランスフォーメーションを作成するには、Oracle BAMサーバーへの接続を作成する必要があります。


注意:

Oracle BAMサーバー接続の作成には、「表示」「リソース・パレット」の順に選択したときに表示される「リソース・パレット」を使用しないでください。 接続は、アプリケーション・スコープ内に作成する必要があります。

32.3.1 Oracle BAMサーバーへの接続の作成方法

Oracle BAMサーバーへの接続は、Oracle BAMサーバーで使用可能なデータ・オブジェクトを参照し、これらのデータ・オブジェクトにデータをパブリッシュするために作成します。

Oracle BAMサーバーへの接続を作成する手順は、次のとおりです。

  1. Oracle JDeveloperの「ファイル」メイン・メニューから、「新規」を選択します。

    「新規ギャラリ」ダイアログ・ボックスが表示されます。

  2. 「一般」カテゴリから、「接続」を選択します。

  3. 「項目」リストから、「BAM接続」を選択し、「OK」をクリックします。

    BAM接続ウィザードが表示されます。

  4. 必ず、「アプリケーション・リソース」が選択されているようにしてください。

  5. 接続の名前を指定します。

  6. 「次へ」をクリックします。

  7. 表32-1に記載されているOracle BAMサーバー・ホストの接続情報を入力します。

    表32-1 Oracle BAMサーバー接続情報

    フィールド 説明

    BAM Webホスト

    Oracle BAMレポート・サーバーとWebアプリケーションがインストールされているホストの名前を入力します。 ほとんどの場合、Oracle BAM Webアプリケーション・ホストとOracle BAMサーバー・ホストは同一です。

    BAMサーバー・ホスト

    Oracle BAMサーバーがインストールされているホストの名前を入力します。

    ユーザー名

    Oracle BAMサーバー・ユーザー名を入力します。

    パスワード

    ユーザー名のパスワードを入力します。

    HTTPポート

    ポート番号を入力するか、またはデフォルト値9001をそのまま使用します。 これは、Oracle BAM Webアプリケーション・ホスト用のHTTPポートです。

    JNDIポート

    ポート番号を入力するか、またはデフォルト値9001をそのまま使用します。 JNDIポートは、Oracle BAMサーバーの一部であるOracle BAMレポート・キャッシュ用です。

    HTTPSの使用

    設計時にOracle BAMサーバーへの接続にセキュアなHTTP(HTTPS)を使用する場合は、このチェック・ボックスを選択します。選択しない場合は、HTTPが使用されます。


  8. 「次へ」をクリックします。

  9. 「接続のテスト」をクリックして、接続をテストします。接続に成功した場合は、次のメッセージが表示されます。

    Passed.
    
  10. 「終了」をクリックします。

32.4 SOAコンポジット・アプリケーションでのOracle BAMアダプタの使用

Oracle BAMアダプタは、SOAコンポジット・アプリケーションによるSOAコンポジット・アプリケーション外部のOracle BAMサーバーへのデータ送信を可能にする参照として使用されます。

32.4.1 SOAコンポジット・アプリケーションでのOracle BAMアダプタの使用方法

SOAコンポジット・アプリケーションによるSOAコンポジット・アプリケーション外部のOracle BAMサーバーへのデータ送信を可能にする、Oracle BAMアダプタ参照を追加できます。

Oracle BAMアダプタ参照を追加する手順は、次のとおりです。

  1. 「コンポーネント・パレット」で「SOA」を選択します。

  2. 「BAMアダプタ」を右側のスイムレーンにドラッグします。

    これにより、アダプタ構成ウィザードが起動されます。

  3. 「サービス名」ページで、「サービス名」「説明」(オプション)を入力します。

  4. 「データ・オブジェクト操作とキー」ページで、次の手順を実行します。

    1. 「BAMデータ・オブジェクト・チューザ」ダイアログ・ボックスを使用して、「データ・オブジェクト」を選択します。

      「参照」をクリックすると、データ・オブジェクト・チューザ・ダイアログ・ボックスが開き、使用可能なOracle BAMサーバー接続を「BAMデータ・オブジェクト・エクスプローラ」ツリーで参照できます。データ・オブジェクトを選択して「OK」をクリックします。

    2. リストから「操作」を選択します。

      「挿入」では、データ・オブジェクトに行が追加されます。

      「アップサート」では、データ・オブジェクトに行が存在する場合は、既存の行に新規データが挿入されます。行が存在しない場合は、新規行が作成されます。データ・オブジェクトの行をアップサートするには、「選択可能」列からキーを選択する必要があります。

      「削除」では、データ・オブジェクトから行が削除されます。データ・オブジェクトの行を削除するには、「選択可能」列からキーを選択する必要があります。

      「更新」では、データ・オブジェクト内の既存の行に新規データが挿入されます。データ・オブジェクトの行を更新するには、「選択可能」列からキーを選択する必要があります。

    3. SOAコンポジット・アプリケーションにおけるこの操作の適切な表示名を、「操作名」フィールドに指定します。

    4. 「有効バッチ」を選択するには、該当するチェック・ボックスを選択します。

      Oracle BPEL Process ManagerランタイムのOracle BAMアダプタによってメモリーにキャッシュされるデータは、Oracle BAMサーバーに定期的にフラッシュ(送信)されます。 自動定義された下限値から上限値までの範囲内のデータ・オブジェクトがキャッシュ内にいくつか存在する場合は、Oracle BAMコンポーネントによって、バッチ・タイムアウト前にデータを送信するかどうかが決定されます。

      バッチ処理プロパティは、BAMCommonConfig.xml内で構成されます。詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』を参照してください。

  5. 「JNDI名」ページで、Oracle BAMサーバー接続の「JNDI名」を指定します。

    JNDI名は、Oracle WebLogic Server管理コンソール内で構成されます。 詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMアダプタの構成に関する項を参照してください。

  6. 「終了」をクリックします。

32.5 BPELプロセスでのOracle BAMアダプタの使用

プロセスの1つのステップとしてOracle BAMにデータを送信するには、Oracle BAMアダプタをBPELプロセスでパートナ・リンクとして使用します。

詳細は、第5.3項「パートナ・リンクの概要」を参照してください。

32.5.1 BPELプロセスでのOracle BAMアダプタの使用方法

Oracle BAMアダプタをBPELプロセスに追加すると、プロセスの1つのステップとしてOracle BAMにデータを送信できます。 Oracle BAMアダプタは、パートナ・リンクとして使用され、BPELプロセスのアクティビティに接続されます。

Oracle BAMパートナ・リンクを追加する手順は、次のとおりです。

  1. Oracle JDeveloperのSOAコンポジット・エディタで、BPELプロセスのアイコンをダブルクリックして、そのプロセスをBPEL Process Designerで開きます。

  2. 「コンポーネント・パレット」で「BPELサービス」パネルを開きます。

  3. Oracle BAMアダプタをBPEL Process Designerの右側の「パートナ・リンク」スイムレーンにドラッグ・アンド・ドロップします。

  4. アダプタ構成ウィザードで、「サービス名」フィールドに表示名を入力し、「次へ」をクリックします。

    ウィザードが完了すると、「アプリケーション・ナビゲータ」に、BPELプロセスまたはOracle Mediatorメッセージ・フロー用のWeb Services Description Language(WSDL)ファイルがこの名前で表示されます。このファイルには、このウィザードで指定したアダプタ構成設定が含まれます。

  5. 「データ・オブジェクト操作とキー」ページで、次の手順を実行します。

    1. 「BAMデータ・オブジェクト・チューザ」ダイアログ・ボックスを使用して、「データ・オブジェクト」を選択します。

      「参照」をクリックすると、データ・オブジェクト・チューザ・ダイアログ・ボックスが開き、使用可能なOracle BAMサーバー接続を「BAMデータ・オブジェクト・エクスプローラ」ツリーで参照できます。データ・オブジェクトを選択して「OK」をクリックします。

    2. リストから「操作」を選択します。

      「挿入」では、データ・オブジェクトに行が追加されます。

      「アップサート」では、データ・オブジェクトに行が存在する場合は、既存の行に新規データが挿入されます。行が存在しない場合は、新規行が作成されます。

      「削除」では、データ・オブジェクトから行が削除されます。

      「更新」では、データ・オブジェクト内の既存の行に新規データが挿入されます。

    3. SOAコンポジット・アプリケーションにおけるこの操作の適切な表示名を、「操作名」フィールドに指定します。

    4. 「有効バッチ」を選択するには、該当するチェック・ボックスを選択します。

      Oracle BPEL Process ManagerランタイムのOracle BAMアダプタによってメモリーにキャッシュされるデータは、Oracle BAMサーバーに定期的にフラッシュ(送信)されます。 自動定義された下限値から上限値までの範囲内のデータ・オブジェクトがキャッシュ内にいくつか存在する場合は、Oracle BAMコンポーネントによって、バッチ・タイムアウト前にデータを送信するかどうかが決定されます。

      バッチ処理プロパティは、BAMCommonConfig.xml内で構成されます。詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』を参照してください。

  6. 「JNDI名」ページで、Oracle BAMサーバー接続の「JNDI名」を指定します。

    JNDI名は、Oracle WebLogic Server管理コンソール内で構成されます。 詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMアダプタの構成に関する項を参照してください。

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

  8. BPELプロセスにタイプ「メッセージ・タイプ」の新規プロセス変数を作成し、「タイプ・チューザ」ダイアログ・ボックスを参照して、Oracle BAMサーバー上の書込み先となるデータ・オブジェクトのWDSLを選択します。

    Oracle BPEL Process Managerの使用方法の詳細は、第5章「Oracle BPEL Process Managerの基本操作」を参照してください。

  9. BPELプロセスで、作成した新規変数にソース・データをマップするために使用できるアクティビティを追加します。

  10. BPELプロセスで、作成したOracle BAMアダプタ・パートナ・リンクにデータを送信するinvokeアクティビティを追加します。作成した変数を入力変数として追加します。

  11. プロジェクト・ファイルをすべて保存します。

32.6 BPELセンサーとOracle BAMの統合

Oracle BPEL Process Managerでセンサー・アクションを作成し、センサー・データをOracle BAMサーバーの既存のデータ・オブジェクトにパブリッシュできます。 センサー・アクションを作成するときは、データの取得元のOracle BPEL Process Manager変数センサーまたはアクティビティ・センサー、およびセンサー・データをパブリッシュするOracle BAMサーバーのデータ・オブジェクトを選択できます。

Oracle BAMアダプタでは操作のバッチ処理がサポートされていますが、バッチ処理を使用した場合の動作は、バッチ処理を使用しない場合の動作と異なります。 Oracle BAMアダプタがBPELセンサー・アクションに適用されるとき、Oracle BAMセンサー・アクションはBPELトランザクションの一部ではありません。 バッチ処理が有効な場合、BPELはOracle BAMの操作が完了するのを待機しません。 これは非同期コールです。

バッチ処理が無効な場合、BPELはOracle BAMの操作が完了するのを待機し、完了後にBPELプロセスを処理しますが、Oracle BAMで例外が発生した場合、ロールバックまたは停止は行われません。 Oracle BAMセンサー・アクションは、BPELと同じセンサー・アクション・ロガーにメッセージを記録します。 バッチ処理の動作に関する詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMのバッチ処理プロパティの構成に関する項を参照してください。

これらの手順は、Oracle BAMがインストールおよび構成済であることを前提にしています。


注意:

コネクション・ファクトリの構成は、Oracle BAMセンサー・アクションの使用前に完了している必要があります。 また、Oracle BAMアダプタでプレーン・テキストのユーザー名とパスワードではなく、資格証明を使用している場合、Oracle BAMアダプタ(BPELで使用するOracle BAMセンサー・アクションを含む)でOracle BAMサーバーに接続するには、資格証明も設定およびマップしている必要があります。 詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMアダプタの構成に関する項を参照してください。

32.6.1 センサーの作成方法

Oracle BAMセンサー・アクションを作成するには、最初にBPELプロセスにセンサーを作成する必要があります。 Oracle BAMセンサー・アクションを作成する前に、センサーを作成する必要があります。

  • 変数センサー

    制限: 変数センサーの変数は、スタンドアロンXSDで定義する必要があります。 この変数はWSDLファイル内でインラインで定義しないでください。 変数にメッセージ・パートがある場合、そのメッセージ・パートは1つのみである必要があります。

  • センサー変数を1つのみ含むアクティビティ・センサー

    制限: センサー・データを単一のOracle BAMサーバーのデータ・オブジェクトにマップするため、アクティビティ・センサーに使用できる変数は1つのみです。 変数センサーの制限もすべて適用されます。


注意:

これらのルールに従わないセンサーは、Oracle BAMセンサー・アクションの構成ダイアログ・ボックスからフィルタ処理されます。 また、センサーが制限に従って作成された場合でも、変数が削除された場合(センサーが無効になります)、センサーはOracle BAMセンサー・アクションの構成ダイアログ・ボックスに表示されません。

センサーの作成方法の詳細は、第17.2項「Oracle JDeveloperでのセンサーとセンサー・アクションの構成」を参照してください。

32.6.2 Oracle BAMセンサー・アクションの作成方法

Oracle BAMセンサー・アクションを作成するときは、データの取得元のBPEL変数センサーまたはアクティビティ・センサーを選択し、センサー・データをパブリッシュするOracle BAMサーバーのデータ・オブジェクトを選択します。

Oracle BAMセンサー・アクションを作成する手順は、次のとおりです。

  1. Oracle JDeveloperのBPELプロセスに移動します。

  2. 「構造」ウィンドウで、「センサー・アクション」を右クリックします。

    「構造」ウィンドウが開いていない場合は、「表示」「構造ウィンドウ」の順に選択して開きます。

  3. 「作成」「BAMセンサー・アクション」の順に選択します。

    「センサー・アクションの作成」ダイアログ・ボックスが表示されます。

    図32-1 Oracle BAMのセンサー・アクションの作成ダイアログ・ボックス

    図32-1の説明は次にあります。
    「図32-1 Oracle BAMのセンサー・アクションの作成ダイアログ・ボックス」の説明

  4. 表32-2に記載されている詳細を入力します。

    表32-2 「センサー・アクションの作成」ダイアログ・ボックスのフィールドと値

    フィールド 説明

    アクション名

    センサー・アクションに対する、識別可能な一意の名前を入力します。

    センサー

    監視するBPELセンサーを選択します。 これは、センサー・データをOracle BAMサーバーのデータ・オブジェクトにマッピングするために、第32.6.1項「センサーの作成方法」で作成したセンサーです。

    データ・オブジェクト

    「参照」アイコンをクリックして「BAMデータ・オブジェクト・チューザ」ダイアログ・ボックスを開き、センサー・データをパブリッシュするOracle BAMサーバーのデータ・オブジェクトを選択します。

    データ・オブジェクトを選択するには、Oracle BAMサーバーへの接続を作成しておく必要があります。そのためには、「BAMデータ・オブジェクト・チューザ」ダイアログ・ボックスの右上隅にあるアイコンをクリックします。

    操作

    Oracle BAMサーバー・データベースの行に対する操作として、「削除」「更新」「挿入」または「アップサート」を選択します。「アップサート」では、最初に行の存在を確認し、存在している場合は更新します。行が存在しない場合は、挿入されます。

    使用可能なキー/選択したキー

    「削除」「更新」または「アップサート」操作を選択した場合は、このセンサー・オブジェクトに一致する行を決定するためのキーとして使用する、Oracle BAMサーバー・データベースの列名も選択する必要があります。キーは1つの列の場合もあり、複数の列で構成されるコンポジット・キーの場合もあります。キーを選択して「>」ボタンをクリックします。 すべてを選択するには、「>>」ボタンをクリックします。

    マップ・ファイル

    「センサー」リストで選択した)センサー・データと(「データ・オブジェクト」リストで選択した)Oracle BAMサーバー・データ・オブジェクト間のマッピングを作成するファイル名を指定します。 マッパー・ダイアログ・ボックスは、「マッピングの作成」アイコン(2番目のアイコン)または「マッピングの編集」アイコン(3番目のアイコン)をクリックして起動することもできます。

    BAMコネクション・ファクトリJNDI

    Oracle BAMサーバーのコネクション・ファクトリのJNDI名を指定します。

    JNDI名は、Oracle WebLogic Server管理コンソール内で構成されます。 詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMアダプタの構成に関する項を参照してください。

    有効バッチ

    Oracle BPEL Process ManagerランタイムのOracle BAMコンポーネントによって累積されるデータは、Oracle BAMサーバーに定期的にフラッシュ(送信)されます。 自動定義された下限値から上限値までの範囲内のデータ・オブジェクトがキュー内にいくつか存在する場合は、Oracle BAMコンポーネントによって、バッチ・タイムアウト前にデータを送信するかどうかが決定されます。

    バッチ処理が有効な場合、パフォーマンスは大幅に向上しますが、トランザクション保証はありません。 BPELプロセスは、データがOracle BAMサーバーに到達するのを待機せずに実行を続行します。

    バッチ処理が無効な場合、BPELプロセスは、Oracle BAMサーバーがレコード操作の完了を確認するまで待機します。ただし、エラーが発生した場合、Oracle BAMサーバーからの例外はログに記録され、BPELプロセスは処理を続行します。 BPELでは、Oracle BAMで例外が発生した場合、操作のロールバックまたは停止は行われません。

    バッチ処理の動作に関する詳細は、『Oracle Fusion Middleware Oracle SOA Suite管理者ガイド』のOracle BAMのバッチ処理プロパティの構成に関する項を参照してください。


    図32-1に、「センサー・アクションの作成」ダイアログ・ボックスおよび選択したデータ・オブジェクトを示します。


    警告:

    Oracle BPEL Serverを再起動すると、バッチ処理中のメッセージはすべて失われます。すべてのメッセージのバッチ処理が完了してからOracle BPEL Serverを再起動するようにしてください。



    注意:

    「センサー・アクションの作成」ダイアログ・ボックスで、「マッピングの作成」「マッピングの編集」または「OK」ボタンをクリックした後は、BPELファイルを明示的に保存する必要があります。

  5. 「OK」をクリックして「センサー・アクションの作成」ダイアログ・ボックスを閉じます。

32.6.3 Oracle BAMセンサー・アクションを無効にする方法

BPELセンサー・アクションは通常、Oracle Enterprise Manager Fusion Middleware Controlコンソールを使用して無効化しますが、Oracle BAMセンサー・アクションはFusion Middleware Controlコンソールでは管理できません。

Oracle BAMセンサー・アクションを無効にする手順は、次のとおりです。

  1. Oracle JDeveloperで、Oracle BAMセンサー・アクションが含まれているプロジェクトを開きます。

  2. エディタでBPEL_PROCESS_NAME_sensorAction.xmlファイルを開きます(ファイルが表示されていない場合は、プロジェクト・ツリーをリフレッシュします)。

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

  3. 無効にするセンサー・アクションを検索します。 Oracle BAMセンサー・アクションのみを検索する場合は、publishType="BAM"属性で検索できます。

  4. 無効にするセンサー・アクションの<action>要素で、enabled属性をfalseに設定します。

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

  5. ファイルを更新して保存した後は、アプリケーションを再デプロイする必要があります。