ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Service Bus管理者ガイド
11g リリース1(11.1.1.5.0)
B61436-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

21 プロキシ・サービス: メッセージ・フロー

メッセージ・フローは、プロキシ・サービスの実装を定義します。

21.1 メッセージ・フローの表示と編集

この項では、メッセージ・フローの表示方法と編集方法について説明します。

  1. セッションをまだ作成していない場合は、「作成」をクリックして新しいセッションを作成するか、「編集」をクリックして既存のセッションを入力します。3.1項「チェンジ・センターの使用」を参照してください。

  2. メッセージ・フローを表示または編集するプロキシ・サービスを見つけ出します。以下のいずれかの操作を行います。

    • 「プロジェクト・エクスプローラ」を選択して、「プロジェクト・ビュー」ページまたはプロジェクト/フォルダ・ビュー・ページを表示します。次に、プロジェクトおよびフォルダに移動して、プロキシ・サービスを検索します。

    • 「リソース・ブラウザ」「プロキシ・サービス」を選択し、「プロキシ・サービスのサマリー」ページを表示します。

  3. メッセージ・フローを表示または編集するプロキシ・サービスの行の「メッセージ・フローの編集」アイコンをクリックします。

    • 選択したプロキシ・サービスに、まだメッセージ・フローが作成されていない場合は、1つのアイコン(「プロキシ・サービス」アイコン)が含まれた「メッセージ・フローの編集」ページが表示されます。これが、プロキシ・サービスの開始ノードです。このアイコンをクリックして、メッセージ・フローの作成を開始します。

    • プロキシ・サービスにすでにメッセージ・フローがある場合は、ページにはフローが図で表示されます。アイコンをクリックして、メッセージ・フローの各部を表示または編集します。

    このページで、メッセージ・フローを作成するために実行できる作業の詳細は、21.2項「「メッセージ・フローの編集」ページ」を参照してください。

  4. 「保存」をクリックして、現在のセッションで更新をコミットします。

  5. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.2 「メッセージ・フローの編集」ページ

「メッセージ・フローの編集」ページを使用して、プロキシ・サービスのメッセージ・フローを作成します。

「メッセージ・フローの編集」ページの左側のナビゲーション・ペインに、メッセージ・フロー内のノードとオブジェクトのツリー・ビューが表示されます。オブジェクトの詳細が別のページで定義されている場合は、オブジェクトの名前をクリックして、関連付けられているページを表示できます。

右側のペインには、メッセージ・フローを作成するためのフィールドが表示されます。メッセージ・フローがまだ定義されていない場合、ペインには、サービスの開始ノードを示す1つの「プロキシ・サービス」アイコンが含まれます。アイコンをクリックして、サービスのパイプライン・ペア・ノード、ルート・ノード、条件付きブランチ、操作ブランチ、およびエラー処理を追加します。

ページにオブジェクトを追加すると、そのオブジェクトを示すアイコンがページに表示されます。オブジェクト間の関係は、線と境界を示す四角形で示されます。「メッセージ・フローの編集」ページのアイコンをクリックすると、そのオブジェクトで実行できるアクションのメニューが表示されます。メニューに含まれるオプションは、コンテキストに応じて異なります。アイコンとオプションの完全なリストについては、表21-1を参照してください。

表21-1 「メッセージ・フローの編集」ページのアイコンとオプション

アイコン 説明 メニュー・オプション
開始ノード・アイコン

プロキシ・サービス

メッセージ・フローの開始ノード。

パイプライン・ペア・アイコン

パイプライン・ペア・ノード

パイプライン・ペア・ノードはリクエスト・パイプラインとレスポンス・パイプラインから成ります。

レスポンス・パイプライン・アイコン

レスポンス・パイプライン

上記のパイプライン・ペア・ノードを参照してください。

リクエスト・パイプライン・アイコン

リクエスト・パイプライン

上記のパイプライン・ペア・ノードを参照してください。

エラー・ハンドラのあるパイプライン・アイコン

エラー・ハンドラのあるパイプライン

エラー・ハンドラが定義されているパイプライン。

ルート・ノード・アイコン

ルート・ノード

