プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.1.3)
E53004-06
目次へ移動
目次

前
次

16 Oracle JDeveloperでのパイプラインの操作

この章では、Oracle JDeveloperを使用したパイプラインまたはメッセージ・フローを作成および構成する方法について説明します。項の内容は、パイプライン・ペア、条件付きブランチ、ステージ、操作ブランチ、ルート・ノードおよびエラー・ハンドラの追加および構成です。

メッセージ・フローの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。

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

16.1 JDeveloperでのパイプライン・コンポーネントの追加

プロジェクトのメッセージ・フローおよびデータ変換または検証を定義するパイプラインを追加します。パイプラインでエラーおよびレポートを定義することもできます。新しいパイプラインを作成すると、パイプライン構成からプロキシ・サービスを生成するオプションが追加されます。

16.1.1 JDeveloperでのパイプラインの追加方法

Oracle JDeveloperのService Bus概要エディタを使用して、パイプライン・コンポーネントをService Busプロジェクトに追加できます。

パイプラインを追加するには:

  1. Oracle JDeveloperでService Busプロジェクトを開いていることを確認します。
  2. アプリケーション・ナビゲータでプロジェクト・アイコンをダブルクリックし、Service Bus概要エディタを開きます。Service Bus概要エディタの詳細は、「Service Bus概要エディタの概要」を参照してください。

    注意:

    アプリケーション・ナビゲータでプロジェクト・フォルダを右クリックし、表示されたコンテキスト・メニューで「新規」→「パイプライン」を選択することもできます。その後、手順5からパイプラインの構成を続行します。

  3. 「コンポーネント」ウィンドウから、「Service Bus」を選択します。
  4. 「リソース」リストからデザイナの「パイプライン/分割結合」レーンにパイプラインをドラッグします。

    「パイプライン・サービスの作成」ウィザードが表示されます。

  5. パイプラインの設定を構成します。

    構成フィールドについては、「ヘルプ」をクリックするか、[F1]キーを押してください。

  6. プロキシ・サービスを生成してパイプラインと関連付けるには、ウィザードの「タイプ」ページで「プロキシ・サービスとして公開」をクリックします。プロキシ・サービスのトランスポートを選択し、必要に応じて名前を変更します。
  7. ウィザードの最後のページで、「終了」をクリックします。

    パイプライン・ファイルがプロジェクトに追加され、デザイナの「パイプライン/分割結合」セクションにパイプラインが表示されます。プロキシ・サービスとしてパイプラインを公開すると、プロキシ・サービスも「プロキシ・サービス」スイムレーンに表示され、コンポーネントが自動的にワイヤリングされます。

  8. パイプラインでメッセージ・フローを定義するには、「JDeveloperでのパイプラインの表示と編集」を参照してください。
  9. JDeveloperのツールバーで「すべて保存」をクリックします。

16.2 JDeveloperでのパイプラインの表示と編集

プロキシ・サービスに対応するメッセージ・フローは、パイプラインによって処理されます。この項では、パイプライン・エディタを使用したパイプラインの表示方法について説明します。

16.2.1 JDeveloperでのパイプラインの表示および編集方法

Oracle JDeveloperのパイプライン・エディタを使用して、パイプラインのメッセージ・フローを表示および編集します。

