AquaLogic Service Bus Console の使い方

     前  次    新しいウィンドウで目次を開く     
ここから内容

プロキシ サービス : アクション

プロキシ サービスは、AquaLogic Service Bus サーバ上にローカルに実装されるサービスの定義です。アクションを使用すると、パイプラインやプロキシ サービスのルート ノードのメッセージ フローを設計およびコンフィグレーションできます。

ここでは、パイプラインのステージおよびルート ノードへのアクションの追加、AquaLogic Service Bus で使用できる各アクションについて説明します。このトピックには、以下の節があります。

アクションの追加

[ステージ コンフィグレーションの編集] ページでは、アクションを追加できます。アクションとは、プロキシ サービス内のメッセージ フローでのメッセージの処理を定義するパイプライン ステージおよびルート ノードとブランチ ノードの要素です。メッセージ フローの詳細については、「メッセージ フローの概要」を参照してください。

注意 : アクションを追加する前に、パイプライン ペア ノードを作成し、ステージを追加する必要があります。詳細については、「パイプライン ペア ノードの追加」および「ステージの追加」を参照してください。アクションをルート ノードやエラー ハンドラに追加することもできます。詳細については、「ルート ノード アクションの追加」および「エラー ハンドラ アクション」を参照してください。
アクションを追加するには
  1. まだセッションを作成していない場合は、左側のナビゲーション ペインで、[Change Center] の下にある [作成] をクリックして、現在のコンフィグレーションに変更を加えるための新しいセッションを作成します。詳細については、「Change Center の使用」を参照してください。
  2. [プロキシ サービスの概要] ページで、対象プロキシ サービスの [メッセージ フローの編集] アイコンをクリックします。または、[プロジェクト エクスプローラ] モジュールを使用している場合は、選択したプロジェクトまたはフォルダのリソースのリストで該当するプロキシ サービスの [メッセージ フローの編集] アイコンをクリックします。
  3. [メッセージ フローの編集] ページが表示されます。

  4. 既存のパイプラインを展開して、要求パイプラインと応答パイプラインから成るパイプラインを表示します。
  5. アクションを追加する既存のステージの [ステージ] アイコンをクリックし、[編集] をクリックしてから [ステージ] をクリックします。[ステージ コンフィグレーションの編集] ページが表示されます。
  6. [アクションの追加] をクリックし、アクションのタイプを選択して、アクションを追加します。
  7. 次の表は、AquaLogic Service Bus メッセージ フローについてコンフィグレーションできるアクションと、そのアクションについて説明する (コンフィグレーション方法も含む) トピックへのリンクを示しています。

    表 18-1 メッセージ フローのアクション
    アクション
    説明
    通信
     
    Xquery 式によって識別されたサービスにメッセージをパブリッシュする。
    静的に指定されたサービスにメッセージをパブリッシュする。
    ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュする。切り替え式の条件ロジックを使用して、どのサービスをパブリッシュに使用するか実行時に決定する。
    発信要求の URI、サービスの品質、モード、および再試行パラメータの一部またはすべてを変更する。
    AquaLogic Service Bus に登録済みのプロキシ サービスまたはビジネス サービスの同期 (ブロック) コールアウトをコンフィグレーションする。
    メッセージの転送ヘッダの値を設定する。
    フロー制御
     
    値のシーケンスを反復処理してアクションのブロックを実行する。
    XQuery 式のブール結果に基づき、1 つまたは複数のアクションを条件付きで実行する。
    指定したエラー コードと説明を使用して例外を発生させる。
    呼び出し元に即時に返信されるように指定する。成功時または失敗時の返信を選択できる。
    エラー ハンドラによってエラーが処理された後、メッセージ フローを再開する。
    実行時に現在のステージの実行がスキップされて、処理がメッセージ フローの次のステージに進むように指定する。
    メッセージ処理
     
    コンテキスト変数に XQuery 式の結果を割り当てる。
    コンテキスト変数や、XPath 式で指定されたノードのセットを削除する。
    XPath 式で選択したノードを基準に、指定した位置に XQuery 式の結果を挿入する。
    パイプラインから Java メソッドを呼び出す。
    パイプラインで 非 XML から XML、または XML から 非 XML に変換する。
    コンテンツを変更せずに、XPath 式で選択した要素の名前を変更する。
    XPath 式で指定されたノードまたはノードのコンテンツを置換する。
    XML スキーマ要素または WSDL リソースに対して、XPath 式で選択した要素を検証する。
    レポート
     
    パイプラインのメッセージ コンテキストに基づいて、アラート通知を送信する。
    ログに記録するメッセージを作成する。
    プロキシ サービスのメッセージ レポートを有効にする。

ステージ コンフィグレーションの編集

アクションをコンフィグレーションすると、[ステージ コンフィグレーションの編集] ページに戻ります。ここでは、さらに、表 18-2 に記載された操作を実行できます。

  1. 別のアクションを追加するには、前のアクションのアイコンをクリックして [アクションの追加] をクリックし、アクションを選択します。必要に応じてアクションの追加を続行します。追加するアクションのタイプの詳細については、「アクションの追加」の該当する手順を参照してください。メッセージ フローのアクションは任意の組み合わせで連鎖できます。
  2. アクションを追加したら、次の表に示すように、ステージのアクションの移動や、変更の削除または破棄などを行うことによりステージをコンフィグレーションできます。
  3. 表 18-2 ステージ コンフィグレーションの編集時に使用するタスク
    処理
    手順
    アクションを削除する
    該当するアイコンを選択してから、[このアクションを削除] をクリックする。アクションが削除される。
    アクションを下に移動する (降格する)
    該当するアイコンを選択してから、[アクションを下に移動] をクリックする。アクションがこのステージに含まれる次のアクションの下に移動する。

    注意 : このオプションは、ステージに 2 つ以上のアクションが含まれる場合にのみ表示される。

    アクションを上に移動する (昇格する)
    該当するアイコンを選択してから、[アクションを上に移動] をクリックする。アクションがこのステージに含まれる前のアクションの上に移動する。

    注意 : このオプションは、ステージに 2 つ以上のアクションが含まれる場合にのみ表示される。

    アクションを切り取る
    該当するアイコンを選択してから、[切り取り] をクリックする。
    アクションをコピーする
    該当するアイコンを選択してから、[コピー] をクリックする。
    切り取りまたはコピーしたアクションを貼り付ける
    該当するアイコンを選択してから、[アクションの貼り付け] をクリックする。

    注意 : アクションのコピーと貼り付けは、ステージ全体で可能である。ただし、[割り当て] アクション、[置換] アクション、または [挿入] アクションの場合は、以下に注意。

    • ソース (コピー) ステージの変数関連およびユーザ定義のすべてのネームスペースは、ターゲット (貼り付け) ステージではユーザ定義のネームスペースとして追加される。
    • 重複するネームスペース (ソース ステージおよびターゲット ステージ両方で同一のネームスペース) はコピーされない。
    • 衝突するネームスペース (同じプレフィックスを使用しているが URI の異なるネームスペース宣言) はコピーされる。コンフィグレーションの保存は可能であるが、ステージ B の衝突するネームスペース宣言を削除しない限り、アクティブ化することはできない。
    ステージを検証する
    [ステージ コンフィグレーションの編集] ページで、[検証] をクリックして、そのステージでコンフィグレーションしたすべてのアクションを検証する。
    更新した内容を保存して [メッセージ フローの編集] ページに戻る
    [保存] をクリックする。
    変更を取り消して [メッセージ フローの編集] ページに戻る
    [取り消し] をクリックする。
    [ステージ コンフィグレーションの編集] ページを開いたまま保存前の変更をクリアする
    [クリア] をクリックする。
    変更を取り消してメッセージ フローを終了する
    [すべて取り消し] をクリックする。メッセージ フローを終了することを確認すると、[プロキシ サービスの概要] ページ (最初にそのページでプロキシ サービスに対して [メッセージ フローの編集] アイコンをクリックした場合) あるいは [プロジェクト ビュー] ページまたは [フォルダ ビュー] ページが表示される (これらのページでプロキシ サービスに対して [メッセージ フローの編集] アイコンをクリックした場合)。

  4. [ステージ コンフィグレーションの編集] ページでコンフィグレーションを行ったら、[メッセージ フローの編集] ページに戻って、次の表に示すタスクを完了できます。
  5. 表 18-3 メッセージ フローの編集時に使用するタスク
    処理
    手順
    既存のパイプラインにステージを追加する
    対象の要求または応答パイプラインをクリックしてから、[ステージの追加] をクリックする。詳細については、「ステージの追加」を参照。
    パイプライン ペア ノードを追加する
    [プロキシ サービス] アイコンをクリックしてから、[パイプライン ペアの追加] をクリックする。または、既存の [パイプライン ペア ノード] アイコンをクリックし、[追加] をクリックしてから [パイプライン ペアの追加] をクリックする。詳細については、「パイプライン ペア ノードの追加」を参照。
    ルート ノードを追加する
    [パイプライン ペア ノード] アイコンをクリックし、[追加] をクリックしてから [ルートの追加] をクリックする。詳細については、「ルート ノードの追加」を参照。
    別のプロキシ サービスのメッセージ フローから切り取りまたはコピーしたルート ノードを貼り付ける
    作成したパイプライン ペアの [パイプライン ペア ノード] アイコンをクリックし、[ルートの貼り付け] をクリックする。

    注意 : ルート ノードをあらかじめ切り取りまたはコピーしていないと、このオプションは使用できない。

    条件付きブランチ ノードを追加する
    [パイプライン ペア ノード] アイコンをクリックし、[追加] をクリックしてから [条件付きブランチ ノードの追加] をクリックする。詳細については、「条件付きブランチの追加」を参照。
    このプロキシ サービスにエラー処理を追加する
    [プロキシ サービス] アイコンをクリックしてから、[サービス エラー ハンドラの追加] をクリックする。詳細については、「プロキシ サービスへのエラー処理の追加」を参照。
    ステージ名と説明を編集する
    該当する [ステージ] アイコンをクリックし、[名前と説明の編集] をクリックする。
    ステージを削除する
    該当する [ステージ] アイコンをクリックしてから、[削除] をクリックする。
    更新した内容を保存して [プロキシ サービスの概要] ページに戻る
    [保存] をクリックする。
    変更を取り消して [プロキシ サービスの概要] ページに戻る
    [取り消し] をクリックする。
    [メッセージ フローの編集] ページを開いたまま変更をクリアする
    [クリア] をクリックする。
    変更を取り消してメッセージ フローを終了する
    [すべて取り消し] をクリックする。メッセージ フローを終了することを確認すると、[プロキシ サービスの概要] ページ (最初にそのページでプロキシ サービスに対して [メッセージ フローの編集] アイコンをクリックした場合) あるいは [プロジェクト ビュー] ページまたは [フォルダ ビュー] ページが表示される (これらのページでプロキシ サービスに対して [メッセージ フローの編集] アイコンをクリックした場合)。

注意 : [保存] をクリックすると、メッセージ フローは現在のセッションで更新されます。コンフィグレーションに対する変更が完了したら、左側のナビゲーション ペインで、[Change Center] の下にある [アクティブ化] をクリックします。セッションが終了し、コンフィグレーションが保存されます。また、セッション中はいつでも [破棄] をクリックすることができ、現在のセッションでこれまでに加えた変更を取り消すことができます。
注意 : アクションの使用シナリオ、デザイン パターン、ベスト プラクティスについては、AquaLogic Service Bus のユーザーズ ガイドの「AquaLogic Service Bus でのメッセージ フローの作成」を参照してください。

更新アクション

更新アクションには、削除、名前変更、挿入、置換などのアクションがあります。これらのアクションは、次のように評価され、実行されます。

関連トピック

プロキシ サービスの概要

プロキシ サービスの追加

プロキシ サービスの表示と検索

プロキシ サービスの表示と変更

メッセージ フローの表示と変更

パブリッシュ アクションの概要

メッセージのターゲット サービスを指定し、メッセージのパッケージおよびサービスへの送信方法をコンフィグレーションするには、パブリッシュ アクションを使用します。このトピックには、以下の節があります。

パブリッシュ アクションについて

以下のサービスの品質およびメッセージ コンテキスト情報のスコープは、パブリッシュ アクションとパブリッシュ テーブル アクションに適用されます。