ルート・ノード・アクションは、ルート・ノードを通過する際のメッセージの処理を定義します。

エラー・ハンドラがあるルート・ノード・アイコン

エラー・ハンドラがあるルート・ノード

エラー・ハンドラが定義されているルート・ノード。

ステージ・ノード・アイコン

ステージ・ノード

ステージ・ノードは、アクションのコンテナです。

エラー・ハンドラがあるステージ・ノード・アイコン

エラー・ハンドラがあるステージ・ノード

エラー・ハンドラが定義されているステージ・ノード。

条件付きブランチ・ノード・アイコン

条件付きブランチ・ノード

条件付きブランチ・ノードを使用すると、可能ないくつかのパスのうちの1つに限定して処理を進ませることができます。

操作ブランチ・ノード・アイコン

操作ブランチ・ノード

オペレーション・ブランチ・ノードでは、指定された操作に基づいてどのブランチに進むかが判断されます。

ブランチ・ノード・アイコン

ブランチ・ノード

ブランチ・ノードは、条件付きブランチ・ノードまたはオペレーション・ブランチ・ノードによって定義される代替ノードの1つです。

エラー・ハンドラ・アイコン

エラー・ハンドラ

エラー・ハンドラは、メッセージ・フローでエラーを再送するロジックを提供します。


21.3 「ステージ構成の編集」ページ

「ステージ構成の編集」ページを使用して、メッセージ・フローのパイプライン・ステージ、エラー・ハンドラ・ステージ、およびルート・ノードにアクションを追加します。

ステージに追加できるすべての種類のアクションの操作手順については、22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

21.4 メッセージ・フローへのパイプライン・ペア・ノードの追加

メッセージ・フローには、パイプライン・ペア・ノード(プロキシ・サービス、またはサービスの処理用のリクエスト・パイプラインとレスポンス・パイプライン)と、ステージ、パイプライン、およびプロキシ・サービスに対して定義できるエラー・ハンドラをゼロ個以上入れることができます。パイプラインは、1つまたは複数のステージを持つことができ、ステージはアクションを持ちます。

始める前に

次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。

メッセージ・フローにパイプライン・ペア・ノードを追加するには

  1. 「プロキシ・サービス」アイコンをクリックし、「パイプライン・ペアの追加」をクリックします。

  2. パイプライン・ペア・ノードのデフォルト名を変更して説明を追加するには、以下の操作を行います。

    1. 「パイプライン・ペア・ノード」アイコンをクリックし、名前とアノテーションの編集をクリックします。

    2. 必要に応じて名前と説明を変更します。

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


      注意:

      パイプライン名やルート・ノード名を変更すると、パイプライン・カウンタがゼロにリセットされるので、「モニター」モジュールの「ダッシュボード」ページに表示されるメッセージの数と他のコンポーネントのメッセージ数との相関関係がなくなる可能性があります。これは、Oracle Service Busでは、いったん削除して再作成するアクションとして名前の変更を処理しているためです。これらのメッセージ数は、サービスのモニター間隔と同じ時間が経過した後に再び関連付ける必要があります。

  3. パイプラインにステージを追加するには、21.7項「パイプラインへのステージの追加」を参照してください。

  4. パイプラインのステージにアクションを追加するには、22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

  5. 21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。

  6. 「保存」をクリックして、現在のセッションで更新をコミットします。

  7. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.5 メッセージ・フローへの条件付きブランチの追加

ブランチ・ノードを使用すると、可能ないくつかのパスのうちの1つに限定して処理を進めることができます。分岐は、XPathベースの切替え表に基づいて実行されます。表の各ブランチは、条件(たとえば、<500)を指定し、これが単一のXPath式(たとえば、$body./ns: PurchaseOrder/ns:totalCost)に対してメッセージ・フローの降順に評価されます。最初に満たされた条件によって、進むべきブランチが決定されます。満たされる分岐条件がない場合は、デフォルトのブランチに進みます。ブランチ・ノードでは、メッセージ・フロー内にいくつかの子孫を持つことができます(デフォルトのブランチを含め各ブランチに1つずつ)。