パイプラインを表示および編集するには:

  1. Oracle JDeveloperでService Busプロジェクトを開いていることを確認します。
  2. 次の方法の1つを使用して、パイプラインのメッセージ・フローを編集します。
    • アプリケーション・ナビゲータで、パイプライン・ノードを見つけます。パイプライン・ノードを右クリックし、「開く」を選択します。かわりに、パイプライン・ノードをダブルクリックして開くこともできます。

    • アプリケーション・ナビゲータで、プロジェクト・ノード(またはoverview.xml)をクリックし、概要エディタを開きます。

      概要エディタで、パイプライン・コンポーネントをダブルクリックし、パイプライン・エディタを開きます。

    パイプライン・エディタが表示されます。エディタの左下隅の「設計」タブが選択されていることを確認します。

    選択されたパイプラインに対してまだメッセージ・フローが作成されていない場合は、パイプライン・エディタの「設計」ビューのページにパイプライン・アイコンが1つ表示されます。これは、メッセージ・フローの開始ノードです。

  3. 次の方法の1つを使用して、パイプライン・コンポーネント(ノード)を追加します。
    • 開始ノードを右クリックし、追加できるパイプライン・コンポーネントのオプションを取得します。図16-1は、開始ノードに使用できるオプションを示しています。ルート・ノード、PipelinePairノード、条件付きブランチなどのノードを追加できます。

      図16-1 ノードの右クリックによるパイプライン・コンポーネントの追加

      図16-1の説明が続きます
      「図16-1 ノードの右クリックによるパイプライン・コンポーネントの追加」の説明
    • または、「コンポーネント」ウィンドウから追加するパイプライン・コンポーネントを選択し、そのコンポーネントをパイプライン・エディタ・ウィンドウにドラッグします。パイプライン内でコンポーネントをドロップできる場所を示す黄色の円が表示されます。コンポーネントを黄色の円にドラッグします。黄色の円が緑色に変化します。コンポーネントを解放して追加します。図16-2は、開始ノードに追加しようとしているパイプライン・ペア・ノードを示しています。

    図16-2 開始ノードへのパイプライン・ペアの追加

    図16-2の説明が続きます
    「図16-2 開始ノードへのパイプライン・ペアの追加」の説明

    エディタにコンポーネントを追加するときには、エディタにそのコンポーネントを表すアイコンが表示されます。コンポーネント間の関係は、線と境界を示す四角形で示されます。

    図16-3は、パイプライン・ペア・ノードがフローに追加されたパイプラインを示しています。パイプライン・ペアは、リクエスト・パイプラインとレスポンス・パイプラインで構成されています。リクエストおよびレスポンスの各パイプラインには、アクション・ノードを含めることができるステージがあります。

    図16-3 パイプライン・ペア・ノードのあるパイプライン

    図16-3の説明が続きます
    「図16-3 パイプライン・ペア・ノードのあるパイプライン」の説明
  4. さらにコンポーネントをエディタに追加することでパイプラインの構築を続けます。たとえば、ステージ・ノードに通信アクションを追加するには、「コンポーネント」ウィンドウからエディタのステージ・ノードに通信アクションをドラッグできます。かわりに、ステージ・ノードを右クリックし、ステージ・ノードに追加できるパイプライン・コンポーネントのオプションを取得することもできます。各コンポーネントに使用できるオプションは、コンテキストに応じて異なります。
  5. Oracle JDeveloperツールバーで、「保存」をクリックします。

16.3 JDeveloperでのパイプラインへの共有変数の追加

1つのコール・チェーン内の2つのパイプラインで同じ共有変数を宣言する場合、これらは同じ変数を読み取り、変更します。つまり、パイプラインP1で共有変数varを宣言し、パイプラインP2でも共有変数varを宣言する場合、P1のvarの変更はP2に表示され、逆も当てはまります。共有変数は、文字列、ブールまたはXMLのデータ型にする必要があります。

プロキシ・サービスでメッセージを受信して処理する場合、共有変数を使用する呼び出されたすべてのパイプラインは、その変数に対して同じ値を読書きします。プロキシで受信する以降のメッセージにより、呼び出されたパイプラインに共有変数の新しいインスタンスが作成されます。

共有変数は、ローカル・プロキシの呼出しと分割-結合コンポーネントの呼出しで機能します。たとえば、パイプラインP1およびP2で共有変数を宣言するとします。ここで、P1がローカル・プロキシ・サービスまたは分割-結合コンポーネントを呼び出し、このサービスまたはコンポーネントが同様にP2を呼び出す場合、P1とP2は引き続き共有変数を共有します。