サービスの品質

パブリッシュ アクション、動的パブリッシュ アクション、またはパブリッシュ テーブル アクションの結果としてメッセージが別のサービスにパブリッシュされると、デフォルトのサービスの品質 (QoS) は「ベスト エフォート」になります。QoS が「ベスト エフォート」とは、原則としてメッセージ処理の信頼性は低いが、パフォーマンスは最適化されるという意味です。デフォルトの「ベスト エフォート」サービス品質属性をオーバーライドするには、サービス品質の設定に、ルーティング オプション アクションを使用する必要があります。詳細については、「ルーティング オプション」を参照してください。「必ず 1 回」の信頼性については、「ルート ノードの追加」を参照してください。

サービスの品質の詳細については、AquaLogic Service Bus のユーザーズ ガイドの「AquaLogic Service Bus でのメッセージ フローの作成」を参照してください。

メッセージ コンテキストのスコープ

各パブリッシュ要求トランスフォーメーションでは、メッセージ コンテキストのローカル コピーが独自に保持されます。パブリッシュ要求アクション内の事前定義されたコンテキスト変数 ($headers、$body、$attachments、$outbound) に対する変更は、そのパブリッシュのエンドポイントまでに限定され、メッセージ フローによる以降の処理には影響しません。コンテキスト変数の詳細については、「事前定義されたコンテキスト変数」を参照してください。

操作手順を示すため、AquaLogic Service Bus が SOAP メッセージと添付 (SOAP、テキスト、バイナリの 3 つの部分) を受信するシナリオを想定した、パブリッシュ アクションでのメッセージ コンテキストの処理に関する質問とそれに対する回答を以下に示します。

パブリッシュ アクション内で要求アクションを使用してメッセージ コンテンツ、または $Outbound に加えた変更は、メッセージ フローの以降のノードで保持されるか

パブリッシュ アクションで発信メッセージ (または $outbound) に変更を加えた場合、あるいは転送により変更が加えられた場合は、パブリッシュされたメッセージにのみ反映されます。つまり、パブリッシュ アクション (または$outbound) で行った変更、または転送により加えられた変更は、パブリック アクションの直後のアクションまたはノードに進むメッセージ フローの前にロール バックされます。

同様に、$outbound 変数も、パブリッシュ アクションの完了後、元の状態に戻ります。通常、通信操作後、$outbound 変数には応答メタデータ、サービスとの通信で使用された実際の URI、さらに、ファイル転送の場合には作成されたファイルの名前などの便利な情報が含まれます。ただし、パブリッシュは、$outbound を元の状態に戻すため、この情報は使用できません。この情報が重要な場合、ユーザはサービス コールアウトをビジネス サービスにルーティングされるローカル転送プロキシに対して行う必要があります。ローカル転送プロキシは、$outbound の関連部分をサービス コールアウトからの応答として返します。

パブリッシュ要求アクションの 1 つとして返信アクションを使用する場合、メッセージ コンテンツはロールバックされません。つまり、メッセージ コンテキストのメッセージは、返信アクションが実行された結果としてクライアントに返されたメッセージです。

ファイル転送を使用してメッセージをパブリッシュする場合に何が作成されるか

ファイル システムに作成されるメッセージのタイプは、以下のように発信サービスのタイプによって異なります。