プロキシ・サービスがWSDLに基づいておらず、複数のドキュメント・タイプを入力として受信する場合は、条件付きブランチ・ノードを使用することを検討してください。

条件付きブランチ処理は、単純でありながらユニークな文字列値のタグが付いたブランチをまとめたルックアップ・テーブルを基準に行われます。メッセージ・コンテキストの変数をそのノードのルックアップ変数として指定し、実行時に、この値を使用してどのブランチに進むかが判断されます。ルックアップ変数に一致するブランチがない場合は、デフォルトのブランチに進みます。ブランチ・ノードに到達する前にルックアップ変数の値を設定するように、プロキシ・サービスを設定する必要があります。

始める前に

次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。

メッセージ・フローに条件付きブランチを追加するには

  1. 「パイプライン・ペア・ノード」アイコンまたは「ブランチ・ノード」アイコンをクリックして、「条件付きブランチ・ノードの作成」をクリックします。条件付きブランチ・ノードが追加され、挿入したブランチ・ノードの後の既存のノードが、新しい条件付きブランチ・ノードのデフォルト・ブランチに移動します。

  2. ブランチ・ノードのデフォルト名を変更して説明を追加するには、次を行います:

    1. 「条件付きブランチ」アイコンをクリックし、名前とアノテーションの編集をクリックします。

    2. 必要に応じて名前と説明を変更します。

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

  3. ブランチ定義を追加するには、「条件付きブランチ」アイコンをクリックし、「ブランチの編集」をクリックします。「ブランチ・ノードの編集」ページが表示されます。

  4. 次のようにします。

    1. 「選択したパス」フィールドで「編集」をクリックして、XPath式を追加し、パスを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

    2. 「変数」フィールドにコンテキスト変数を入力します。

    3. 「演算子」フィールドから、比較演算子を選択します。

    4. 「値」フィールドにブランチの値を入力します。

    5. 「ラベル」フィールドにブランチのラベルを入力します。

  5. (オプション)「オプション」で次のようにします。

    • 「新しいブランチの追加」をクリックして、このブランチ・ノードに新しいブランチ定義を追加します。

    • 「このブランチを削除」をクリックして、ブランチ定義を削除します。

    • 「ブランチを上に移動」または「ブランチを下に移動」をクリックして、ブランチ定義の位置を変更します。このオプションは、複数のブランチ定義が存在する場合にのみ表示されます。

  6. 「保存」をクリックして、現在のセッションで更新をコミットします。

  7. 21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。

  8. 「保存」をクリックして、現在のセッションで更新をコミットします。

  9. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.6 メッセージ・フローへの操作ブランチの追加

メッセージ・フローでWeb Services Description Language (WSDL)ベースのプロキシ・サービスを定義する場合、オペレーション固有の処理が必要になります。Oracle Service Busでは、オペレーションに基づくブランチ・ノードを手動で構成するかわりに、オペレーションに基づいて自動的に分岐するように構成された、最小限のブランチ・ノードが用意されています。つまり、オペレーション・ブランチ・ノードをメッセージ・フローに作成すると、Oracle Service Bus管理コンソールでは、WSDLに定義されたオペレーションがブランチ・ノード構成ページに表示されるため、これらのオペレーションに基づいて分岐ロジックをすばやく構築できます。

ブランチ・ノードを使用すると、可能ないくつかのパスのうちの1つに限定して処理を進めることができます。分岐は、XPathベースの切替え表に基づいて実行されます。表の各ブランチは、条件(たとえば、<500)を指定し、これが単一のXPath式(たとえば、$body./ns: PurchaseOrder/ns:totalCost)に対してメッセージ・フローの降順に評価されます。最初に満たされた条件によって、進むべきブランチが決定されます。満たされる分岐条件がない場合は、デフォルトのブランチに進みます。ブランチ・ノードでは、メッセージ・フロー内にいくつかの子孫を持つことができます(デフォルトのブランチを含め各ブランチに1つずつ)。

始める前に

次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。