次の制限事項が共有変数の使用に適用されます。

  • システム変数($body、$attachments、$operation、$inbound、$outboundなど)は共有できません。

  • 変数は、ローカル以外のプロキシ呼出しで共有できません。たとえば、パイプラインでHTTPプロキシ・サービスを呼び出す場合、共有変数はこのコール間で伝播されません。

  • 変数は、パイプラインと分割-結合リソース間で共有できません。

  • Javaとバイナリ・コンテンツ・タイプを使用する変数はサポートされません。たとえば、XML構造に<ctx:java-content/>があるXML型変数は、共有変数としてサポートされません。

16.3.1 JDeveloperでのパイプラインへの共有変数の追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローに共有変数を追加します。

パイプラインに共有変数を追加するには

  1. パイプライン・エディタで、開始ノードを右クリックします。
  2. 表示されたコンテキスト・メニューから「共有変数の追加」を選択します。
  3. 「共有変数名の入力」フィールドに共有変数の名前を入力します。
  4. 「OK」をクリックして、パイプラインに共有変数を追加します。

16.4 JDeveloperでのパイプラインへのパイプライン・ペア・ノードの追加

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

16.4.1 JDeveloperでのパイプラインへのパイプライン・ペア・ノードの追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローにパイプライン・ペアを追加します。

パイプラインにパイプライン・ペアを追加するには:

  1. パイプライン・エディタで、開始ノード・アイコンを右クリックします。

  2. 表示されたコンテキスト・メニューから「中に挿入」→「PipelinePairNode」を選択します。パイプライン・ペア・ノードが挿入されます。

    注意:

    かわりに、「パイプライン・ペア」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。「パイプライン・ペア」コンポーネントは、「メッセージ・フロー」カテゴリの「ノード」セクションの下にあります。

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

    1. パイプライン・ペア・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

    2. 「プロパティ」ウィンドウで、必要に応じて名前および説明を変更します。

    3. Oracle JDeveloperツールバーで、「保存」をクリックします。

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

  5. パイプラインのステージにアクションを追加するには、「JDeveloperでのパイプラインのアクションの追加および編集」を参照してください。

  6. パイプライン・エディタで、「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。

  7. Oracle JDeveloperツールバーで、「保存」をクリックします。

16.5 JDeveloperでのパイプラインへの条件付きブランチの追加

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

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

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

16.5.1 JDeveloperでのパイプラインへの条件付きブランチの追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローに条件付きブランチを追加します。

パイプラインに条件付きブランチを追加するには:

  1. パイプライン・エディタで、開始ノード・アイコンまたは「ブランチ・ノード」アイコンを右クリックします。

  2. 表示されたコンテキスト・メニューから「中に挿入」→「条件付きブランチ」を選択します。条件付きブランチ・ノードが追加され、挿入したブランチ・ノードの後の既存のノードが、新しい条件付きブランチ・ノードのデフォルト・ブランチに移動します。

    注意:

    かわりに、「条件付きブランチ」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。「条件付きブランチ」コンポーネントは、「メッセージ・フロー」カテゴリの「ノード」セクションの下にあります。

  3. 条件付きブランチ・ノードのプロパティを変更するには、次のように実行します。

    1. 「条件付きブランチ」ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

    2. 「全般」セクションの下で、必要に応じて名前および説明を変更します。

    3. 「条件」セクションの下で、条件として使用するXPath式を指定します。XPath式ビルダーは、「fx」アイコンをクリックすることで起動できます。

    4. Oracle JDeveloperツールバーで、「保存」をクリックします。

  4. ブランチのプロパティを変更するには、次のように実行します。

    1. ブランチ・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

    2. 「名前」の下で、ブランチの名前を指定します。

    3. 「値」の下で、値として使用する演算子およびXPath式を指定します。XPath式ビルダーは、「fx」アイコンをクリックすることで起動できます。

    4. Oracle JDeveloperツールバーで、「保存」をクリックします。

  5. オプション:

    • 新規ブランチの追加アイコンをクリックし、新規ブランチ・ノードを追加します。

    • ブランチを右クリックし、「削除」を選択してブランチを削除します。

  6. Oracle JDeveloperツールバーで、「保存」をクリックします。

  7. パイプライン・エディタで、「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。

  8. Oracle JDeveloperツールバーで、「保存」をクリックします。