メッセージのバイナリ部分だけをどのようにパブリッシュするか

  1. 添付コンテンツをメッセージ本文にコピーする必要があります。これは以下のいずれかの方法で行います。
    • 発信トランスフォーメーションを作成し、以下の XQuery を body 変数 ($body) に割り当てる。
    • <soap-env:Body>{
      $attachments/ctx:attachment[2]/ctx:body/node()
      }</soap-env:Body>

    • 置換アクションを使用して、$body のコンテンツを添付のコンテンツで置き換える。
    • $attachments/ctx:attachment[2]/ctx:body/node()
      
  2. attachments コンテキスト変数のコンテンツを削除します。このためには、変数の XPath オプションを使用する削除アクションを次のようにコンフィグレーションします。
    • XPath./* で指定する
    • 変数は attachments
    • 注意 : ショートカットとして、XPath を指定せず、attachments 変数全体を削除することもできます。

HTTP 転送を使用してパブリッシュする場合に転送ヘッダを設定する必要があるか

転送ヘッダを設定する必要はありません。サービス タイプに応じて、Content-Type が自動的に設定されます。詳細については、「attachments コンテキスト変数の初期化」を参照してください。

パブリッシュ

パブリッシュ アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信パブリッシュ] を選択します。パブリッシュ アクションが表示されます。
  2. 図 18-1 パブリッシュ アクションのコンフィグレーション パラメータ


    パブリッシュ アクションのコンフィグレーション パラメータ

    • メッセージのパブリッシュ先サービスの選択用画面に移動するための [サービス] リンク
    • 要求アクションを追加するためのテーブル
  3. [サービス] をクリックします。サービス ブラウザが表示されます。
  4. リストからサービスを選択してから、[送信] をクリックします。そのサービスがデフォルトのリンクの代わりに表示されます。これがメッセージのターゲット サービスとなります。
  5. サービスの操作がすでに定義されている場合、ドロップダウン リストから選択して、呼び出す操作を指定できます。
  6. 発信処理を着信処理と同じにする場合、[着信操作の発信での使用] チェックボックスを選択します。
  7. メッセージのパッケージとサービスへの送信方法をコンフィグレーションするために、[要求アクション] フィールドの [アクションの追加] をクリックし、サービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細については、「アクションの追加」を参照してください。
  8. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

パブリッシュ アクションの概要

転送ヘッダ

メッセージ コンテキスト

パブリッシュ テーブル

パブリッシュ テーブル

パブリッシュ テーブルとは、切り替え式の条件テーブルに含まれる一連のパブリッシュ アクションです。単一の XQuery 式の結果に基づいて各種ルートを選択できる簡単な構文です。メッセージのターゲット サービスを指定し、メッセージのパッケージおよびサービスへの送信方法をコンフィグレーションするには、パブリッシュ テーブル アクションを使用します。

デフォルトのサービスの品質およびパブリック アクションのメッセージ コンテキストのスコープについては、「パブリッシュ アクションについて」を参照してください。

注意 : ステージ エディタでは、ネストは 4 累積レベルまでに制限されています。5 番目のレベルを追加しようとしても、そのネスト アクションは表示されません。累積レベルには、すべてのブランチ アクション (If...Then...条件、パブリッシュ テーブル、ルート テーブル) ガ含まれます。たとえば、2 レベルの条件と、ルート テーブルを含むパブリッシュ テーブルを使用して、合計 4 レベルにすることができます。ただし、別の条件を追加 (最後のパブリッシュ テーブルに対して) すると、その条件は表示されません。
パブリッシュ テーブル アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信パブリッシュ テーブル] を選択します。パブリッシュ テーブル アクションが表示されます。
  2. 図 18-2 パブリッシュ テーブル アクション パラメータ


    パブリッシュ テーブル アクション パラメータ

  3. [] をクリックします。[XQuery 式エディタ] ページが表示されます。実行時にルーティングの決定を行う値を返す XQuery 式を作成します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  4. [演算子] ボックスで、いずれかの比較演算子を選択します ([=]、[!=]、[<]、[<=]、[>]、または [>=])。
  5. 所定のフィールドに、XQuery 式の結果として返される値が評価される対象の値を入力します。
  6. [サービス] をクリックして、指定した値の式による評価が true の場合にメッセージをパブリッシュするサービスを選択します。[サービス ブラウザ]が表示されます。
  7. リストからサービスを選択してから、[送信] をクリックします。そのサービスがデフォルトのリンクの代わりに表示されます。これがメッセージのターゲット サービスとなります。
  8. サービスの操作がすでに定義されている場合、ドロップダウン リストから選択して、呼び出す操作を指定できます。
  9. 発信処理を着信処理と同じにする場合、[着信操作の発信での使用] チェックボックスを選択します。
  10. メッセージのパッケージとサービスへの送信方法をコンフィグレーションするために、[要求アクション] フィールドの [アクションの追加] をクリックし、サービスに関連付ける 1 つまたは複数のアクションを選択します。追加するアクションのタイプの詳細については、「アクションの追加」を参照してください。
  11. 新しいケースを挿入するには、新しいケースのアイコン をクリックし、[新しいケースの挿入] を選択します。演算子のドロップダウン メニュー
  12. 新しいケースについて、手順 3 - 7 を繰り返します。
  13. ビジネス ロジックで指定されているようにケースを追加します。
  14. 最後に定義したケースのひし形アイコンをクリックして、[デフォルト ケースの挿入] を選択し、デフォルト ケースを最後に追加します。
  15. デフォルト ケースをコンフィグレーションします。このケースのコンフィグレーションでは、それ以前のケースが満たされていない場合のルーティングの動作を指定します。
  16. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

パブリッシュ アクションの概要

転送ヘッダ

メッセージ コンテキスト

動的パブリッシュ

XQuery によって指定されたサービスに対してメッセージをパブリッシュするには、動的パブリッシュ アクションを使用します。

動的パブリッシュ アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信動的にパブリッシュ] を選択します。動的パブリッシュ アクションが表示されます。このアクションには以下の機能があります。
    • XQuery 式エディタへの [式] のリンク。
    • アクション メニューへの [アクションの追加] のリンク。
    • 図 18-3 動的パブリッシュ アクション パラメータ


      動的パブリッシュ アクション パラメータ

  2. [] をクリックします。[XQuery 式エディタ] が表示されます。
  3. [XQuery 式エディタ] で、XQuery 式を入力するか、以下と同様の結果となる XQuery リソースを選択します。
  4. <ctx:route isProxy="false">
    
    <ctx:service>project/folder/businessservicename</ctx:service>
    
    <ctx:operation>foo</ctx:operation>
    
    </ctx:route>
    
    注意 : operation 要素は省略可能です。
  5. [保存] をクリックします。
  6. [要求アクション] フィールドの [アクションの追加] をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細については、「アクションの追加」のアクションの表を参照してください。
  7. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

パブリッシュ アクションの概要

転送ヘッダ

メッセージ コンテキスト

パブリッシュ テーブル

ルーティング オプション

$outbound の発信要求の URI、サービスの品質、モード、および再試行パラメータの一部またはすべてを変更するには、ルーティング オプション アクションを使用します。ルーティング オプション アクションは、$outbound 上の割り当て、挿入、置換、または削除アクションで実行できますが、ルーティング オプションを使用すると、XPath、XQuery、または $outbound コンテキスト変数の構造を理解していなくてもこれらのタスクを実行できます。

ルーティング オプションのアクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信ルーティング オプション] を選択します。
  2. ルーティング オプション アクションが表示されます。このアクションではチェックボックスで以下の機能を選択できます。

    • URI
    • サービスの品質
    • モード
    • 再試行間隔
    • 再試行回数
    • 図 18-4 ルーティング オプション アクション パラメータ


      ルーティング オプション アクション パラメータ

  3. 以下の手順のいずれか、またはすべてを実行します。
    • 発信メッセージの URI をリセットするには、[URI] を選択して、[XQuery 式エディタ] をクリックする。URI を返す式を入力します。これで呼び出されたサービスの URI がオーバーライドされます。
    • サービスの品質要素をリセットするには、[サービスの品質] を選択して、ドロップダウン リストで [サービスの品質] オプションを選択する。これで、自動計算されたデフォルトがオーバーライドされます。
    • モードをリセットするには、[モード] を選択して、ドロップダウン リストから [要求] または [要求 - 応答] を選択する。
    • 注意 : これは、通常、呼び出されたサービスのインタフェースに基づいて、自動的に設定されています。Any Soap または Any XML サービスなどでは、設定されていない場合もあります。
    • 再試行間隔をリセットするには、[再試行間隔] を選択して、再試行の間隔を秒単位で指定する。これで呼び出されたサービスでコンフィグレーションされたデフォルトがオーバーライドされます。
    • 再試行回数をリセットするには、[再試行回数] を選択して、アクションを中断するまでの再試行回数を指定する。これで呼び出されたサービスでコンフィグレーションされたデフォルトがオーバーライドされます。
  4. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

サービス コールアウト

AquaLogic Service Bus に登録済みのプロキシ サービスまたはビジネス サービスの同期 (ブロック) 呼び出しをコンフィグレーションするには、サービス コールアウト アクションを使用します。 このトピックには、以下の節があります。

サービス コールアウト アクションについて

サービス コールアウトを使用すると、あるプロキシ サービスから別のサービスへのコールアウトを行うことができます。呼び出されるサービスの入力パラメータはプロキシ サービスのメッセージ コンテキストから作成され、呼び出されるサービスからの出力はメッセージ コンテキストにマッピングされます。コールアウトが行われるサービスは、以下の特性を持っている必要があります。

転送ヘッダに関する注意事項

サービス コールアウト アクションのコンフィグレーション時に指定する転送ヘッダに加え、以下のヘッダが AquaLogic Service Bus バインディング レイヤによって自動的に追加されます。

サービス コールアウト アクションのコンフィグレーション

サービス コールアウト アクションのコンフィグレーションを行うには、サービスと操作を指定してコンテキストを入力し、コンテキスト変数を入力して呼び出し入力と出力パラメータにバインドします。

サービス コールアウト アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信サービス コールアウト] を選択します。
  2. サービス コールアウト アクションが表示されます。このアクションには、サービス選択用の画面に移動するための [サービス] リンクがあります。

    図 18-5 サービス選択前のサービス コールアウト アクション パラメータ


    サービス選択前のサービス コールアウト アクション パラメータ

  3. [サービス] をクリックします。サービス ブラウザが表示されます。
  4. 登録済みのプロキシ サービスまたはビジネス サービスのリストでサービスを選択し、[送信] をクリックします。
  5. 選択したサービスの名前がステージ コンフィグレーション ページに表示されます。

  6. 選択したビジネス サービスがトランザクション対応の EJB または Tuxedo 転送を使用している場合は、チェックボックスを選択して、サービス レベルの品質を [必ず 1 回] に設定します。
  7. 以降のコンフィグレーション オプションは、手順 3 で選択したサービスが WSDL ベースであるかどうかによって異なります。

サービスが WSDL ベースの場合

注意 : これには転送タイプのサービスが含まれます。
  1. サービスで呼び出す操作名を選択します。
  2. [要求パラメータ] フィールドに、実行時に評価される、要求パラメータの値を指定する変数の名前を入力します。
  3. 警告 : 入力変数にはコアのペイロード ドキュメントだけを指定します。SOAP パッケージは、AquaLogic Service Bus によって自動的に作成されます。そのため、入力ドキュメントを <soap-env:Body>...</soap-env:Body> でラップしないでください。

    たとえば、この要求パラメータに使用される body 入力変数を作成する場合は、$body (soap-env:Body ラッパが保持されます) ではなく、body/* (ラッパ soap-env:Body を削除します) という XPath を使用して、その変数のコンテンツを定義します。
  4. [応答パラメータ] フィールドに、実行時に応答を割り当てる変数の名前を入力します。
  5. (オプション) 以下の項目を指定できます。
    • コールアウト要求の SOAP ヘッダ要素の XML を保持する変数 ([SOAP 要求ヘッダ] フィールド)
    • 警告 : [SOAP 要求ヘッダ] の入力ドキュメントは、<soap-env:Header>...</soap-env:Header> でラップする必要があります。
    • 応答の SOAP ヘッダ (存在する場合) の XML がバインドされる変数 ([SOAP 応答ヘッダ] フィールド)
    • 図 18-6 WSDL ベースのサービスのサービス コールアウト アクション パラメータ


      WSDL ベースのサービスのサービス コールアウト アクション パラメータ

  6. 追加する各転送ヘッダについて、以下の手順を行います (指定したヘッダの値は、コールアウト サービスに送信されるメッセージに追加されます)。
    1. [転送ヘッダ] テーブルの [ヘッダを追加] をクリックします。次の図のように、[転送ヘッダ] テーブルの最初の行に入力されます。
    2. 図 18-7 転送ヘッダのコンフィグレーション パラメータ


      転送ヘッダのコンフィグレーション パラメータ

    3. ターゲット サービスの転送固有のヘッダが入力済みのドロップダウン リストで選択するか、または所定のフィールドにヘッダ名を入力してヘッダを指定します。
    4. ドロップダウン リストには、事前定義されたすべてのターゲット転送のヘッダ名が入力されます (たとえば、HTTP 転送の場合は Content-Type、JMS 転送の場合は JMSCorrelationID など)。[その他] フィールドにヘッダ名を入力し、そのヘッダ名がこのサービスの転送の事前定義されたヘッダでない場合、そのヘッダは転送仕様の定義のとおりユーザ ヘッダになります。

    5. [ヘッダを <式> に設定] の [<式>] をクリックして、XQuery 式エディタまたは XSLT 式エディタを呼び出します。このエディタでは、ヘッダの値を設定できます。単純な式 (たとえば、text/xml) または複雑な XQuery 式あるいは XSLT 式を使用できます。
    6. AquaLogic Service Bus 転送レイヤでは、すべてのヘッダの XML 表現を文字列値として定義するため、式の結果は、ヘッダの値が設定される前に文字列に変換されます。何も返さない式のヘッダの値は、空の文字列に設定されます。式を使用してヘッダを削除することはできません。

      警告 : このアクションで指定できるすべての転送ヘッダとメタデータが実行時に使用されるわけではありません。つまり、特定のヘッダとメタデータの値は、上書きされる場合や、AquaLogic Service Bus ランタイムで無視される場合があります。特定の転送についてどのヘッダとメタデータを設定できるか、および実行時にどのヘッダとメタデータのセットが使用されるかについては、「ランタイムでの転送ヘッダの設定の使用方法について」を参照してください。
    7. テーブルにヘッダを追加するには、[ヘッダを追加] をクリックします。
    8. 図 18-8 追加転送ヘッダのコンフィグレーション パラメータ


      追加転送ヘッダのコンフィグレーション パラメータ

      注意 : 指定する転送ヘッダに加え、その他のヘッダが AquaLogic Service Bus バインディング レイヤによって追加されます。詳細については、「転送ヘッダに関する注意事項」を参照してください。
  7. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

変数とメッセージ コンテキストがサービス コールアウトでどのように使用されるかを示す例については、「サービス コールアウトのメッセージの作成方法」を参照してください。

サービスが WSDL ベースでない場合

  1. [要求ドキュメント変数] フィールドに、要求ドキュメントを割り当てる変数の名前を入力します。
  2. サービス (SOAP ドキュメント スタイルのサービスの場合) に送信される SOAP メッセージの本文、またはサービス タイプが任意の XML の場合に送信される XML メッセージの本文を作成する変数は、実行時に評価されます。

    警告 : 入力変数にはコアのペイロード ドキュメントだけを指定します。SOAP パッケージは、AquaLogic Service Bus によって自動的に作成されます。そのため、入力ドキュメントを <soap-env:Body>...</soap-env:Body> でラップしないでください。

    たとえば、この要求パラメータに使用される body 入力変数を作成する場合は、$body (soap-env:Body ラッパが保持されます) ではなく、body/* (ラッパ soap-env:Body を削除します) という XPath を使用して、その変数のコンテンツを定義します。

    メッセージング サービスの場合、変数に以下の制限があります。

    • バイナリ データを受信するサービスの場合は、変数に ctx:binary-content 要素が必要である。
    • MFL データを受信するサービスの場合は、変数に等価の XML データが必要である。
    • テキスト データを受信するサービスの場合、変数は文字列である。
  3. [応答ドキュメント変数] フィールドに、応答ドキュメントを割り当てる変数の名前を入力します。
  4. サービス コールアウトのサービス タイプが任意の SOAP の場合は、以下の項目を指定できます。
    • コールアウト要求の SOAP ヘッダ要素の XML を保持する変数 ([SOAP 要求ヘッダ] フィールド)
    • 警告 : [SOAP 要求ヘッダ] の入力ドキュメントは、<soap-env:Header>...</soap-env:Header> でラップする必要があります。
    • 応答の SOAP ヘッダ (存在する場合) の XML がバインドされる変数 ([SOAP 応答ヘッダ] フィールド)
    • 図 18-9 WSDL ベースでないサービスのサービス コールアウト アクション パラメータ


      WSDL ベースでないサービスのサービス コールアウト アクション パラメータ

  5. 追加する各転送ヘッダについて、以下の手順を行います (指定したヘッダの値は、コールアウト サービスに送信されるメッセージに追加されます)。
    1. [転送ヘッダ] テーブルの [ヘッダを追加] をクリックします。次の図のように、[転送ヘッダ] テーブルの最初の行に入力されます。
    2. 図 18-10 転送ヘッダのコンフィグレーション パラメータ


      転送ヘッダのコンフィグレーション パラメータ

    3. ターゲット サービスの転送固有のヘッダが入力済みのドロップダウン リストで選択するか、または所定のフィールドにヘッダ名を入力してヘッダを指定します。
    4. ドロップダウン リストには、事前定義されたすべてのターゲット転送のヘッダ名が入力されます (たとえば、HTTP 転送の場合は Content-Type、JMS 転送の場合は JMSCorrelationID など)。[その他] フィールドにヘッダ名を入力し、そのヘッダ名がこのサービスの転送の事前定義されたヘッダでない場合、そのヘッダは転送仕様の定義のとおりユーザ ヘッダになります。

    5. [ヘッダを <式> に設定] の [<式>] をクリックして、XQuery 式エディタまたは XSLT 式エディタを呼び出します。このエディタでは、ヘッダの値を設定できます。単純な式 (たとえば、text/xml) または複雑な XQuery 式あるいは XSLT 式を使用できます。
    6. AquaLogic Service Bus 転送レイヤでは、すべてのヘッダの XML 表現を文字列値として定義するため、式の結果は、ヘッダの値が設定される前に文字列に変換されます。何も返さない式のヘッダの値は、空の文字列に設定されます。式を使用してヘッダを削除することはできません。

      警告 : このアクションで指定できるすべての転送ヘッダとメタデータが実行時に使用されるわけではありません。つまり、特定のヘッダとメタデータの値は上書きするか、または AquaLogic Service Bus ランタイムで無視することができます。特定の転送についてどのヘッダとメタデータを設定できるか、および実行時にどのヘッダとメタデータのセットが使用されるかについては、「ランタイムでの転送ヘッダの設定の使用方法について」を参照してください。
    7. テーブルにヘッダを追加するには、[ヘッダを追加] をクリックします。
    8. 図 18-11 追加転送ヘッダのコンフィグレーション情報


      追加転送ヘッダのコンフィグレーション情報

      注意 : 指定する転送ヘッダに加え、その他のヘッダが AquaLogic Service Bus バインディング レイヤによって追加されます。詳細については、「転送ヘッダに関する注意事項」を参照してください。
  6. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

変数とメッセージ コンテキストがサービス コールアウトでどのように使用されるかを示す例については、「サービス コールアウトのメッセージの作成方法」を参照してください。

サービス コールアウトのメッセージの作成方法

AquaLogic Service Bus がサービス コールアウト アクションを通じてサービスを呼び出す場合は、メッセージ コンテキストの変数の値を使用してメッセージのコンテンツが作成されます。発信メッセージのメッセージ コンテンツは、ターゲット サービスのタイプに応じて異なって処理されます。以下のトピックで説明されているように、メッセージ コンテンツの作成方法はターゲット サービスのタイプによって異なります。

SOAP ドキュメント スタイルのサービス

EJB ドキュメントおよびドキュメントにラップされたサービスを含むSOAP ドキュメント スタイルのサービスの場合

SOAP ドキュメント スタイルのサービスへのコールアウト時のメッセージの作成方法を説明するために、次の図のようにコンフィグレーションされたサービス コールアウト アクションを例として示します。

図 18-12 SOAP ドキュメント スタイルのサービスのサービス コールアウト アクションのコンフィグレーション

SOAP ドキュメント スタイルのサービスのサービス コールアウト アクションのコンフィグレーション

また、実行時に要求ドキュメント変数 myreq が次の XML にバインドされていることを前提とします。

コード リスト 18-1 要求変数 (myreq) のコンテンツ
<sayHello xmlns="http://www.openuri.org/">
    <intVal>100</intVal>
    <string>Hello AquaLogic</string>
</sayHello>

実行時に、SOAP 要求ヘッダ変数 reqheader は次の SOAP ヘッダにバインドされます。

コード リスト 18-2 SOAP 要求ヘッダ変数 (reqheader) のコンテンツ
<soap:Header xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
    <wsa:Action>...</wsa:Action>
    <wsa:To>...</wsa:To>
    <wsa:From>...</wsa:From>
    <wsa:ReplyTo>...</wsa:ReplyTo>
    <wsa:FaultTo>...</wsa:FaultTo>
  </soap:Header>

このシナリオ例では、外部サービスに送信されるメッセージの本文全体は、次のコード リストのようになります (myreq 変数と reqheader 変数のコンテンツは太字で示されています)。

コード リスト 18-3 サービス コールアウト アクションの結果としてサービスに送信されるメッセージ
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap=http://schemas.xmlsoap.org/soap/envelope/
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
        <wsa:Action>...</wsa:Action>
        <wsa:To>...</wsa:To>
        <wsa:From>...</wsa:From>
        <wsa:ReplyTo>...</wsa:ReplyTo>
        <wsa:FaultTo>...</wsa:FaultTo>
    </soap:Header>
    <soapenv:Body>
        <sayHello xmlns="http://www.openuri.org/">
            <intVal>100</intVal>
            <string>Hello AquaLogic</string>
        </sayHello>
    </soapenv:Body>
</soapenv:Envelope>

図 18-12 に示すサービス コールアウト アクションのコンフィグレーションに基づいて、サービスからの応答は myresp 変数に割り当てられます。外部サービスからの応答全体は、次のコード リストのようになります。

コード リスト 18-4 サービス コールアウト アクションの結果としてのサービスからの応答メッセージ
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.
org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <env:Header/>
    <env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <m:sayHelloResponse xmlns:m="http://www.openuri.org/">
            <result xsi:type="xsd:string">This message brought to you by Hello AquaLogic and the number 100
            </result>
        </m:sayHelloResponse>
    </env:Body>
</env:Envelope>

このシナリオでは、myresp 変数に、次のコード リストに示す値が割り当てられます。

コード リスト 18-5 サービス コールアウト アクションの結果としての応答変数 (myresp) のコンテンツ
<m:sayHelloResponse xmlns:m="http://www.openuri.org/">
    <result ns0:type="xsd:string" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance">
This message brought to you by Hello AquaLogic and the number 100
    </result>
</m:sayHelloResponse>

XML サービス

XML サービスの場合の特徴は以下のとおりです。

XML サービスへのコールアウト時のメッセージの作成方法を説明するために、次の図のようにコンフィグレーションされたサービス コールアウト アクションを例として示します。

図 18-13 XML サービスのサービス コールアウト アクションのコンフィグレーション

XML サービスのサービス コールアウト アクションのコンフィグレーション

また、実行時に要求ドキュメント変数 myreq が次の XML にバインドされていることを前提とします。

コード リスト 18-6 myreq 変数のコンテンツ
<sayHello xmlns="http://www.openuri.org/">
    <intVal>100</intVal>
    <string>Hello AquaLogic</string>
</sayHello>

このシナリオの特徴は以下のとおりです。

SOAP RPC スタイルのサービス

EJB RPC サービスを含むSOAP RPC スタイルのサービスの場合の特徴は以下のとおりです。

SOAP RPC スタイルのサービスへのコールアウト時のメッセージの作成方法を説明するために、以下のコンフィグレーションを持つ例を示します。

このシナリオでは、サービスに対する発信メッセージの本体は、次のコード リストのようになります。

コード リスト 18-8 発信メッセージのコンテンツ
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
        <sayHello2 xmlns="http://www.openuri.org/">
            <intVal>100</intVal>
            <string >Hello AquaLogic</string>
        </sayHello2>
    </soapenv:Body>
</soapenv:Envelope>

呼び出しが行われたサービスが返す応答は、次のコード リストのようになります。

コード リスト 18-9 helloWorld サービスからの応答メッセージのコンテンツ
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<env:Header/>
<env:Body env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<m:sayHello2Response xmlns:m="http://www.openuri.org/">
<result xsi:type="n1:HelloWorldResult" xmlns:n1="java:">
<message xsi:type="xsd:string">
This message brought to you by Hello AquaLogic and the number 100
</message>
</result>
</m:sayHello2Response>
</env:Body>
</env:Envelope>

メッセージ コンテキスト変数 output1 には、次のコード リストに示す値が割り当てられます。

コード リスト 18-10 出力変数 (output1) のコンテンツ
<message ns0:type="xsd:string" xmlns:ns0="http://www.w3.org/2001/XMLSchema-intance">
This message brought to you by Hello AquaLogic and the number 100</message>

メッセージング サービス

メッセージング サービスの場合の特徴は以下のとおりです。

たとえば、要求メッセージのコンテキスト変数 myreq が <hello>there</hello> という形式の XML ドキュメントにバインドされる場合、発信メッセージには厳密にこのペイロードが格納されます。応答メッセージのコンテキスト変数 (myresp) は、次のような参照要素にバインドされます。

<binary-content ref=" cid:1850733759955566502-2ca29e5c.1079b180f61.-7fd8"/>

エラー処理

エラー処理は、メッセージ フロー、パイプライン、ルート ノード、およびステージ レベルでコンフィグレーションできます。その方法については、「エラー メッセージと処理」を参照してください。サービス コールアウトの結果として外部サービスから受け取るエラーのタイプには、転送エラー、SOAP エラー、予期される応答に一致しない応答などが含まれます。

fault コンテキスト変数の設定は、返されるエラーのタイプごとに異なります。fault 変数のコンテンツに基づいて、ビジネス ロジックとエラー処理ロジックを構築できます。$fault の詳細については、「fault 変数」および「エラー コード」を参照してください。

転送エラー

外部サービスから転送エラーを受け取り、転送プロバイダから AquaLogic Service Bus にエラー応答ペイロードが返されない場合 (たとえば、HTTP 403 のエラー コードが返された場合)、サービス コールアウト アクションは例外をスローします。これにより、パイプラインでエラーが発生します。ユーザ コンフィグレーション エラー ハンドラの fault 変数は、次のコード リストと同様の形式のメッセージにバインドされます。

コード リスト 18-11 AquaLogic Service Bus の fault 変数のコンテンツ - 転送エラー、エラー応答ペイロードなし
<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-380000</con:errorCode>
<con:reason>Not Found</con:reason>
<con:details>
.......
</con:details>
<con:location>
<con:node>PipelinePairNode1</con:node>
<con:pipeline>PipelinePairNode1_request</con:pipeline>
<con:stage>stage1</con:stage>
</con:location>
</con:fault>

転送エラーに関連付けられたペイロードがある場合 (たとえばビジネス サービスから HTTP 500 のエラー コードを受け取り、応答内に XML ペイロードがある場合)、カスタム エラー コード BEA-382502 のメッセージ コンテキスト エラーが生成されます。

サービスが HTTP または JMS 転送を使用している場合に、そのサービスからの応答の結果として BEA-382502 エラー応答コードがトリガされるには、次の条件が満たされる必要があります。

転送が HTTP の場合、ErrorResponseDetail 要素には応答と共に返される HTTP エラー コードも含まれます。fault 内の ErrorResponseDetail 要素には、サービスから受信したエラー応答ペイロードが含まれます。次のリストに ErrorResponseDetail 要素の例を示します。

コード リスト 18-12 AquaLogic Service Bus の fault 変数のコンテンツ - 転送エラー、エラー応答ペイロードあり
<ctx:Fault xmlns:ctx="http://www.bea.com/wli/sb/context">
<ctx:errorCode>BEA-382502<ctx:errorCode>
<ctx:reason> Service callout has received an error response from the server</ctx:reason>
<ctx:details>
<alsb:ErrorResponseDetail xmlns:alsb="http://www.bea.com/...">
<alsb:detail> <![CDATA[
. ..                 
]]>
</alsb:detail> <alsb:http-response-code>500</alsb:http-response-code>
</alsb:ErrorResponseDetail>
</ctx:details>
<ctx:location>.. .</ctx:location>
</ctx:Fault>
注意 : サービス コールアウトで生成されるエラーの XML スキーマについては、「サービス コールアウトで生成されるエラー詳細の XML スキーマ」を参照してください。

SOAP エラー

外部サービスが SOAP エラーを返した場合、AquaLogic Service Bus ランタイムは、カスタム エラー コードとエラーの詳細を示す説明を含むコンテキスト変数 $fault を設定します。そのために、SOAP エラーの <SOAP-ENV:Fault> 要素の下にある 3 つの要素のコンテンツが抽出され、AquaLogic Service Bus の fault 要素の作成に使用されます。

サービスが次のエラーを返す場合のシナリオを例として示します。

コード リスト 18-13 サービス コールアウトから返される SOAP エラー
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> 
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Application Error</faultstring>
<detail>
<message>That's an Error!</message>
<errorcode>1006</errorcode>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

<faultcode><faultstring><detail> の各要素が抽出され、<alsb:ReceivedFault> 要素でラップされます。コード リスト 18-13faultcode 要素には、QName (関連するすべてのネームスペース宣言が保持されます) が含まれます。転送が HTTP の場合、ReceivedFault 要素にはエラー応答と共に返される HTTP エラー コードも含まれます。

生成される <alsb:ReceivedFault> 要素およびカスタム エラー コードとエラー文字列は、fault コンテキスト変数のコンテンツの作成に使用されます。この例の場合は、次のコード リストと同様の形式になります。

コード リスト 18-14 AquaLogic Service Bus の fault 変数のコンテンツ - SOAP エラー

<ctx:Fault xmlns:ctx="http://www.bea.com/wli/sb/context">
    <ctx:errorCode>BEA-382500<ctx:errorCode>
    <ctx:reason> service callout received a soap Fault response</ctx:reason>
    <ctx:details>
        <alsb:ReceivedFault xmlns:alsb="http://www.bea.com/...">
            <alsb:faultcode
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">SOAP-ENV:Clien
            </alsb:faultcode>
            <alsb:faultstring>Application Error</alsb:faultstring>
            <alsb:detail>
                <message>T
hat's an Error!</message>
                <errorcode>1006</errorcode>
            </alsb:detail>

          <alsb:http-response-code>500</alsb:http-response-code>
        </alsb:ReceivedFault>
    </ctx:details>
    <ctx:location> </ctx:location>
</ctx:Fault>

注意 : ユニークなエラー コード BEA-382500 は、サービス コールアウト アクションが SOAP エラーの応答を受け取る場合のために予約されています。

予期しない応答

プロキシ サービスのランタイムが予期していない応答メッセージがサービスから返された場合、メッセージ コンテキスト エラーが生成され、カスタム エラー コード BEA-382501 で初期化されます。エラーの詳細には応答の SOAP-Body 要素のコンテンツが含まれます。転送が HTTP の場合、ReceivedFault 要素にはエラー応答と共に返される HTTP エラー コードも含まれます。

サービス コールアウトで生成されるエラーの XML スキーマについては、コード リスト 18-15 を参照してください。

サービス コールアウトで生成されるエラー詳細の XML スキーマ

サービス コールアウトで生成されるエラー詳細の XML スキーマ定義を次のコード リストに示します。

コード リスト 18-15 サービス コールアウトで生成されるエラー詳細の XML スキーマ
<xs:complexType name="ReceivedFaultDetail">
<xs:sequence>
<xs:element name="faultcode" type="xs:QName"/>
<xs:element name="faultstring" type="xs:string"/>
<xs:element name="detail" minOccurs="0" >
<xs:complexType>
<xs:sequence>
<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax" />
</xs:complexType>
</xs:element>
            <xs:element name="http-response-code" type="xs:int" minOccurs="0"/>\
type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="UnrecognizedResponseDetail">
<xs:sequence>
<xs:element name="detail" minOccurs="0" type="xs:string" />
</xs:sequence>
</xs:complexType>

<xs:complexType name="ErrorResponseDetail">
<xs:sequence>
<xs:element name="detail" minOccurs="0" type="xs:string" />
</xs:sequence>
</xs:complexType>

サービス コールアウト アクションとルート ノードの比較

実行時のサービス コールアウト アクションとルート ノードの違い

実行時にルート ノードでコンフィグレーションされたアクションとサービス コールアウト アクションの動作の違いは、主に以下のとおりです。

関連トピック

エラー メッセージと処理

メッセージ コンテキスト

アクションの追加

転送ヘッダ

メッセージのヘッダの値を簡単に設定するには、転送ヘッダ アクションを使用します。

転送ヘッダ アクションを使用すると、発信要求 (ルート アクションまたはパブリッシュ アクションでプロキシ サービスによって送信されるメッセージ) と着信応答 (プロキシ サービスがクライアントに返信する応答メッセージ) の転送ヘッダの値を簡単に設定できます。このアクションでは、どのメッセージ コンテキストの場所を変更するかをランタイムに対して指定します。

変更するヘッダ セットを指定したら、ヘッダの値をコンフィグレーションします。ヘッダの値は、名前と値のペアの順序指定のないテーブルとして設定します。$inbound または $outbound の更新時に、ランタイムはすべてのネームスペースと順序を処理します。

転送ヘッダ アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[通信転送ヘッダ] を選択します。転送ヘッダ アクションが表示されます。
  2. 図 18-15 転送ヘッダ アクションのコンフィグレーション - 発信要求、着信応答


    転送ヘッダ アクションのコンフィグレーション - 発信要求、着信応答

  3. ドロップダウン メニューで、[発信要求] または [着信応答] を選択します。
  4. このフィールドは必須であり、発信要求 (ルート アクションまたはパブリッシュ アクションでプロキシ サービスによって送信されるメッセージ) と着信応答 (プロキシ サービスがクライアントに返信する応答メッセージ) のヘッダの値を設定するかどうかをランタイムに対して指定します。

    転送ヘッダ アクションをコンフィグレーションするときに [発信要求] または [着信応答] を選択することによって、どのメッセージ コンテキストの場所を変更するかをランタイムに対して指定します。これらのヘッダ要素は、メッセージ コンテキストの以下の場所にあります。

    • 発信要求の場合 - $outbound/ctx:transport/ctx:request/tp:headers
    • クライアントへの応答の場合 - $inbound/ctx:transport/ctx:response/tp:headers
    • 図 18-16 着信/発信要求、着信/発信応答


      着信/発信要求、着信/発信応答

  5. (オプション) [パイプラインを介してすべてのヘッダを渡す] を選択します。
  6. このオプションを選択すると、転送ヘッダ アクションは、すべてのヘッダを着信メッセージと発信メッセージとの間で自動的にパススルーします。ソース ヘッダ セットのすべてのヘッダはターゲット ヘッダ セットにコピーされ、ターゲット ヘッダ セットの既存の値はすべて上書きされます。

    このオプションとヘッダ固有のパススルー オプションの使用については、「グローバル パススルー オプションとヘッダ固有のコピー オプションについて」を参照してください。

  7. 追加する各ヘッダについて、以下の手順を行います。
    1. [転送ヘッダ] テーブルの [ヘッダを追加] をクリックします。次の図のように、[転送ヘッダ] テーブルの最初の行に入力されます。
    2. 図 18-17 転送ヘッダ アクションの個別コンフィグレーション オプション


      転送ヘッダ アクションの個別コンフィグレーション オプション

    3. ターゲット サービスの転送固有のヘッダが入力済みのドロップダウン リストで選択するか、または所定のフィールドにヘッダ名を入力してヘッダを指定します。
    4. ドロップダウン リストには、事前定義されたすべてのターゲット転送のヘッダ名が入力されます (たとえば、HTTP 転送の場合は Content-Type、JMS 転送の場合は JMSCorrelationID など)。[その他] フィールドにヘッダ名を入力し、そのヘッダ名がこのサービスの転送の事前定義されたヘッダでない場合、そのヘッダは転送仕様の定義のとおりユーザ ヘッダになります。

    5. [アクション] セクションの所定のオプションで、ヘッダの値の設定方法を指定します。
    6. ヘッダを式に設定

      このオプションを選択すると、XQuery 式または XSLT 式を使用して、ヘッダの値を設定できます。単純な式 (たとえば、"text/xml") または複雑な XQuery 式あるいは XSLT 式を使用できます。

      AquaLogic Service Bus 転送レイヤでは、すべてのヘッダの XML 表現を文字列値として定義するため、式の結果は、ヘッダの値が設定される前に文字列に変換されます。何も返さない式のヘッダの値は、空の文字列に設定されます。式を使用してヘッダを削除することはできません。

      警告 : このアクションで指定できるすべてのヘッダの設定が実行時に使用されるわけではありません。特定の転送についてどのヘッダを設定できるか、および実行時にどのヘッダのセットが使用されるかについては、「ランタイムでの転送ヘッダの設定の使用方法について」を参照してください。

      ヘッダを削除

      要求または応答のメタデータからヘッダが削除されるように指定します。

      [着信要求からヘッダをコピー] (発信要求の転送ヘッダを設定する場合 - 図 18-16 を参照)
      または
      [発信応答からヘッダをコピー] (着信応答の転送ヘッダを設定する場合 - 図 18-16 を参照)

      このヘッダが着信メッセージの同じ名前を持つ対応するヘッダから発信メッセージに、またその逆に直接コピーされるように指定します。たとえば、発信要求の SOAPAction ヘッダを設定する場合は、[着信要求からヘッダをコピー] を選択すると、ランタイムが $inbound の SOAPAction 要求ヘッダから値をコピーします。着信応答ヘッダの場合、コピーするヘッダのソースは、$outbound の応答ヘッダです。

      ソース内に存在しないヘッダについて [ヘッダをコピー] オプションが選択された場合、このオプションは無視され、このヘッダのターゲットではアクションが実行されません。つまり、この [ヘッダをコピー] オプションでは、ソースに存在するヘッダだけがターゲットにコピーされます。

      このオプションとグローバルな [パイプラインを介してすべてのヘッダを渡す] オプションの使用については、「グローバル パススルー オプションとヘッダ固有のコピー オプションについて」を参照してください。

    7. テーブルにヘッダを追加するには、[ヘッダを追加] をクリックします。

    8. 転送ヘッダ アクションの個別コンフィグレーション オプション

      このテーブルを展開すると、別の転送ヘッダのコンフィグレーションに使用できる新しい一連のオプションを含む追加の行が表示されます。


      転送ヘッダ アクションの個別コンフィグレーション オプション

      上の図は、2 つのヘッダを含む [転送ヘッダ] テーブルを示しています。アクションはヘッダごとに指定されます。このテーブルに必要な数のヘッダを追加したり、テーブルのそのヘッダ行に関連付けられた削除オプション 転送ヘッダ アクションの個別コンフィグレーション オプション を使用してヘッダをテーブルから削除したりできます。ランタイムでは、対応する XML の生成時に、ネームスペースを宣言し、適切な順序でヘッダ要素を配置するため、テーブルのヘッダの順序を指定する必要はありません。

  8. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

グローバル パススルー オプションとヘッダ固有のコピー オプションについて

前の節で説明したように、転送ヘッダ アクションのコンフィグレーション時には以下のオプションを使用できます。

警告 : 転送ヘッダは転送タイプに固有であるため、パススルー (またはコピー) オプションは、転送タイプが同じサービス間でヘッダをコピーする場合に限って使用することをお勧めします。転送のタイプが異なるサービス間でヘッダを渡す (またはコピーする) と、渡すヘッダがターゲット転送で受け入れられない場合、エラーが発生することがあります。同じ理由で、ヘッダを設定のオプションを使用してヘッダ名を指定するときは注意が必要です。

[パイプラインを介してすべてのヘッダを渡す] を選択すると、実行時に転送ヘッダ アクションがすべてのヘッダを着信メッセージと発信メッセージとの間でパススルーするように指定されます。ソース ヘッダ セットのすべてのヘッダはターゲット ヘッダ セットにコピーされ、ターゲット ヘッダ セットの既存の値はすべて上書きされます。

ヘッダをコピー オプションを選択すると、実行時に転送ヘッダ アクションが、このオプションが関連付けられている特定のヘッダを着信メッセージと発信メッセージとの間でコピーするように指定されます。

これらのオプションは、自分のシナリオに最適な方法で使用します。どちらのオプションを使用しても、ソース ヘッダ セットのヘッダがターゲット ヘッダ セットにコピーされ、ターゲット セットの既存の値はすべて上書きされます。[パイプラインを介してすべてのヘッダを渡す] オプションは、ヘッダ固有のすべてのヘッダをコピー オプションの前に実行されます。つまり、特定の転送ヘッダ アクションのコンフィグレーションについて [パイプラインを介してすべてのヘッダを渡す] を選択した場合、特定のヘッダのヘッダをコピー オプションを選択する必要はありません。

ただし、[パイプラインを介してすべてのヘッダを渡す] を選択してすべてのヘッダをコピーした後で、特定のヘッダについて [ヘッダを削除] を選択して、個々のヘッダが削除されるようにアクションをコンフィグレーションすることはできます。

ランタイムでの転送ヘッダの設定の使用方法について

前のトピックでは、転送ヘッダ アクションの発信要求 (ルート アクションまたはパブリッシュ アクションでプロキシ サービスによって送信されるメッセージ) と着信応答 (プロキシ サービスがクライアントに返信する応答メッセージ) の転送ヘッダの値のコンフィグレーション方法について説明しました。通常、ヘッダの値は以下のように処理できます。

転送ヘッダ アクションを使用すると、$inbound または $outbound のヘッダを設定、削除、またはパススルーすることができます。これらのヘッダを設定または削除した後に、$inbound または $outbound をログに書き込むと、変更の影響を確認できます。ただし、メッセージが送信されるときに AquaLogic Service Bus バインディング レイヤによって $inbound または $outbound の一部のヘッダが変更または削除され、そのため基礎になる転送でこれらのヘッダの一部が無視されて、その転送固有の値が使用されることがあります。重要な違いは、バインディング レイヤによってヘッダに行われる変更は $inbound および $outbound に対して直接行われますが、転送による変更はメッセージの送信形式のみに影響するという点です。たとえば、発信の Content-Length ヘッダの値を指定することはできますが、そのヘッダはメッセージ送信時にバインディング レイヤによって $outbound から削除されます。そのため、変更は応答パスで確認できます (たとえば、$outbound をログに書き込むと、変更された値を確認できます)。$outboundUser-Agent ヘッダを設定した場合、HTTP 転送ではその設定が無視され、HTTP 転送固有の値が使用されます。ただし、$outbound の値は変更されません。

次の表は、実行時に無視または上書きされる転送ヘッダと、特定の転送ヘッダについて存在するその他の制限を示しています。

表 18-4 転送ヘッダ アクションで指定する転送ヘッダの値の制限
転送
制限の説明
制限による影響を受ける転送ヘッダ
発信要求
着信応答
HTTP(S)
AquaLogic Service Bus ランタイムは、メッセージの送信準備中にバインディング レイヤでこれらのヘッダを上書きする場合がある。これらのヘッダが変更された場合、それに応じて $inbound および $outbound が更新される。
  • Content-Length
  • Content-Type
  • Content-Length
  • Content-Type
 
基礎になる転送では、メッセージ送信時に、これらのヘッダを無視して別の値を使用する場合がある。転送によって行われた変更は $inbound または $outbound に反映されない。
  • Accept
  • Content-Length
  • Connection
  • Host
  • User-Agent
  • Content-Length
  • Date
  • Transfer-Encoding
JMS
要求が一方向サービスに関連する場合、または JMSMessageID 相関に基づく要求/応答サービスに関連する場合のみ設定できる。
JMSCorrelationID 相関に基づく要求/応答サービスに送信する場合、これらのヘッダは実行時に上書きされる。
  • JMSCorrelationID
  • JMSCorrelationID
 
メッセージの生存時間をミリ秒単位で設定する必要がある。受信メッセージの結果の値は、クライアントが指定する生存時間の値と、送信時またはパブリッシュ時の GMT の合計になる1
  • JMSExpiration
  • JMSExpiration
 
AquaLogic Service Bus ランタイムはこれらのヘッダを設定する。つまり、設計時にこれらのヘッダについて行った指定はすべて実行時に上書きされる。
  • JMSMessageID
  • JMSRedelivered
  • JMSTimestamp
  • JMSXDeliveryCount
  • JMSXUserID
  • JMS_IBM_PutDate2
  • JMS_IBM_PutTime2
  • JMS_IBM_PutApplType2
  • JMS_IBM_Encoding2
  • JMS_IBM_Character_Set2
  • JMSMessageID
  • JMSRedelivered
  • JMSTimestamp
  • JMSXDeliveryCount
  • JMSXUserID
  • JMS_IBM_PutDate2
  • JMS_IBM_PutTime2
  • JMS_IBM_PutApplType2
  • JMS_IBM_Encoding2
  • JMS_IBM_Character_Set2
 
IBM MQ ではクライアント アプリケーションから特定のプロパティを設定できないので、IBM MQ 送り先に関連するこれらのヘッダを設定すると、実行時例外が発生する。
  • JMSXDeliveryCount
  • JMSXUserID
  • JMSXAppID
  • JMSXDeliveryCount
  • JMSXUserID
  • JMSXAppID
 
これらのヘッダは、[パイプラインを介してすべてのヘッダを渡す] オプションも指定されていると削除できない。
  • JMSDeliveryMode
  • JMSExpiration
  • JMSMessageID
  • JMSRedelivered
  • JMSTimestamp
  • JMSXDeliveryCount
  • JMSDeliveryMode
  • JMSExpiration
  • JMSMessageID
  • JMSRedelivered
  • JMSTimestamp
  • JMSXDeliveryCount
  • JMSCorelationID - 着信メッセージに相関 ID が設定されている場合。たとえば、登録済みの JMS ビジネス サービスからの着信応答の場合など。
FTP
制限なし。つまり、ユーザはファイル転送および FTP 転送のヘッダ3 を設定または削除することができ、ユーザによる指定は AquaLogic Service Bus ランタイムで優先される。
   
File
   
電子メール
AquaLogic Service Bus ランタイムはこれらのヘッダを設定する。つまり、設計時にこれらのヘッダについて行った指定はすべて実行時に上書きされる。
  • Content-Type
  • Content-Type

1 たとえば、JMSExpiration ヘッダを 1,000 に設定し、送信時に GMT が 1,000,000 (System.currentTimeMillis() の結果) である場合、JMS メッセージの JMSExpiration プロパティの結果の値は 1,000,1000 になります。

2 JMS_IBM というプレフィックス付きのヘッダ名は、IBM MQ サーバがホストする送り先に関連して使用されます。

3 ビジネス サービスの場合、ヘッダはファイル名です。その値は出力ファイル名に付加されます。プロキシ サービスの場合、ファイル名は、ポーリング対象ファイルの名前です。

注意 : inbound コンテキスト変数と outbound コンテキスト変数を設定する場合や、AquaLogic Service Bus Test Console を使用してプロキシ サービスまたはビジネス サービスをテストする場合は、転送ヘッダとメタデータの設定のときと同じ制限が適用されます。詳細については、以下のトピックを参照してください。

関連トピック

For Each

値のシーケンスを反復処理してアクションのブロックを実行するには、For Each アクションを使用します。

For Each アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[フロー制御For Each] を選択します。For Each アクションが表示されます。
  2. 図 18-18 For Each アクションのコンフィグレーション パラメータ


    For Each アクションのコンフィグレーション パラメータ

  3. 所定のフィールドに変数名を入力し、[XPath] をクリックして、XPath 式を作成するための XPath エディタを開きます。次に、Do () ループでアクションをコンフィグレーションします。
  4. 実行時に For Each アクションがどのように実行されるかを説明するために、次の図に示す値を使用します。

    図 18-19 For Each アクションのコンフィグレーションの例


    For Each アクションのコンフィグレーションの例

    • Do () ループに定義したアクションのブロックは、コンテキスト変数 body に対する XPath 式の評価の結果として返される各値について実行される。XPath 式の評価の結果としては、ゼロ以上の値のシーケンスが返されます。一連のゼロが返された場合、Do() ループは実行されません。各反復処理の前のコンテキスト変数 value はシーケンス内の次の値を参照し、index にはこの次の値の位置指定インデックス (XPath インデックスに一致する 1 から N のインデックス) が割り当てられています。
    • コンテキスト変数 total は、値の総数で 1 回だけ初期化される。
    • value 変数、index 変数、total 変数、および XPath 式の値は、指定を省略可能です。つまり、アクションの設計時にこれらの値を指定していなくても、セッションをアクティブ化することができます。

      注意 : For Each アクションでのコンテキスト変数のスコープについては、「For Each アクションでの変数のスコープ」および「ネストされた For Each アクション」を参照してください。
  5. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

For Each アクションでの変数のスコープ

value コンテキスト変数は、For Each アクション内でのみ参照できます。For Each アクションの実行が終了 (正常に終了するか、またはエラーで終了) すると、value 変数はスコープから外れ、メッセージ コンテキストから削除されます。ただし、For Each アクションの実行が終了すると、index 変数と total カウント変数は、前回の値のままコンテキスト内に残ります。For Each アクションが正常に終了すると、index 変数と total カウント変数の値は同じ数値 (シーケンス内の項目の合計数) になります。

反復の処理中にエラーが発生した場合、index 変数の値が total カウント変数の値よりも小さくなります。ただし、最後の反復の処理中は、indextotal カウントと同じ値になります。したがって、エラーが発生し、index の値と total の値が等しい場合は、最後の反復処理中か、For Each アクションの正常終了後のいずれかにエラーが発生したということだけを判断できます。

Do() ループでは、どの変数 (valueindex、または total) を変更することもできます。

value 変数

XPath の実行結果として返されるシーケンス内の値は、XPath が実行される変数 (上の図の例では body) のコンテンツへの参照であるため、For Each ループのアクションによって実行される value 変数に対するすべての更新は、body のコンテンツに反映されます。したがって、挿入アクションと更新アクションで実行するよりも複雑なインプレース更新を実行できます。

たとえば、次の図のようにコンフィグレーションされた For Each アクションでは、注文書の一連の品目を反復処理して、各項目の原価を 10% ずつ増やします。
図 18-20 For Each アクションのコンフィグレーションの例


For Each アクションのコンフィグレーションの例

index 変数

各反復処理の開始時に、index 変数の値は、次の index の値で上書きされます。つまり、ループの動作と実行される反復処理の回数は、index 変数の値のループで行われる変更による影響を受けません。

total 変数

total カウント変数は、For Each アクションの先頭で初期化されます。そのため、その値に対する Do() ループのアクションの結果としてのすべての変更は、永続的です。ただし、ループの動作と実行される反復処理の回数は、total 変数の値に対する変更による影響を受けません。

ネストされた For Each アクション

ネストされた For Each アクションをコンフィグレーションできます。そのようなアクションをコンフィグレーションする場合は、可能な限りユニークな変数名を使用することをお勧めします。ネストされた For Each アクションの変数を再利用する場合は、変数のスコープを確認してください。前の節で説明したように、次のような注意点があります。

If...Then...

XQuery 式のブール結果に基づき、1 つまたは複数のアクションを条件付きで実行するには、If Then アクションを使用します。

If... Then... アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[フロー制御If...Then...] を選択します。If...Then... アクションが表示されます。
  2. 図 18-21 If...Then...アクションのコンフィグレーション パラメータ


    If...Then... アクションのコンフィグレーション パラメータ

    • If (<条件>) (条件の編集画面に移動するリンク)
    • then 句内の [アクションの追加] オプション
  3. [条件] をクリックします。[XQuery 条件エディタ] ページが表示されます。
  4. 作成した条件は、then() 句に入る前に、標準の if...then ロジックに従って実行されるテストとして使用されます。詳細については、「XQuery 条件エディタの使用」を参照してください。

  5. XQuery 条件を編集したら、[アクションの追加] をクリックしてから、その条件に関連付けるアクションを選択します。追加するアクションのタイプの詳細については、「アクションの追加」を参照してください。
  6. 必要に応じて [If...Then...] アイコンをクリックして、else-if 条件または else 条件を追加し、[アクションの追加] をクリックして、これらの条件にアクションを関連付けます。
  7. 注意 : 条件アクションはネストできます。ただし、ステージ エディタでは、ネストは 4 累積レベルまでに制限されています。5 番目のレベルを追加しようとしても、そのネスト アクションは表示されません。累積レベルには、すべてのブランチ アクション (If...Then...条件、パブリッシュ テーブル、ルート テーブル) が含まれます。たとえば、2 レベルの条件と、ルート テーブルを含むパブリッシュ テーブルを使用して、合計 4 レベルにすることができます。ただし、別の条件付きのアクションを追加 (最後のパブリッシュ テーブルに対して) しようとしても、そのアクションは表示されません。
  8. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

エラーを発生させる

指定したエラー コード (文字列) と説明を使用して例外を発生させるには、エラーを発生させるアクションを使用します。

エラーを発生させるアクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[フロー制御エラーを発生させる] を選択します。エラーを発生させるアクションが表示されます。
  2. 図 18-22 エラーを発生させるアクションのコンフィグレーション パラメータ


    エラーを発生させるアクションのコンフィグレーション パラメータ

    • エラー コードを入力するための [エラー コード] フィールド (必須)
    • エラーの説明を入力するための [エラー メッセージ] フィールド
  3. [エラー コード] フィールドに、発生させるエラー コードを入力します。
  4. [エラー メッセージ] フィールドに、エラー コードの説明を入力します。
  5. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

エラー処理アクションの詳細については、「エラー メッセージと処理」を参照してください。

返信

返信アクションは、要求パイプライン、応答パイプライン、またはエラー パイプラインで使用できます。成功時または失敗時の返信をコンフィグレーションできます。HTTP 着信転送での失敗時の返信の場合、返信アクションでは、呼び出し元に即時に返信されるように指定します。

返信アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[フロー制御返信する] を選択します。返信アクションが表示されます。
  2. 図 18-23 返信アクションのコンフィグレーション パラメータ


    返信アクションのコンフィグレーション パラメータ

    [成功時] オプションと [失敗時] オプション

  3. [成功時] を選択すると、メッセージが成功した場合に応答します。[失敗時] を選択すると、メッセージが失敗した場合に応答します。
  4. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

エラー処理アクションの詳細については、「エラー メッセージと処理」を参照してください。

パブリッシュ アクション要求アクションの 1 つとしての応答アクションの使用については、「パブリッシュ アクションの概要」の「メッセージ コンテキストのスコープ」を参照してください。

再開

再開アクションはエラー ハンドラ内で使用します。実行時、このアクションによって、エラーが発生しなかった場合と同様にメッセージ フローの処理が続行されます。処理はエラー ハンドラがコンフィグレーションされているノードまたはステージの後から続行されます。以降のメッセージ フロー ロジックで要求される変数およびメッセージの状態に対応するようにコンテキスト変数とメッセージの状態を設定するために、エラー ハンドラに調整ロジックをコンフィグレーションすることが必要な場合があります。調整ロジックは再開アクションの前にコンフィグレーションします。

このアクションにパラメータはありません。このパラメータはエラー パイプラインでのみ使用できます。

再開アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[フロー制御再開する] を選択します。[再開する] アイコンが表示されます。
  2. ステージ コンフィグレーションの編集」の説明に従い、続けて他のアクションをコンフィグレーションするか、ステージ コンフィグレーションを保存します。

関連トピック

エラー処理アクションの詳細については、「エラー メッセージと処理」を参照してください。

スキップ

実行時にこのステージの実行がスキップされて、処理がメッセージ フローの次のステージに進むように指定するには、スキップ アクションを使用します。

このアクションにはパラメータがなく、要求パイプライン、応答パイプライン、エラー パイプラインで使用できます。メッセージ フローのスキップ アクションを作成するには、以下の手順を実行します。

  1. [アクションの追加] をクリックしてから、[フロー制御スキップする] を選択します。[スキップする] アイコンが表示されます。
  2. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

割り当て

XQuery 式の結果をコンテキスト変数に割り当てるには、割り当てアクションを使用します。

割り当てアクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理割り当てる] を選択します。割り当てアクションが表示されます。このアクションには以下の機能があります。
    • XQuery 式編集用の画面に移動するための [] リンク
    • コンテキスト変数を入力するための [変数] フィールド
    • 図 18-24 割り当てアクションのコンフィグレーション パラメータ


      割り当てアクションのコンフィグレーション パラメータ

  2. [] をクリックします。[XQuery 式エディタ] ページが表示されます。XQuery 式を使用して、名前付き変数に割り当てるデータを作成します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  3. 式を編集したら、[変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。特に、「inbound 変数と outbound 変数」および「送信するメッセージの作成」を参照してください。
  4. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

関連トピック

転送ヘッダ

メッセージ コンテキスト

削除

削除アクションは、コンテキスト変数または XPath 式で指定したすべてのノードを削除するときに使用します。削除アクションは一連の更新アクションの 1 つです。詳細については、「更新アクション」を参照してください。

削除アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理削除する] を選択します。削除アクションが表示されます。このアクションには以下の機能があります。
    • [変数] フィールドと、それに対応したラジオ ボタン
    • XPath 式編集用の画面に移動するための [XPath] リンク (およびそれに対応したラジオ ボタン) と、XPath 式を実行するコンテキスト変数を指定する [変数] フィールド
    • 図 18-25 削除アクションのコンフィグレーション パラメータ


      削除アクションのコンフィグレーション パラメータ

  2. コンテキスト変数を削除するには、このオプションに関連付けられたラジオ ボタンを選択し、[変数] フィールドにコンテキスト変数の名前を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。
  3. また、XPath 式で選択されたすべてのノードを削除するには、XPath オプションに関連付けられたラジオ ボタンを選択し、[XPath] をクリックします。[XPath 式エディタ] ページが表示されます。詳細については、「XPath 式エディタの使用」を参照してください。式を保存したら、[変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。

  4. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

挿入

XPath 式で選択したノードを基準に、指定した位置に XQuery 式を挿入するには、挿入アクションを使用します。挿入アクションは更新アクションの 1 つです。詳細については、「更新アクション」を参照してください。

挿入アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理挿入する] を選択します。挿入アクションが表示されます。
  2. 図 18-26 挿入アクションのコンフィグレーション パラメータ


    挿入アクションのコンフィグレーション パラメータ

    • XQuery 式編集用の画面に移動するための [] リンク。XQuery 式を使用して、名前付き変数で指定した場所に挿入されるデータを作成します。
    • 以降の XPath 式で指定されたノードを基準にデータを挿入する相対的な位置を選択するためのドロップダウン リスト
    • XPath 式編集用の画面に移動するための [XPath] リンク
    • コンテキスト変数を指定するためのフィールド (XPath はこの変数のコンテンツを評価する)
  3. [] をクリックします。[XQuery 式エディタ] ページが表示されます。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  4. 式を編集したら、ドロップダウン リストで相対的な位置を選択します。相対的な位置は、XPath 式の結果を基準として挿入位置を決める場合に使用します。
    • [の前に] - XPath 式で選択される各要素や属性の兄とします。
    • [の後ろに] - XPath 式で選択される各要素や属性の弟とします。
    • [の最初の子として] - XPath 式で指定される各要素の第 1 の子とします。XPath の結果が属性を返す場合はエラーが発生します。
    • [の最後の子として] - XPath 式で指定される各要素の最後の子とします。XPath が属性を返す場合はエラーが発生します。
  5. [XPath] をクリックします。[XPath 式エディタ] ページが表示されます。詳細については、「XPath 式エディタの使用」を参照してください。
  6. XPath 式を編集したら、[変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。
  7. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。
Note: 有効なコンフィグレーションには、以下のコンフィグレーションが含まれます。

Java コールアウト

メッセージ フローから Java メソッド、または EJB ビジネス サービスを呼び出すには、Java コールアウト アクションを使用します。

Java コールアウト アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理Java コールアウト] を選択します。Java コールアウト アクションが表示されます。
  2. 図 18-27 メソッド選択前の Java コールアウト コンフィグレーション パラメータ


    メソッド選択前の Java コールアウト コンフィグレーション パラメータ

  3. [<メソッド>] をクリックします。[JAR の選択] ページが表示されます。リストから JAR リソースを選択します。[クラスとメソッドの選択] ページが表示されます。
  4. 表示された Java クラスのリストで、必要なクラスの横にある + をクリックしてメソッドのリストを表示します。メソッドを選択して、[送信] をクリックします。[ステージの編集] ページに戻ります。Java コールアウト アクションが表示されます。
  5. 図 18-22 メソッド選択後の Java コールアウト コンフィグレーション パラメータ


    メソッド選択後の Java コールアウト コンフィグレーション パラメータ

    • <[<メソッド>] は手順 2 および 3 で選択した Java メソッドの名前に置き換えられる。この名前は [クラスとメソッドの選択] ページへのリンクです。このリンクをクリックして、Java メソッドの選択内容を変更することができます。
    • 注意 : メソッドは静的メソッドである必要があります。
    • [パラメータ] : Java メソッドが必要とする各引数に対する [XQuery 式エディタ] ページへの [] リンクが用意されています。それぞれのリンクに対するラベルは、引数のデータ型を示します。これは以下のいずれかになります。
      • Java.lang.String
      • プリミティブ型および対応するクラス型 (int と java.lang.Integer など)
      • java.lang.BigDecimal、および java.lang.BigInteger (これらの型は、ラウンドオフ エラーやオーバーフローが許容されない財務関連の計算で使用されます)
      • org.apache.xbeans.XmlObject のみ (型指定された XML Bean はなし)
      • byte[ ]
      • java.lang.String[] (入力のみ)
      • XmlObject [] (入力のみ)
    • [結果] : 結果を割り当てる変数を入力する [結果] フィールド。このフィールドに対するラベルは、結果のデータ型を示します。
    • 注意 : 結果がバイト配列 (唯一返される可能性のある配列) の場合は、バイナリ コンテンツの XML 要素が返されます。
    • サービス アカウントの付加 : [サービス アカウント] リンクでは、Java メソッドに対するセキュリティ コンテキストがある場合、オプションのサービス アカウントを指定できます。セキュリティ コンテキストおよびサービス アカウントの詳細については、「サービス アカウントの概要」を参照してください。
    • 注意 : 固定およびマップされたサービス アカウントの場合、そのサービス アカウントのユーザ ID/パスワードはローカル システムと Java コールアウトに伝播されたセキュリティ コンテキストで認証されます。passthru の場合、セキュリティ コンテキストは Java コールアウトに伝播されます。(WS-Security で) 定義されている場合、このコンテキストは、メッセージ レベルのコンテキストになります。そうでない場合は、転送レベルのコンテキストになります。
  6. [パラメータ] で、[] リンクをクリックします。[XQuery 式エディタ] ページが表示されます。XQuery 式エディタを使用して、Java メソッドに必要な引数を提供します。
  7. 注意 : 入力値の型が宣言されている入力引数の型と一致しない場合、AquaLogic Service Bus は入力値を入力引数の宣言された型に自動的に型キャストします。たとえば、入力引数の宣言された型が Java プリミティブ「int」の場合、文字列値「123」は整数 123 に変換されます。
  8. [結果] フィールドで、Java メソッドが返した結果に対して、変数を割り当てます。
  9. Java メソッドに対するセキュリティ コンテキストがある場合は、チェックボックスを選択して、[サービス アカウント] をクリックします。[サービス アカウントの選択] ページが表示されます。リストから必要なサービス アカウントを選択して、[送信] をクリックします。
  10. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

MFL 変換

MFL (メッセージ フォーマット言語) 変換アクションを使用して、メッセージ パイプライン内でメッセージ コンテンツを XML と XML 以外の形式との間で変換します。MFL は、バイナリ データのレイアウトを記述するために使用する特別な XML ドキュメントです。BEA 独自の言語を使用して、フォーマットされたバイナリ データを XML データに、または XML データをバイナリ データに変換するルールを定義します。詳細については、「MFL の概要」を参照してください。

MFL 変換アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理MFL 変換] を選択します。MFL 変換アクションが表示されます。
  2. 図 18-29 MFL 変換コンフィグレーション パラメータ


    MFL 変換コンフィグレーション パラメータ

    • 以下の 2 つのオプションを持つ MFL 変換の適用ドロップダウン リスト
      • [XML から 非 XML] へ変換
      • [非 XML から XML] へ変換
    • XQuery 式編集用、つまり変換への入力画面に移動するための [] リンク。この入力は、XML への変換の場合はテキストまたはバイナリ、XML 以外への変換の場合は XML でなければなりません。メッセージ コンテキストのバイナリ コンテンツは、バイナリ コンテンツ XML 要素によって表されます。入力がバイナリでなければならない場合、この XML は Xquery 式の結果となります。
    • [MFL リソース : <リソース>] オプション。変換アクションの静的 MFL リソースを選択するために使用できます。
    • [<式> からの MFL リソース] オプション。変換アクションの MFL リソースを動的に選択するための XQuery 式を以下の形式で編集できます。
    • project/folder/MFLresourcename
      
  3. 変換結果の割り当て先となる変数を指定する [変数に割り当てる] フィールド。結果は、バイナリコンテンツの XML 要素になります。
  4. [MFL 変換を適用する] から必要に応じて [XML から非 XML へ] または [非 XML から XML へ] を選択します。
  5. [] をクリックします。[XQuery 式エディタ] ページが表示されます。XQuery 式エディタを使用して、MFL 変換アクションを実行する変数を指定します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  6. 以下のいずれかのオプションを選択します。
    • [MFL リソース]。[<リソース>] リンクをクリックします。[MFL の選択] ページが表示されます。MFL 変換アクションを実行する MFL リソースを選択します。
    • [<式> からのMFL リソース]。[<式>] リンクをクリックします。[XQuery 式エディタ] ページが表示されます。XQuery 式エディタを使用して、変換アクションを実行する MFL リソースを動的に指定する XQuery 式を作成または編集します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  7. [変数に割り当てる] フィールドで、この変換アクションの結果を割り当てる変数名を入力します。
  8. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

名前変更

XPath 式で選択された要素のコンテンツを変更せずに要素名を変更するには、名前変更アクションを使用します。名前変更アクションは更新アクションの 1 つです。詳細については、「更新アクション」を参照してください。

名前変更アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理名前変更する] を選択します。名前変更アクションが表示されます。
  2. 図 18-30 名前変更アクションのコンフィグレーション パラメータ


    名前変更アクションのコンフィグレーション パラメータ

    • XPath 式編集用の画面に移動するための [XPath] リンク
    • 名前変更する要素を保持する変数を識別するためのフィールド
    • [ローカル名]、[ネームスペース]、[ローカル名とネームスペース] のラジオ ボタンとフィールド
  3. [XPath] をクリックします。[XPath 式エディタ] ページが表示されます。XPath 式を使用して、名前を変更するデータ (名前付き変数内の) を指定します。詳細については、「XPath 式エディタの使用」を参照してください。
  4. [変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。
  5. 以下のいずれか 1 つを実行します。
    • ローカル名を使用して選択した要素名を変更する場合は、このオプションに関連付けられたラジオ ボタンを選択して、[ローカル名] フィールドにローカル名を入力する。
    • ネームスペースを使用して選択した要素名を変更する場合は、このオプションに関連付けられたラジオ ボタンを選択して、[ネームスペース] フィールドにネームスペースを入力する。
    • ローカル名とネームスペースを使用して選択した要素名を変更する場合は、このオプションに関連付けられたラジオ ボタンを選択して、[ローカル名] フィールドにローカル名を入力し、[ネームスペース] フィールドにネームスペースを入力する。
  6. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

置換

XPath 式で指定されたノードまたはノードのコンテンツを置き換えるには、置換アクションを使用します。ノードまたはそのコンテンツは、XQuery 式が返した値で置換されます。

置換アクションでは、単純な値、要素、属性を置き換えることができます。XQuery 式から何も返されない状態は、アクションがノード全体を置き換えるか、ノード コンテンツのみを置き換えるかにより、識別されたノードを削除すること、または空のノードを作成することと同じです。置換アクションは更新アクションの 1 つです。詳細については、「更新アクション」を参照してください。

置換アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理置換する] を選択します。置換アクションが表示されます。
  2. 図 18-31 置換アクションのコンフィグレーション パラメータ


    置換アクションのコンフィグレーション パラメータ

    • XPath 式編集用の画面に移動するための [XPath] リンク
    • XQuery 式編集用の画面に移動するための [] リンク
    • 置換する要素を保持する変数を識別するためのフィールド
    • ノードまたはノードのコンテンツを XQuery 式が返した値で置換するかどうかを指定できるラジオ ボタン
  3. [XPath] をクリックします。[XPath 式エディタ] ページが表示されます。XPath 式を使用して、置換するデータ (名前付き変数内の) を指定します。詳細については、「XPath 式エディタの使用」を参照してください。
  4. XPath 式を編集したら、[変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。
  5. [] をクリックします。[XQuery 式エディタ] ページが表示されます。XQuery 式を使用して、名前付き変数内の XPath で指定したデータを置換するデータを作成します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  6. XQuery 式を編集したら、以下のいずれかのオプションを選択します。
    • [ノード全体を置換] - 定義した XPath 式で選択したノードとそのすべてのコンテンツを置換するように指定します。
    • [ノードのコンテンツを置換] - ノードは置換せず、そのコンテンツのみ置換するように指定します。
    • 注意 : [ノード全体を置換] オプションを選択して XPath を「./*」に設定するよりも、[ノードのコンテンツを置換] オプションを選択して [XPath] フィールドを空白にする方が効率的です。
  7. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

検証

XML スキーマ要素または WSDL リソースに対して、XPath 式で選択した要素を検証するには、検証アクションを使用します。

検証アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[メッセージ処理検証する] を選択します。検証アクションが表示されます。
  2. 図 18-32 検証アクションのコンフィグレーション パラメータ


    検証アクションのコンフィグレーション パラメータ

    • XPath 式編集用の画面に移動するための [XPath] リンク
    • 検証する要素が格納されている変数の名前を入力できる [変数] フィールド
    • XML スキーマや WSDL のタイプや要素を選択する画面に移動できる [リソース] リンク
  3. [XPath] をクリックします。[XPath 式エディタ] ページが表示されます。詳細については、「XPath 式エディタの使用」を参照してください。
  4. XPath 式を編集したら、[変数] フィールドに変数の名前を入力します。この変数には、検証する要素が格納されます。
  5. [リソース] をクリックしてから、[WSDL] または [スキーマ] を選択します。選択したリソースのタイプに応じて、[WSDL ブラウザ] または [XML スキーマ ブラウザ] が表示されます。
  6. WSDL または XML スキーマを選択し、WSDL または XML スキーマのタイプまたは要素を選択してから、[送信] をクリックします。
  7. この検証の結果 (ブール結果) を保存する場合は、[検証結果を変数に保存する] を選択し、結果を保存する変数の名前を入力します。
  8. また、WSDL 要素や XML スキーマ要素に対する検証が失敗したときにエラーを発生させる場合は、[検証の失敗時にエラーを発生させる] を選択します。

  9. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。
注意 : 検証アクションはグローバル要素しか検証できません。AquaLogic Service Bus はローカル要素に対する検証に対応していません。

アラート

パイプラインのメッセージ コンテキストに基づいてアラートを生成して、アラート送り先に送信するにはアラート アクションを使用します。SLA アラートと異なり、アラート アクションで生成された通知は、主にビジネスでの使用、またはエラーの報告を目的とし、システムの状態を監視するものではありません。このことを考慮して、アラートの送り先を決定して設定する必要があります。アラートの送り先の詳細については、「アラート送り先の概要」を参照してください。

アラート アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[レポートアラート] を選択します。割り当てアクションが表示されます。このアクションには以下の機能があります。
    • アラート送り先リソースを選択するために使用するアラート [送り先] リンク
    • XQuery 式編集用の画面に移動するための [<式>] リンク
    • アラートの簡単な説明文を入力する [アラート概要] フィールド
    • このアラートの重大度を選択する [重大度] ドロップダウン リスト
    • 図 18-33 アラート アクションのコンフィグレーション パラメータ


      アラート アクションのコンフィグレーション パラメータ

  2. [送り先] をクリックします。[アラート送り先の選択] ページが表示されます。リストから必要なアラートの送り先を選択して、[送信] をクリックします。
  3. [] をクリックします。[XQuery 式エディタ] ページが表示されます。コンテキスト変数の XQuery 式を通じてアラート メッセージに追加するメッセージ コンテキストを指定します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  4. [アラート概要] フィールドにアラートの簡単な説明文を入力します。説明文は、電子メール通知の場合の件名になります。文字数を 80 文字以内に制限する必要があります。説明文が存在しない場合、「AquaLogic Service Bus Alert」というあらかじめ定義された件名が代わりに使用されます。
  5. [重大度] ドロップダウン リストでは、アラートの重大度を [通常]、[警告]、[軽度]、[重要]、[重大]、および [致命的] から選択します。
  6. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。
  7. サービスのモニタが有効になっていることを確認します。
  8. このサービスのモニタが有効になっていない場合は、「特定のサービスのモニタのコンフィグレーション」を参照してモニタを有効にしてください。
注意 : サービスのモニタが有効になっていない場合、メッセージ処理の間、コンフィグレーションされたアラート アクションは無視されます。

関連トピック

アラート送り先の概要

特定のサービスのモニタのコンフィグレーション

ログ

ログに記録するメッセージを作成し、ログに使用する一連の属性を定義するには、ログ アクションを使用します。このトピックには、以下の節があります。

ログ アクションについて

ログ アクションを使用すると、プロキシ サービス内でステージが実行されるたびに、1 つまたは複数のメッセージを WebLogic Server ログに記録することができます。ログ アクションの 1 つまたは複数のインスタンスをメッセージ フローでコンフィグレーションすることができます。

ログ メッセージのコンテンツは、以下の 1 つまたは複数の要素で構成できます。

AquaLogic Service Bus では、非カタログ ロガー API を使用して、メッセージを WebLogic Server ログに書き込みます。AquaLogic Service Bus Console では、WebLogic Server Administration Console が提供するロギング コンフィグレーション機能をレプリケートしません。以下に示すような特定のログ ファイル コンフィグレーションが必要な場合は、WebLogic Server Administration Console を使用してコンフィグレーションを行ってください。

WebLogic Server のログについては、WebLogic Server ドキュメントの『ログ ファイルのコンフィグレーションとログ メッセージのフィルタ処理』を参照してください。

ログ アクションのコンフィグレーション

ログ アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[レポートログ] を選択します。ログ アクションが表示されます。
  2. 図 18-34 ログ アクションのコンフィグレーション パラメータ


    ログ アクションのコンフィグレーション パラメータ

    • XQuery 式編集用の画面に移動するための [] リンク
    • このログ アクションのメモを入力するための [アノテーション] フィールド。これらのメモは、事前に定義された式の結果と一緒にログに記録されます。
    • ロギング レベルを選択するための [重大度] ドロップダウン リスト
  3. [] をクリックします。[XQuery 式エディタ] ページが表示されます。コンテキスト変数の XQuery 式を通じてログに記録するメッセージ コンテキストを指定します。詳細については、「インライン XQuery 式エディタの使用」を参照してください。
  4. [アノテーション] フィールドに、このログ アクションのメモを入力します。
  5. [重大度] ドロップダウン リストで、以下のいずれかのオプションを選択します。
  6. 表 18-5 ログ アクションの重大度
    重大度
    一般的な用途
    情報
    通常の操作をレポートするために使用する、低レベルの情報メッセージ。
    警告
    疑わしい操作やコンフィグレーションが実行されたが、通常の操作に影響を及ぼさない。
    エラー
    ユーザ エラーが発生した。システムまたはアプリケーションでは、割り込みやサービスの停止をせずにエラーに対処できる。
    デバッグ
    アプリケーションの開発中に、アプリケーション内の下位レベルのアクティビティに関する詳細な説明を提供するメッセージの作成および使用が有効である可能性がある。

  7. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

レポート

プロキシ サービスのメッセージ レポートを有効にするには、レポート アクションを使用します。

AquaLogic Service Bus には、メッセージ データを配信する機能があります。また、1 つまたは複数のレポート プロバイダにアラートを送信します。メッセージ データは、メッセージの本体またはメッセージに関連付けられた他の任意の変数 (ヘッダまたは inbound 変数など) から取り込むことができます。アラート データには、プロキシ サービスをモニタするためにコンフィグレーションできるサービス レベル アグリーメント (SLA) の違反または発生に関する情報が含まれます。レポート プロバイダに配信されるメッセージまたはアラート データは、メッセージのトラッキングや規定の監査などの機能に使用できます。

AquaLogic Service Bus JMS レポート プロバイダまたはユーザ定義のレポート プロバイダからレポート メッセージを受信するには、プロキシ サービスのメッセージ フローで、最初にレポート アクションを作成する必要があります。レポート アクションを使用すると、各メッセージから情報を抽出して、それをレポート データ ストリームに書き込むことができます。

アラート レポート用のレポート アクションをコンフィグレーションする必要はありません。アラート データは常にレポート データ ストリームで使用可能です。

レポート アクションをコンフィグレーションするには
  1. [アクションの追加] をクリックしてから、[レポートレポート] を選択します。レポート アクションが表示されます。
  2. 図 18-35 レポート アクションのコンフィグレーション パラメータ


    レポート アクションのコンフィグレーション パラメータ

    • XQuery 式編集用の画面に移動するための [] リンク
    • 名前と値のキー ペア (キー名とキー値) を追加するためのフィールド
  3. [] をクリックします。[XQuery 式エディタ] ページが表示されます。詳細については、「インライン XQuery 式エディタの使用」を参照してください。XQuery 式を使用して、AquaLogic Service Bus ダッシュボードに報告するデータを作成します。
  4. XQuery 式を編集したら、[キーの追加] をクリックします。[キー名] フィールドと [キー値] フィールド (XPath 式編集用の画面に移動するための [XPath] リンクを持つ)、および [変数] フィールド (コンテキスト変数の入力用) が表示されます。
  5. キー値のペアは、メッセージ コンテキスト変数やメッセージ ペイロードからキー識別子を抽出して、残りのメッセージを無視する場合に使用します。キーは、メッセージを識別する便利な手段となります。キーは、[レポート] モジュールでレポート インデックスとして表示されます。詳細については、「メッセージの表示と検索」および「メッセージの詳細の表示」を参照してください。

    1. [キー名] フィールドに、キーの名前を入力します。
    2. [XPath] をクリックします。[XPath 式の編集] ページが表示されます。詳細については、「XPath 式エディタの使用」を参照してください。
    3. [変数] フィールドにコンテキスト変数を入力します。コンテキスト変数の詳細については、「メッセージ コンテキスト」を参照してください。
    4. さらにキー値を追加するには、[キー] アイコンをクリックして [キーの追加] を選択します。キーを削除するには、[キー] アイコンをクリックして [このキーを削除] を選択します。
    5. レポート アクションのコンフィグレーションおよび AquaLogic Service Bus ダッシュボードで報告されるデータの例については、「レポート アクションのコンフィグレーションおよび生成されるレポート データの例」を参照してください。

  6. このアクションのコンフィグレーションが完了したら、他のアクションのコンフィグレーションを続行するか、または「ステージ コンフィグレーションの編集」の説明に従ってステージ コンフィグレーションの保存を行います。

レポート アクションのコンフィグレーションおよび生成されるレポート データの例

ステージのエラー ハンドラでレポート アクションをコンフィグレーションする例を示します。目的は、エラーが発生した場合に fault コンテキスト変数のコンテンツを報告することです。次の図に示すようにレポート アクションをコンフィグレーションします。

図 18-36 キー名とキー値のコンフィグレーションの例

キー名とキー値のコンフィグレーションの例

ここで、errorCode はキー名を表し、キー値は ./ctx:errorCode という XPath を使用して fault 変数から抽出されます。

実行時にこのレポート アクションが行われるたびに、レポート データ ストリームを通じてメッセージが報告されます。次の図は、図 18-36 に示すキーと値のペアでコンフィグレーションされたレポート アクションが 2 回実行された後の、AquaLogic Service Bus Console の [メッセージ レポートの概要] ページを示しています。

図 18-37 実行時におけるレポート アクションの実行結果

実行時におけるレポート アクションの実行結果

関連トピック

レポート


  ページの先頭 前 次