メッセージ・フローにオペレーション・ブランチを追加するには

  1. 「パイプライン・ペア・ノード」アイコンまたは「ブランチ・ノード」アイコンをクリックして、「操作ブランチ・ノードの作成」をクリックします。操作ブランチ・ノードが追加され、挿入したブランチ・ノードの後の既存のノードが、新しい操作ブランチ・ノードのデフォルト・ブランチに移動します。

  2. ブランチ・ノードのデフォルト名を変更して説明を追加するには、次を行います:

    1. 「操作ブランチ」アイコンをクリックし、名前とアノテーションの編集をクリックします。

    2. 必要に応じて名前と説明を変更します。

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

  3. ブランチ定義を追加するには、「操作ブランチ」アイコンをクリックし、「ブランチの編集」をクリックします。「ブランチ・ノードの編集」ページが表示されます。

  4. 「操作ブランチ定義」パネルで、サービス操作を選択します。

  5. (オプション)「オプション」で次のようにします。

    • 「新しいブランチの追加」をクリックして、このブランチ・ノードに新しいブランチ定義を追加します。

    • 「このブランチを削除」をクリックして、ブランチ定義を削除します。

    • 「ブランチを上に移動」または「ブランチを下に移動」をクリックして、ブランチ定義の位置を変更します。このオプションは、複数のブランチ定義が存在する場合にのみ表示されます。

  6. 「保存」をクリックします。

  7. 21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。

  8. 「保存」をクリックして、現在のセッションで更新をコミットします。

  9. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.7 パイプラインへのステージの追加

始める前に

次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。

パイプラインにステージを追加するには

  1. 必要に応じて、「パイプライン・ペア・ノード」アイコンの左側にあるプラス記号クリックしてパイプライン・ペア・ノードを展開します。パイプライン・ペアには、「リクエスト・パイプライン」および「レスポンス・パイプライン」が含まれています。

  2. ステージに追加するパイプラインをクリックしてから、「ステージの追加」をクリックします。

  3. ステージのデフォルト名を変更して説明を追加するには、次を行います:

    1. 「ステージ」アイコンをクリックし、名前とアノテーションの編集をクリックします。

    2. 必要に応じて名前と説明を変更します。

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

  4. ステージにアクションを追加するには、「ステージ」アイコンをクリックし、「ステージの編集」をクリックします。22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

  5. ステージにエラー処理を追加するには、「ステージ」アイコンをクリックし、「ステージ・エラー・ハンドラの追加」をクリックします。24.4項「ステージ・エラー・ハンドラの追加」を参照してください。「メッセージ・フローの編集」ページが表示されます。

  6. 21.1項「メッセージ・フローの表示と編集」の説明に従って、メッセージ・フローの作成を続けます。

  7. 「保存」をクリックして、現在のセッションで更新をコミットします。

  8. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.8 メッセージ・フローへのルート・ノードの追加

始める前に

次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。

メッセージ・フローにルート・ノードを追加するには

  1. パイプライン・ペアの「パイプライン・ペア・ノード」アイコンをクリックして、「ルートの追加」をクリックします。

  2. ルート・ノードのデフォルト名の変更と説明の追加を行うには、「ルート・ノード」アイコンをクリックして、名前とアノテーションの編集をクリックします。必要に応じて名前と説明を変更し、「保存」をクリックします。


    注意:

    パイプライン名やルート・ノード名を変更すると、パイプライン・カウンタがゼロにリセットされるので、「モニター」モジュールの「ダッシュボード」ページに表示されるメッセージの数と他のコンポーネントのメッセージ数との相関関係がなくなる可能性があります。これは、Oracle Service Busでは、いったん削除して再作成するアクションとして名前の変更を処理しているためです。これらのメッセージ数は、サービスのモニター間隔と同じ時間が経過した後に再び関連付ける必要があります。

  3. ルート・ノードにアクションを追加するには、「ルート・ノード」アイコンをクリックし、「ルートの編集」をクリックします。「メッセージ・フローの編集」ページが表示されます。ルート・ノードに追加できるアクションの詳細は、以下のセクションを参照してください。

  4. 21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。

  5. 「保存」をクリックして、現在のセッションで更新をコミットします。

  6. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

21.9 ステージおよびルート・ノードの切取り、コピー、貼付け

ステージおよびルート・ノードの切り取り、コピー、貼付けが行えます。