16.6 JDeveloperでのパイプラインへの操作ブランチの追加

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

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

16.6.1 JDeveloperでのパイプラインへの操作ブランチの追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローに操作ブランチを追加します。

パイプラインに操作ブランチを追加するには:

  1. パイプライン・エディタで、開始ノードまたは「ブランチ・ノード」アイコンを右クリックします。

  2. 表示されたコンテキスト・メニューから「中に挿入」→「操作ブランチ」を選択します。操作ブランチ・ノードが追加され、挿入したブランチ・ノードの後の既存のノードが、新しい操作ブランチ・ノードのデフォルト・ブランチに移動します。

    注意:

    かわりに、「操作ブランチ」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。「操作ブランチ」コンポーネントは、「メッセージ・フロー」カテゴリの「ノード」セクションの下にあります。

  3. 操作ブランチ・ノードのプロパティを変更するには、次のように実行します。

    1. 操作ブランチ・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

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

    3. Oracle JDeveloperツールバーで、「保存」をクリックします。

  4. ブランチのプロパティを変更するには、次のように実行します。

    1. ブランチ・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

    2. そのブランチによって表される「操作」を選択します。

    3. Oracle JDeveloperツールバーで、「保存」をクリックします。

  5. オプション:

    • 新規ブランチの追加アイコンをクリックし、新規ブランチ・ノードを追加します。

    • ブランチを右クリックし、「削除」を選択してブランチを削除します。

  6. パイプライン・エディタで、「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。

  7. Oracle JDeveloperツールバーで、「保存」をクリックします。

16.7 JDeveloperでのパイプラインへのステージの追加

リクエスト・パイプライン、レスポンス・パイプライン、およびエラー・ハンドラには、ステージを含めることができます。ステージでは、パイプラインを通過するメッセージを処理するアクションを構成します。

16.7.1 JDeveloperでのパイプラインへのステージの追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローにステージを追加します。

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

  1. パイプライン・エディタで、パイプライン・ペア・ノードの「リクエスト・パイプライン」アイコンまたは「レスポンス・パイプライン」アイコンを右クリックします。

  2. 表示されたコンテキスト・メニューから「中に挿入」→「ステージ」を選択します。ステージ・ノードが追加されます。

    注意:

    かわりに、「ステージ」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。「ステージ」コンポーネントは、「メッセージ・フロー」カテゴリの「ノード」セクションの下にあります。

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

    1. ステージ・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。

      注意:

      「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。

    2. 選択したステージ・ノードの「名前」および「説明」フィールドを編集します。

    3. Oracle JDeveloperツールバーで、「保存」をクリックします。

  4. ステージにアクションを追加するには、「ステージ」アイコンを右クリックし、表示されるコンテキスト・メニューから「中に挿入」「ActionName」をクリックします。「JDeveloperでのパイプラインのアクションの追加および編集」を参照してください。

  5. ステージにエラー処理を追加するには、「ステージ」アイコンを右クリックし、表示されるコンテキスト・メニューから「ステージ・エラー・ハンドラの追加」をクリックします。「JDeveloperでのエラー・ハンドラの追加」を参照してください。

  6. 「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。

  7. Oracle JDeveloperツールバーで、「保存」をクリックします。

16.8 JDeveloperでのパイプラインへのルート・ノードの追加

ルート・ノードでは、別のサービスとのリクエスト/レスポンス通信が実行されます。ルート・ノードはプロキシ・サービスに関するリクエスト処理とレスポンス処理の境界を表します。ルート・ノードがリクエスト・メッセージをディスパッチすると、リクエスト処理が終了したと見なされます。ルート・ノードがレスポンス・メッセージを受信したときに、レスポンス処理が始まります。ルート・ノードは、リクエスト・トランスフォーメーション、レスポンス・トランスフォーメーション、および条件付きルーティングに対応します。

ルート・ノードはリクエスト処理とレスポンス処理の境界を表すので、パイプライン内に子孫を持つことはできません。

16.8.1 JDeveloperでのパイプラインへのルート・ノードの追加方法

パイプライン・エディタを使用して、パイプラインのメッセージ・フローにルート・ノードを追加します。

パイプラインにルート・ノードを追加するには:

  1. パイプライン・エディタで、開始ノードまたは「ブランチ・ノード」アイコンを右クリックします。
  2. コンテキスト・メニューから「中に挿入」→「ルート」を選択します。ルート・ノードが追加されます。

    注意:

    かわりに、「ルート」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。「ルート」コンポーネントは、「メッセージ・フロー」カテゴリの「ノード」セクションの下にあります。

  3. ルート・ノードにアクションを追加するには、「ルート・ノード」アイコンを右クリックし、コンテキスト・メニューから適切なオプションを選択します。ルート・ノードに追加できるアクションの詳細は、次のセクションを参照してください。
  4. パイプライン・エディタで、「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
  5. Oracle JDeveloperツールバーで、「保存」をクリックします。

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

パイプライン・エディタでは、ステージおよびルート・ノードの切取り、コピーおよび貼付けが可能です。

  • ステージまたはルート・ノードを切り取るには、そのアイコンを右クリックし、「切取り」または「コピー」を選択します。

  • このプロキシ・サービスのメッセージ・フロー内の異なるパイプライン・ペアから、または異なるプロキシ・サービスのメッセージ・フローから切り取ったりコピーしたステージを貼り付けるには、次のいずれかを行います。

    • ターゲットの「リクエスト・パイプライン」または「レスポンス・パイプライン」アイコンを右クリックして、「貼付け」をクリックします。

    • パイプラインの既存の「ステージ」アイコンを右クリックし、「貼付け」をクリックします。

  • 別のパイプラインのメッセージ・フローから切り取ったりコピーしたルート・ノードを貼り付けるには、ターゲットの「ブランチ・ノード」アイコンをクリックして、「ルートの貼付け」をクリックします。

16.10 JDeveloperでのリシーケンサの構成

Service Busのリシーケンサは、関連はあるが順序どおりではないメッセージのストリームを連続した順序に並べ替えます。受信メッセージが到着すると、それらはランダムな順序になっています。リシーケンサは、順次または時系列の情報に基づきメッセージを順序付け、メッセージをターゲット・サービスに対して正しい手順で送信します。順序付けは、選択した順序付け戦略に基づき実行されます。

リシーケンサは、パイプライン・コンポーネント内で構成できます。次のサービス・タイプのパイプラインがサポートされます。

  • WSDL: リシーケンスは、リクエスト・タイプのみの操作に利用できます。

  • メッセージ・タイプ: リクエスト・メッセージ・タイプは「XML」、レスポンス・メッセージ・タイプは「なし」にします。

注意:

リシーケンサでは、「任意のXML」「任意のSOAP」のサービス・タイプはサポートされません。WSDLベースのサービスでは、WSDLファイルは一方向であることが必要です。つまり、これに出力要素を含めることはできません。リシーケンス・パイプラインでの生成WSDLファイルの使用については、「JDeveloperでのサービスからのWSDLファイルの生成方法」を参照してください。

16.10.1 JDeveloperでパイプラインでのリシーケンスを構成する方法

この項では、JDeveloperを使用してパイプラインでリシーケンサを構成する方法について説明します。

パイプラインでリシーケンスを有効にするには:

  1. JDeveloperでService Busプロジェクトを開いていることを確認します。
  2. 次の方法の1つを使用して、パイプライン構成を編集します。
    • アプリケーション・ナビゲータで、パイプライン・ノードを見つけます。パイプライン・ノードを右クリックし、「開く」を選択します。かわりに、パイプライン・ノードをダブルクリックして開くこともできます。

    • アプリケーション・ナビゲータで、プロジェクト・ノード(またはoverview.xml)をクリックし、概要エディタを開きます。

      概要エディタで、パイプライン・コンポーネントをダブルクリックし、パイプライン・エディタを開きます。

    パイプライン・エディタが表示されます。エディタの左下隅から「構成」タブを選択します。

  3. エディタの左ペインから「リシーケンサ」を選択します。「リシーケンサ構成」ページが表示されます。図16-4は、「リシーケンサ構成」ページを示しています。

    図16-4 「リシーケンサ構成」ページ

    図16-4の説明が続きます
    「図16-4 「リシーケンサ構成」ページ」の説明
  4. 「リシーケンサの有効化」を選択し、パイプラインのリシーケンスを有効化します。
  5. 「リシーケンス・レベル」を選択します。「パイプライン」を選択して、コンポーネント・レベルでリシーケンスを構成します。「操作」を選択して、操作レベルでリシーケンスを構成します。リシーケンス・レベルの詳細は、「JDeveloperでのリシーケンス・レベルの選択」を参照してください。

    「操作」を選択した場合、操作ごとにリシーケンスを個別に構成するオプションを利用できます。

  6. 「再順序」モードを選択します。「操作」レベルでリシーケンスを構成する場合、各操作に対応する「リシーケンス・モード」を選択します。各種リシーケンス・オプションの詳細は、「JDeveloperでのリシーケンス・モードの構成方法」を参照してください。

    選択した「再順序」モードに応じて、そのモードに対応するオプションが表示されます。たとえば、「標準」モードを選択すると、「グループ」、「ID」などの値を選択する必要があります。図16-5は、「標準」モードを選択した場合に表示されるリシーケンサ構成オプションを示しています。

    図16-5 「標準」リシーケンス・モードの場合のリシーケンサ・オプション

    図16-5の説明が続きます
    「図16-5 「標準」リシーケンス・モードの場合のリシーケンサ・オプション」の説明
  7. 使用するワーク・マネージャを指定する「ディスパッチ・ポリシー」を入力します。デフォルトのワーク・マネージャは、他にワーク・マネージャがない場合に使用されます。
  8. JDeveloperツールバーで、「保存」をクリックします。

16.10.2 JDeveloperでのリシーケンス・レベルの選択

リシーケンスは、パイプライン・レベルまたは操作レベルのいずれかで定義できます。リシーケンス・レベルの値は、次のとおりです。

  • パイプライン: コンポーネント・レベルで指定した共通構成を使用してすべてのメッセージをリシーケンスします。コンポーネントに複数の操作がある場合、各操作のメッセージは、共有コンポーネント構成を使用して個別に順序付けられます。

    コンポーネント・レベルのリシーケンスは、パイプライン・コンポーネントのすべての操作でリクエスト一方向メッセージをサポートする場合のみ許可されます。操作のサブセットのみがリクエスト一方向メッセージをサポートする場合、これらの操作に操作レベルのリシーケンスを個別に指定できます。

  • 操作: WSDLベースのパイプラインの場合、リシーケンスは操作レベルで構成できます。各操作には異なるリシーケンサ構成を設定できます。リクエスト一方向メッセージをサポートする操作のみをリシーケンスできます。WSDL以外のパイプラインでは、操作レベルでリシーケンサを構成できません。

16.10.3 JDeveloperでのリシーケンス・モードの構成方法

この項では、様々なリシーケンス・モードの構成方法を示します。各種リシーケンス・モードの詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のリシーケンス順序に関する項を参照してください。デフォルトでは、グループIDの文字数制限は1000、IDの文字数制限は100です。

16.10.3.1 標準リシーケンサの構成

標準リシーケンサを構成するには:

  1. 「リシーケンサ構成」ページで、「再順序」ドロップダウン・リストから「標準」を選択します。操作レベルでリシーケンスを構成する場合、操作の「リシーケンス・モード」ドロップダウン・リストから、「標準」を選択します。

    「リシーケンサ・オプション」または「操作の詳細」領域に、標準リシーケンスに関連するフィールドが移入されます。詳細は、図16-5を参照してください。

  2. 表16-1に示すフィールドに入力します。

表16-1 標準リシーケンスのオプション

フィールド名 説明 デフォルト値 必須

グループ

グループ化が行われる受信メッセージのフィールドを指し示すXQuery式。値を入力しない場合、すべてのメッセージが1つのデフォルト・グループに配置されます。

右側の「式ビルダー」アイコンをクリックし、XQuery式ビルダーを起動します。

N/A

N

ID

リシーケンスが行われる受信メッセージのフィールドを指し示すXQuery式。

右側の「式ビルダー」アイコンをクリックし、XQuery式ビルダーを起動します。

N/A

Y

開始

ID順序の開始番号。

1

N

増分

ID順序の増分。

1

N

タイムアウト

予期されているメッセージを待機する期間(秒単位)。タイムアウトが発生すると、再シーケンサはグループをタイムアウトとしてロックします。

デフォルト値の0の場合、デフォルトではグループに対してタイムアウトが発生することはありません。

0

N

16.10.3.2 FIFOリシーケンサの構成

FIFOリシーケンサを構成するには:

  1. 「リシーケンサ構成」ページで、「再順序」ドロップダウン・リストから「FIFO」を選択します。操作レベルでリシーケンスを構成する場合、操作の「リシーケンス・モード」ドロップダウン・リストから、「FIFO」を選択します。

    「リシーケンサ・オプション」または「操作の詳細」領域に、FIFOリシーケンスに関連するフィールドが移入されます。

  2. 「グループ」フィールドに、グループ化が実行される受信メッセージ内のフィールドを指すXQuery式を入力します。

    右側の「式ビルダー」アイコンをクリックし、XQuery式ビルダーを起動します。

16.10.3.3 ベスト・エフォート・リシーケンサの構成

ベスト・エフォート・リシーケンサを構成するには:

  1. 「リシーケンサ構成」ページで、「再順序」ドロップダウン・リストから「ベスト・エフォート」を選択します。操作レベルでリシーケンスを構成する場合、操作の「リシーケンス・モード」ドロップダウン・リストから、「ベスト・エフォート」を選択します。

    「リシーケンサ・オプション」または「操作の詳細」領域に、ベスト・エフォート・リシーケンスに関連するフィールドが移入されます。

  2. 表16-2に示すフィールドに入力し、ベスト・エフォート・リシーケンサを構成します。

    図16-2 ベスト・エフォート・リシーケンス・オプション

    フィールド名 説明 デフォルト値 必須

    グループ

    グループ化が行われる受信メッセージのフィールドを指し示すXQuery式。ここに値を入力しない場合、すべてのメッセージは1つのデフォルト・グループ内になると見なされます。

    右側の「式ビルダー」アイコンをクリックし、XQuery式ビルダーを起動します。

    N/A

    N

    ID

    リシーケンスが行われる、IDを含む受信メッセージのフィールドを指し示すXQuery式。

    右側の「式ビルダー」アイコンをクリックし、XQuery式ビルダーを起動します。

    N/A

    Y

    データ型

    順序IDのデータ型。注文プロセスはデータ型に基づいています。サポートされる値は、「日付/時刻」と「数値」です。

    数値

    Y

    最大行数

    再シーケンサが一度にデータ・ストアから取得する、順に従ったメッセージの数。これは正の整数にしてください。

    「最大行数」または「時間ウィンドウ」(次に説明)を指定する必要がありますが、両方を指定しないでください。

    5

    N

    時間ウィンドウ

    メッセージが到着した後、リシーケンスに関してデータ・ストアからメッセージを選択するまでに待機する秒単位の時間。デフォルト値の0の場合、待機しません。

    「時間ウィンドウ」または「最大行数」(前述)を指定する必要がありますが、両方を指定しないでください。

    0

    N