14 Oracle Service Busコンソールでのパイプライン・アクションの操作

この章では、ルート、パブリッシュ、サービス・コールアウト、トランスポート・ヘッダー、条件付きアクション、エラー・アクション、メッセージ変換アクションなど、Oracle Service Busコンソールを使用したパイプラインへの異なるタイプのアクションの追加方法について説明します。

アクションとは、パイプラインを流れるメッセージの定義方法を決定するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノードおよびブランチ・ノードの要素です。

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

14.1 コンソールでのパイプライン・アクションの追加と編集

アクションとは、プロキシ・サービスを流れるメッセージの定義方法を決定するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノードおよびブランチ・ノードの要素です。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

また、パイプライン・ステージ、ルート・ノード、およびエラー・ハンドラ・ステージをすでに追加していることも前提としています。参照:

パイプラインにアクションを追加するには:

  1. アクションを追加するコンポーネントを選択します。たとえば、「ステージ」アイコンをクリックして、「ステージの編集」をクリックするか、または、「ルート・ノード」アイコンをクリックし、「ルートの編集」をクリックします。
  2. ステージまたはルート・ノードにすでに追加しているアクションに応じて、次のいずれかを行います。
    • まだアクションを何も追加していない場合、「ステージ構成の編集」ページには、「アクションの追加」アイコンのみが表示されます。そのアイコンをクリックして、アクション・タイプを選択します。

    • すでに1つ以上のアクションを追加している場合、「ステージ構成の編集」ページには、「パブリッシュ」アイコン、「ルーティング」アイコンなど、それらのアクションを表す1つ以上のアイコンが表示されます。該当するアイコンをクリックし、「アクションの追加」をクリックして、アクション・タイプを選択します。

    • パブリッシュ・アクションのリクエストおよびレスポンス・アクションなどの一部のアクションには、アクションを割り当てるための「アクションの追加」リンクが含まれています。そのアイコンをクリックして、アクション・タイプを選択します。

    パイプラインのアクションは任意の組合せで連鎖できます。

    パイプラインに構成できるアクションを表14-1から表14-4に示します。

    表14-1 パイプライン - 通信アクション

    アクション 説明 詳細
    「動的にパブリッシュ」アイコン

    動的にパブリッシュ

    XQuery式によって識別されたサービスにメッセージをパブリッシュします。

    コンソールでの動的パブリッシュ・アクションの追加

    「パブリッシュ」アイコン

    パブリッシュ

    静的に指定されたサービスにメッセージをパブリッシュします。

    コンソールでのパブリッシュ・アクションの追加

    「パブリッシュ表」アイコン

    パブリッシュ表

    ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュします。切替え式の条件ロジックを使用して、どのサービスをパブリッシュに使用するか実行時に決定します。

    コンソールでのパブリッシュ表アクションの追加

    「ルーティング・オプション」アイコン

    ルーティング・オプション

    アウトバウンド・リクエストのURI、サービスの品質、モード、再試行パラメータ、メッセージ優先度の各プロパティの一部またはすべてを変更します。

    コンソールでのルーティング・オプション・アクションの追加

    「サービス・コールアウト」アイコン

    サービス・コールアウト

    Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成します。

    コンソールでのサービス・コールアウト・アクションの追加

    「トランスポート・ヘッダー」アイコン

    トランスポート・ヘッダー

    メッセージのトランスポート・ヘッダーの値を設定します。

    コンソールでのトランスポート・ヘッダー・アクションの追加

    「動的ルーティング」アイコン

    動的ルーティング

    XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。

    コンソールでのルート・ノードへの動的ルーティングの追加

    「ルーティング」アイコン

    ルーティング

    メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。

    コンソールでのルート・ノードへのルーティング・アクションの追加

    「ルーティング表」アイコン

    ルーティング表

    切替え式の条件表に含まれた一連のルートを割り当てます。これは、単一のXQuery式の結果に基づいて、異なるルートが選択されます。

    コンソールでのルート・ノードへのルーティング表の追加

    表14-2 パイプライン - フロー制御アクション

    アクション 説明 詳細
    「For Each」アイコン

    For each

    値のシーケンスを反復処理し、アクションのブロックを実行します。

    コンソールでのFor-Eachアクションの追加

    「If...Then」アイコン

    If...Then

    XQuery式のブール結果に基づいて、1つのアクションまたは一連のアクションを条件付きで実行します。

    コンソールでのIf-Thenアクションの追加

    「エラーの生成」アイコン

    エラーの生成

    指定されたエラー・コード(文字列)と記述を含む例外を発生させます。

    コンソールでのエラーの生成アクションの追加

    「返信」アイコン

    返信

    呼出し元に即時返信を送信します。

    コンソールでの返信アクションの追加

    「再開」アイコン

    再開

    エラー・ハンドラによってエラーが処理された後、パイプラインを再開します。

    コンソールでの再開アクションの追加

    「スキップ」アイコン

    スキップ

    実行時に現在のステージの実行がスキップされて、処理がパイプラインの次のステージに進むように指定します。

    コンソールでのスキップ・アクションの追加

    表14-3 パイプライン - メッセージ処理アクション

    アクション 説明 詳細
    「割当て」アイコン

    割当て

    コンテキスト変数にXQuery式の結果を割り当てます。

    コンソールでの割当てアクションの追加

    「削除」アイコン

    削除

    XPath式で指定されたコンテキスト変数または一連のノードを削除します。

    コンソールでの削除アクションの追加

    「挿入」アイコン

    挿入

    XPath式で選択したノードを基準として特定された場所にXQuery式の結果を挿入します。

    挿入アクションの追加

    「Javaコールアウト」アイコン

    Javaコールアウト

    パイプラインからJavaメソッドを呼び出します。

    コンソールでのJavaコールアウト・アクションの追加

    「JavaScript」アイコン

    JavaScript

    JavaScript式を使用するXMLまたはJSONペイロードのコンテンツを操作します。

    コンソールでのJavaScriptアクションの追加

    「MFL変換」アイコン

    MFL変換

    パイプラインで非XMLからXML、またはXMLから非XMLに変換します。

    コンソールでのMFL変換アクションの追加

    「nXSD変換」アイコン

    nXSD変換

    パイプラインで、ネイティブ・データ・フォーマット(nXSD)からXMLに、またはXMLからネイティブ・データ・フォーマット(nXSD)に変換します。

    nXSD変換アクションの追加

    「名前変更」アイコン

    名前の変更

    要素のコンテンツを変更せずに、XPath式で選択した要素の名前を変更します。

    コンソールでの名前変更アクションの追加

    「置換」アイコン

    置換

    XPath式で指定されたノードまたはノードのコンテンツを置き換えます。

    コンソールでの置換アクションの追加

    「検証」アイコン

    検証

    XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証します。

    コンソールでの検証アクションの追加

    表14-4 パイプライン - レポート・アクション

    アクション 説明 詳細
    「アラート」アイコン

    アラート

    パイプラインのメッセージ・コンテキストに基づいて、アラート通知を送信します。

    コンソールでのアラート・アクションの追加

    「ログ」アイコン

    ログ

    ログに記録するメッセージを作成します。

    コンソールでのログ・アクションの追加

    「レポート」アイコン

    レポート

    プロキシ・サービスのメッセージ・レポートを有効にします。

    コンソールでのレポート・アクションの追加

  3. アクションを追加したら、表14-5に示すように、さらにステージまたはルート・ノードのアクションを構成できます。

    表14-5 ステージ構成の編集タスク

    目的 ステップ

    アクションの削除

    該当するアイコンを選択してから、「このアクションを削除」をクリックします。

    アクションを下に移動する(降格する)

    該当するアイコンを選択してから、「アクションを下に移動」をクリックします。アクションがこのステージに含まれる次のアクションの下に移動します。

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

    アクションを上に移動する(昇格する)

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

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

    アクションの切取り

    該当するアイコンを選択してから、「切取り」をクリックします。

    アクションのコピー

    該当するアイコンを選択してから、「コピー」をクリックします。

    切り取りまたはコピーしたアクションを貼り付ける

    該当するアイコンを選択してから、「アクションの貼付け」をクリックします。

    アクションのコピーと貼付けは、ステージ全体で可能です。ただし、「割当て」アクション、「置換」アクション、または「挿入」アクションの場合は、次の点に注意してください。

    • ソース(コピー)ステージの変数関連およびユーザー定義のすべてのネームスペースは、ターゲット(貼付け)ステージではユーザー定義のネームスペースとして追加されます。

    • 重複するネームスペース(ソース・ステージおよびターゲット・ステージ両方で同一のネームスペース)はコピーされません。

    • 競合するネームスペース(同じ接頭辞を使用しているがURIの異なるネームスペース宣言)はコピーされます。構成の保存は可能でありますが、ステージBの競合するネームスペース宣言を削除しないかぎり、アクティブ化することはできません。

    ステージの検証

    「ステージ構成の編集」ページで、「検証」をクリックして、そのステージで構成したすべてのアクションを検証します。有効化されたアクションのみが検証されます。

    ステージが無効の場合、「検証」ボタンは使用できません。

  4. 保存」をクリックして、現在のセッションで更新をコミットします。
  5. 「メッセージ・フローの編集」ページで、「コンソールでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
  6. 保存」をクリックして、現在のセッションで更新をコミットします。
  7. セッションを終了して構成をランタイムにデプロイするには、Oracle Service Busコンソールの右上隅にある「アクティブ化」をクリックします。

14.2 コンソールでのパブリッシュ・アクションの追加

静的に指定された、メッセージのターゲット・サービスを指定し、メッセージのパッケージおよびサービスへの送信方法を構成するには、パブリッシュ・アクションを使用します。

パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。

パブリッシュ・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 「アクションの追加」「通信」「パブリッシュ」を選択します。
  3. 「サービス」をクリックします。「サービスの選択」ページが表示されます。
  4. リストからサービスを選択してから、「発行」をクリックします。このサービスがメッセージのターゲット・サービスとなります。
  5. サービスの操作がすでに定義されている場合、「操作」リストから選択して、呼び出す操作を指定できます。
  6. アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。
  7. メッセージのパッケージとサービスへの送信方法を構成するために、「リクエスト・アクション」フィールドで「アクションの追加」をクリックします。サービスと関連付けるアクションを選択します。複数のアクションを追加することも可能です。「コンソールでのパイプライン・アクションの追加と編集」を参照してください。
  8. 保存」をクリックして、現在のセッションで更新をコミットします。

14.3 コンソールでのパブリッシュ表アクションの追加

ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュするには、パブリッシュ表アクションを使用します。

切替え式の条件ロジックを使用して、どのサービスをパブリッシュに使用するか実行時に決定します。

パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。

パブリッシュ表アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 「アクションの追加」「通信」「パブリッシュ表」を選択します。
  3. 「式」をクリックします。XQuery式エディタ・ページが表示されます。実行時にルーティングの決定を行う値を返すXQuery式を作成します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  4. 演算子」リストから、比較演算子を選択します。その後で、隣のフィールドに、XQuery式から返される値が評価される対象の値を入力します。
  5. 「サービス」をクリックして、指定した値の式による評価がtrueの場合にメッセージをパブリッシュするサービスを選択します。「サービスの選択」ページが表示されます。
  6. リストからサービスを選択してから、「発行」をクリックします。このサービスがメッセージのターゲット・サービスとなります。
  7. サービスの操作がすでに定義されている場合、「invoking」リストから選択して、呼び出す操作を指定できます。
  8. アウトバウンド操作をインバウンド操作と同じにする場合、「Use inbound operation for outbound」チェック・ボックスを選択します。
  9. 「リクエスト・アクション」フィールドで、メッセージのパッケージとサービスへの送信方法を構成するために、「アクションの追加」をクリックします。次に、サービスに関連付ける1つ以上のアクションを選択します。追加するアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」を参照してください。
  10. 新しいケースを挿入するには、「Case」アイコンをクリックし、「Insert New Case」を選択します。
  11. 新しいケースについて、ステップ4から8を繰り返します。
  12. ビジネス・ロジックで指定されているようにケースを追加します。
  13. 最後に定義したケースの「Case」アイコンをクリックして、「Insert Default Case」を選択し、デフォルト・ケースを最後に追加します。
  14. デフォルト・ケースを構成します。このケースの構成では、それ以前のケースが満たされていない場合のルーティングの動作を指定します。
  15. 保存」をクリックして、現在のセッションで更新をコミットします。

14.4 コンソールでの動的パブリッシュ・アクションの追加

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

パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。

動的パブリッシュ・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「通信」「動的にパブリッシュ」を選択します。
  3. 「式」をクリックします。
  4. XQuery式エディタで、XQuery式を入力するか、次と同様の結果となるXQueryリソースを選択します。
    <ctx:route>
     <ctx:service isProxy="false">project/folder/businessservicename</ctx:service>
     <ctx:operation>foo</ctx:operation>
    </ctx:route>

    ノート:

    プロキシ・サービスが呼び出されている場合は、isProxyをtrueに設定します。ビジネス・サービスが呼び出されている場合は、isProxyをfalseに設定します。

    operation要素は省略可能です。

    または、次のコードでパイプラインにルーティングします。

    <ctx:route>
      <ctx:pipeline>project/folder/pipeline</ctx:pipeline>
    </ctx:route>
    

    または、次のコードで分割結合にルーティングします。

    <ctx:route>
      <ctx:splitjoin>project/folder/splitjoin</ctx:splitjoin>
    </ctx:route>
  5. 「保存」をクリックします。
  6. 要求アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」のアクションの表を参照してください。
  7. 保存」をクリックして、現在のセッションで更新をコミットします。

14.5 コンソールでのルーティング・オプション・アクションの追加

$outboundのアウトバウンド・リクエストのURI、サービスの品質、モードおよび再試行パラメータの一部またはすべてを変更するには、ルーティング・オプション・アクションを使用します。

これらのプロパティは、$outbound上の割当て、挿入、置換または削除アクションで変更できますが、ルーティング・オプションを使用すると、XPath、XQueryまたは$outboundコンテキスト変数の構造を理解していなくてもこのタスクを実行できます。

ルーティング・オプションのアクションはコンテキスト変数$outboundが有効な場合にのみ使用できます。次のアクションに追加できます。

  • パブリッシュ

  • 動的にパブリッシュ

  • パブリッシュ表

  • サービス・コールアウト

  • ルーティング

  • 動的ルーティング

  • ルーティング表

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

ルーティング・オプションのアクションを構成するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「通信」「ルーティング・オプション」を選択します。
  3. 次のステップのいずれか、またはすべてを実行します。
    • アウトバウンド・メッセージのURIを設定する場合: 「URI」を選択して、XQuery式エディタをクリックします。URIを返す式を入力します。これで呼び出されたサービスのURIがオーバーライドされます。

      ノート:

      別のプロキシ・サービスにルーティングする場合は、URIのオーバーライドは無効です。

    • サービス品質要素を設定する場合: 「サービス品質」を選択して、リストで「サービス品質」オプションを選択します。これで、自動計算されたデフォルトがオーバーライドされます。

    • モードを設定するには、「モード」を選択して、リストから「リクエスト」または「リクエスト-レスポンス」を選択します。

      ノート:

      これは、通常、呼び出されたサービスのインタフェースに基づいて、自動的に設定されています。Any SoapまたはAny XMLサービスなどでは、設定されていない場合もあります。

    • 再試行間隔を設定する場合: 「再試行間隔」を選択して、再試行の間隔を秒単位で指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。

    • 再試行回数を設定する場合: 「再試行回数」を選択して、アクションを中断するまでの再試行回数を指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。

    • メッセージの優先度を設定する場合: 「優先度」を選択して、XQuery式エディタをクリックします。正の整数を返す式を入力します。

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

14.6 コンソールでのサービス・コールアウト・アクションの追加

Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成するには、サービス・コールアウト・アクションを使用します。

サービス・コールアウト・アクションの詳細は「サービス・コールアウト・メッセージの作成」を参照してください。

サービス・コールアウト・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「通信」「サービス・コールアウト」を選択します。
  3. 「サービス」をクリックします。サービス・ブラウザが表示されます。
  4. 登録済のプロキシ・サービスまたはビジネス・サービスのリストでサービスを選択し、「発行」をクリックします。
  5. 前述のステップ3で選択したサービスがWSDLベースであり、サービスで呼び出せる操作がある場合、これらの操作は操作の呼出しリストに一覧表示されます。サービスで呼び出す操作を選択します。

    ノート:

    様々な理由からService Busで必要とする操作を選択すると、選択した操作のみが呼び出されることは保証されません。たとえば、操作Aを選択した場合でも、メッセージに操作Bの呼び出しが含まれていると、操作Bも呼び出されます。

  6. 次のいずれかのオプションを選択して、リクエスト・メッセージとレスポンス・メッセージの構成方法を指定します。
    • 「SOAP本体の構成」を選択して、SOAP本体を構成します。このオプションを選択すると、$bodyを直接使用できます。

      ノート:

      このオプションでサポートしているSOAP-RPCエンコード形式は、ペイロードのパラメータやドキュメントを構成している場合はサポートされません。

    • 「ペイロード・パラメータの構成」または「ペイロード・ドキュメントの構成」を選択して、ペイロードを構成します。

  7. 以降の構成オプションは、選択したサービスの種類とそのサービスに対して選択した構成オプションによって異なります。

    表14-6に、各オプションの手順を示します。

    表14-6 サービス・コールアウトの構成オプション

    対象オプション... 次のステップを実行...

    「SOAPリクエスト本体」および 「SOAPレスポンス本体」

    これらのオプションを構成するには、次の手順を実行します。

    • 「SOAPリクエスト本体」フィールドに、コールアウト・リクエストのSOAP本体要素のXMLを保持する変数の名前を入力します。

    • 「SOAPレスポンス本体」フィールドに、レスポンスのSOAP本体要素のXMLがバインドされる変数の名前を入力します。

    「リクエスト添付変数」および「レスポンス添付変数」

    これらのオプションを構成するには(オプション)、

    • 「リクエスト添付変数」フィールドに、アウトバウンド・リクエスト添付に対応するXMLを保持する変数の名前を入力します。

    • 「レスポンス添付変数」フィールドに、アウトバウンド・レスポンス添付に対応するXMLを保持する変数の名前を入力します。

    「SOAPリクエスト・ヘッダー」および 「SOAPレスポンス・ヘッダー」

    これらのオプションを構成するには、次の手順を実行します。

    • 「SOAPリクエスト・ヘッダー」フィールドに、コールアウト・リクエストのSOAPヘッダー要素のXMLを保持する変数の名前を入力します。

      SOAPリクエスト・ヘッダーの入力ドキュメントは、<soap-env:Header>...</soap-env:Header>でラップする必要があります。

    • 「SOAPレスポンス・ヘッダー」フィールドに、レスポンスのSOAPヘッダー(存在する場合)のXMLがバインドされる変数の名前を入力します。

    「リクエスト・パラメータ」および 「レスポンス・パラメータ」

    オプションを構成するには、次の手順を実行します。

    • 「リクエスト・パラメータ」フィールドに、実行時に評価される、リクエスト・パラメータの値を指定する変数の名前を入力します。

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

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

    • 「レスポンス・パラメータ」フィールドに、実行時にレスポンスを割り当てる変数の名前を入力します。

    「リクエスト・ドキュメント」および 「レスポンス・ドキュメント」

    これらのオプションを構成するには、次の手順を実行します。

    • 「リクエスト・ドキュメント変数」フィールドに、リクエスト・ドキュメントを割り当てる変数の名前を入力します。

      SOAPドキュメント・タイプのサービスの場合、サービスに送信されるSOAPメッセージの本文を作成する変数は、実行時に評価されます。「任意のXML」サービスの場合、サービスに送信されるXMLメッセージの本文を作成する変数は、実行時に評価されます。

      SOAPドキュメント・タイプのサービスおよび任意のXMLサービスの場合、入力変数にはコアのペイロード・ドキュメントのみを指定します。SOAPパッケージは、Service Busによって自動的に作成されます。そのため、入力ドキュメントを<soap-env:Body>...</soap-env:Body>でラップしません。

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

      メッセージ・サービスの場合、メッセージの本文を作成する変数は、サービスが予期するデータ型に基づいて評価されます。次の制限は、メッセージ・サービスで使用される変数に適用されます。

      - バイナリ・データを受信するサービスの場合は、変数にctx:binary-content要素が必要です。

      - MFLデータを受信するサービスの場合は、変数に同等のXMLデータが必要です。

      - テキスト・データを受信するサービスの場合、変数は文字列になります。

    • 「レスポンス・ドキュメント変数」フィールドに、実行時にレスポンス・ドキュメントを割り当てる変数の名前を入力します。

  8. (オプション)1つ以上のトランスポート・ヘッダーを追加します。詳細は、「コンソールでのトランスポート・ヘッダー・アクションの追加」を参照してください。

    ノート:

    指定するトランスポート・ヘッダーに加え、その他のヘッダーがService Busバインディング・レイヤーによって追加されます。詳細は、「パイプラインでのトランスポート・ヘッダーの構成」を参照してください。

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

14.7 コンソールでのトランスポート・ヘッダー・アクションの追加

メッセージのヘッダーの値を設定するには、トランスポート・ヘッダー・アクションを使用します。

トランスポート・ヘッダー・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「通信」「トランスポート・ヘッダー」を選択します。

  3. 「のトランスポート・ヘッダーを設定」リストから、次のいずれかを選択して、どのメッセージ・コンテキストの場所を変更するかをランタイムに対して指定します。

    • 「アウトバウンド・リクエスト」 - アウトバウンド・リクエスト(ルート、パブリッシュまたはサービス・コールアウト・アクションでプロキシ・サービスによって送信されるメッセージ)のトランスポート・ヘッダーの値を設定するには、このオプションを選択します。これらのヘッダー要素は、メッセージ・コンテキストの次の場所にあります。

      $outbound/ctx:transport/ctx:request/tp:headers
      
    • 「インバウンド・レスポンス」 - インバウンド・レスポンス(プロキシ・サービスがクライアントに返信するレスポンス・メッセージ)のトランスポート・ヘッダーの値を設定するには、このオプションを選択します。これらのヘッダー要素は、メッセージ・コンテキストの次の場所にあります。

      $inbound/ctx:transport/ctx:response/tp:headers
      
  4. (オプション)すべてのヘッダーをインバウンド・メッセージとアウトバウンド・メッセージとの間でパススルーするには、「パイプラインを介してすべてのヘッダーを渡す」を選択します。ソース・ヘッダー・セットのすべてのヘッダーはターゲット・ヘッダー・セットにコピーされ、ターゲット・ヘッダー・セットの既存の値はすべて上書きされます。

    ヘッダー固有のパス・スルー・オプションに関連してこのオプションを使用する方法の詳細は、「パイプラインでのトランスポート・ヘッダーの構成」を参照してください。

  5. 追加する各ヘッダーについて、次のステップを行います。

    1. 「トランスポート・ヘッダー」表で「ヘッダーの追加」をクリックして、ヘッダーを構成するためのフィールドを表示します。

    2. 次のいずれかを実行して、ヘッダーを指定します。

      • 「名前」列のリストから、ヘッダー名を選択します。リストには、事前定義されたすべてのターゲット・トランスポートのヘッダー名が含まれています(たとえば、HTTPトランスポートの場合はContent-Type、JMSトランスポートの場合はJMSCorrelationIDなど)。

      • 「その他」フィールドにヘッダー名を入力します。ヘッダー名がこのサービスのトランスポート用に事前定義されたいずれかのヘッダーでない場合、そのヘッダーはトランスポート仕様の定義のとおりユーザー・ヘッダーになります。

    3. 「アクション」列でいずれかのオプションを選択して、ヘッダーの値の設定方法を指定します。

      ヘッダーを式に設定

      このオプションを選択すると、XQuery式またはXSLT式を使用して、ヘッダーの値を設定できます。「text/xml」などの簡単な式にすることも、複雑なXQuery式またはXSLT式にすることもできます。

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

      注意:

      このアクションで指定できるヘッダー設定がすべて実行時に反映されるわけではありません。設定できる所定のトランスポートのヘッダーおよび実行時に反映されるそれらの設定の詳細は、「パイプラインでのトランスポート・ヘッダーの構成」を参照してください。

      ヘッダーの削除

      リクエストまたはレスポンスのメタデータからヘッダーが削除されるように指定します。

      「インバウンド・リクエストからヘッダーをコピー」(アウトバウンド・リクエストのトランスポート・ヘッダーを設定している場合)

      または

      「アウトバウンド・レスポンスからヘッダーをコピー」(インバウンド・レスポンスのトランスポート・ヘッダーを設定している場合)

      このヘッダーがインバウンド・メッセージの同じ名前を持つ対応するヘッダーからアウトバウンド・メッセージに、またその逆に直接コピーされるように指定します。たとえば、アウトバウンド・リクエストのSOAPActionヘッダーを設定する場合は、「インバウンド・リクエストからヘッダーをコピー」を選択すると、ランタイムが$inboundのSOAPActionリクエスト・ヘッダーから値をコピーします。インバウンド・レスポンス・ヘッダーの場合、コピーするヘッダーのソースは、$outboundのレスポンス・ヘッダーです。

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

      グローバルな「パイプラインを介してすべてのヘッダーを渡す」オプションに関連してこのオプションを使用する方法の詳細は、「パイプラインでのトランスポート・ヘッダーの構成」を参照してください。

  6. 表にヘッダーを追加するには、「ヘッダー」アイコンをクリックし、「ヘッダーの追加」をクリックします。

    この表を展開すると、別のトランスポート・ヘッダーの構成に使用できる新しい一連のオプションを含む追加の行が表示されます。この表には、必要な数のヘッダーを追加することができます。ランタイムでは、対応するXMLの生成時に、ネームスペースを宣言し、適切な順序でヘッダー要素を配置するため、表のヘッダーの順序を指定する必要はありません。

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

14.7.1 アウトバウンドHTTPトランスポート・ヘッダーでのCookieの設定

HTTPパイプラインでは、次の方法でトランスポート・ヘッダーにCookieを設定できます。

14.7.1.1 複雑なXML式としてのCookieの設定

複雑なXML式を使用してCookieを設定する(Service Busのデフォルト・フォーマット)には、次の式の構文を使用して、アウトバウンド・リクエストのHTTP Cookieヘッダーの値を構成します。

<cookie-values xmlns="http://www.bea.com/wli/sb/transports/http">
    <value>{fn:concat("cookie_name", "=", "cookie_value")}</value>
</cookie-values>
14.7.1.2 文字列式を使用したCookieの設定

アウトバウンド・リクエストで文字列を含むCookieヘッダーを設定するには、ドメインのstartWebLogicコマンドに次のオプションを追加する必要があります。

-Dcom.bea.osb.http.cookieAsNoComplexElement=true

このオプションを使用してサーバーを再起動した後、文字列式を使用してHTTP Cookieヘッダーを設定することができます。たとえば:

$cookie_name = "cookie_value"

14.8 コンソールでのルート・ノードへの動的ルーティングの追加

XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。動的ルーティングの詳細は、「動的ルーティングの使用」を参照してください。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

ルート・ノードに動的ルーティングを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  3. 「アクションの追加」アイコンをクリックして、「通信」「動的ルーティング」を選択します。
  4. 「式」をクリックします。XQuery式エディタが表示されます。
  5. XQuery式エディタで、XQuery式を入力します。次のような結果になります。
    <ctx:route>
        <ctx:service isProxy='true'>{$service}</ctx:service>
        <ctx:operation>{$operation}</ctx:operation>
    </ctx:route>

    ノート:

    プロキシ・サービスが呼び出されている場合は、isProxyをtrueに設定します。ビジネス・サービスが呼び出されている場合は、isProxyをfalseに設定します。

    • サービス名は完全修飾サービス名です。

    • 操作要素はオプションです。

    または、次のコードでパイプラインにルーティングします。

    <ctx:route>
      <ctx:pipeline>project/folder/pipeline</ctx:pipeline>
    </ctx:route>
    

    または、次のコードで分割結合にルーティングします。

    <ctx:route>
      <ctx:splitjoin>project/folder/splitjoin</ctx:splitjoin>
    </ctx:route>
  6. 「保存」をクリックします。
  7. 要求アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」のアクションの表を参照してください。
  8. 応答アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」のアクションの表を参照してください。
  9. 「保存」をクリックします。
  10. 「メッセージ・フローの編集」ページで、「コンソールでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
  11. 保存」をクリックして、現在のセッションで更新をコミットします。
  12. セッションを終了して構成をランタイムにデプロイするには、Oracle Service Busコンソールの右上隅にある「アクティブ化」をクリックします。

14.9 コンソールでのルート・ノードへのルーティング・アクションの追加

そのメッセージのターゲット・サービスを指定し、サービスへのメッセージのルーティング方法を構成します。

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

ルート・ノードにルーティング・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  3. 「アクションの追加」アイコンをクリックして、「通信」「ルーティング」を選択します。
  4. 「サービス」をクリックします。サービス・ブラウザが表示されます。
  5. リストからサービスを選択してから、「発行」をクリックします。そのサービスがデフォルトのリンクのかわりに表示されます。
  6. アウトバウンド操作をインバウンド操作と同じにする場合、「Use inbound operation for outbound」チェック・ボックスを選択します。
  7. 要求アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」のアクションの表を参照してください。
  8. 応答アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」のアクションの表を参照してください。
  9. 「保存」をクリックします。
  10. 「メッセージ・フローの編集」ページで、「コンソールでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
  11. 保存」をクリックして、現在のセッションで更新をコミットします。
  12. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

14.10 コンソールでのルート・ノードへのルーティング表の追加

ルーティング表は、切替え式の条件表にラップされた一連のルートです。これは、単一のXQuery式の結果に基づいて各種ルートを選択できる短縮形の構文です。

ステージ・エディタで複数のレベルをネストできます。メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

ルート・ノードにルーティング表を追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  3. 「アクションの追加」アイコンをクリックして、「通信」「ルーティング表」を選択します。ルーティング表アクションが表示されます。
  4. 演算子」リストから、比較演算子を選択して、隣のフィールドに値式を入力します。
  5. 「サービス」をクリックします。「サービスの選択」ページが表示されます。
  6. リストからサービスを選択してから、「発行」をクリックします。
  7. サービスで操作を呼び出す場合は、「操作」リストから操作を選択します。
  8. アウトバウンド操作をインバウンド操作と同じにする場合、「Use inbound operation for outbound」チェック・ボックスを選択します。
  9. 要求アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。
  10. 応答アクション」フィールドの「アクションの追加」をクリックしてアクションを追加したうえで、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。

    追加するリクエスト・アクションおよびレスポンス・アクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」を参照してください。

  11. 新しいケースを挿入するには、「Case」アイコンをクリックし、「Insert New Case」を選択します。
  12. 新しいケースについて、ステップ2 - 7を繰り返します。「ケース」アイコンをクリックして、「デフォルト・ケースの挿入」を選択すると、それ以前のすべてのケースが満たされなかった場合に選択されるルートのデフォルトのケースを末尾に追加できます。
  13. 「保存」をクリックします。
  14. 「メッセージ・フローの編集」ページで、「コンソールでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
  15. 保存」をクリックして、現在のセッションで更新をコミットします。
  16. セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」「アクティブ化」をクリックします。

14.11 コンソールでのFor-Eachアクションの追加

For-Eachアクションは、一連の値を反復処理してアクションのブロックを実行するために使用します。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

For-Eachアクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「For Each」を選択します。
  3. 「変数」フィールドに変数名を入力し、「XPath」をクリックして、XPath式を作成するためのXPathエディタを開きます。次に、Do ()ループでアクションを構成します。
  4. 保存」をクリックして、現在のセッションで更新をコミットします。

14.12 コンソールでのIf-Thenアクションの追加

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

If-Thenアクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「If...Then」を選択します。
  3. 「条件」をクリックして、「XQuery条件エディタ」ページを表示します。

    作成した条件は、then()句に入る前に、標準のif-thenロジックに従って実行されるテストとして使用されます。インラインXQueryおよびXPath式の作成と編集を参照してください。

  4. XQuery条件を編集したら、「アクションの追加」をクリックしてから、その条件に関連付けるアクションを選択します。追加するアクションのタイプについてさらに学習するには、「コンソールでのパイプライン・アクションの追加と編集」を参照してください。

    ルート・ノードでは、ルーティング・アクション、動的ルーティング・アクション、またはルーティング表アクションのみを選択できます。ただし、これらのアクションには、リクエストとレスポンスのアクションを入れることができます。

  5. ロジックの必要性に応じて「If...Then」アイコンをクリックし、「else-if条件の追加」または「else条件の追加」をクリックしてelse-if条件またはelse条件を追加します。「アクションの追加」をクリックして、アクションをこれらの条件と関連付けます。

    条件アクションはネストできます。

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

14.13 コンソールでのエラーの生成アクションの追加

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

エラー生成アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「エラーの生成」を選択します。
  3. エラー・コード」フィールドに、発生させるエラー・コードを入力します。
  4. エラー・メッセージ」フィールドに、エラー・コードの説明を入力します。
  5. 保存」をクリックして、現在のセッションで更新をコミットします。

14.13.1 トランザクション

サービスがトランザクションの場合、トリガーされたエラー発生アクションにより、非同期のリクエストのトランザクションまたは同期のリクエスト/レスポンスのトランザクションが中断されます。たとえば、メッセージを参照し、SOAPフォルトは発生せず、エラーを発生させるアクションによりトランザクションが中断された場合にも、エラーの生成アクションが実行する際の条件を決定できます。

14.14 コンソールでの返信アクションの追加

呼出し元に即時に返信されるように指定するには、返信アクションを使用します。返信アクションは、リクエスト・パイプライン、レスポンス・パイプライン、またはエラー・パイプラインで使用できます。

成功時または失敗時に返信するように構成できます。HTTPインバウンド・トランスポートでの失敗時の返信の場合、返信アクションでは、呼出し元に即時に返信されるように指定します。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

返信アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「返信」を選択します。
  3. 成功時」を選択すると、メッセージが成功した場合に応答します。「失敗時」を選択すると、メッセージが失敗した場合に応答します。

    トランザクションがService Busによって起動されても、失敗時の応答によって中止されます。

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

14.15 コンソールでの再開アクションの追加

エラー・ハンドラによってエラーが処理された後で、メッセージ・フローを再開するには、再開アクションを使用します。このアクションにパラメータはありません。このアクションはエラー・パイプラインでのみ使用できます。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

再開アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「再開」を選択します。

このアクションの構成が完了したら、「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

14.16 コンソールでのスキップ・アクションの追加

実行時にこのステージのアクションの実行をスキップし、処理をパイプラインの次のステージに進めるよう指定するには、スキップ・アクションを使用します。

ノート:

アクションにサービス・コールアウトまたは動的ルートが含まれる場合、そのサービス・コールアウトまたは動的ルートのそれぞれのリクエスト・アクションまたはレスポンス・アクションで使用されるスキップ・アクションは、その残りのアクションのみをスキップします。スキップ・ステップは、コール元のステージの処理には影響しません。

このアクションはパラメータを持たず、リクエスト・パイプライン、レスポンス・パイプラインまたはエラー・パイプラインで使用できます。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

スキップ・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「スキップ」を選択します。

14.17 コンソールでの割当てアクションの追加

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

割当てアクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「割当て」を選択します。
  3. 「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数に割り当てるデータを作成します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  4. 式を編集したら、変数フィールドにコンテキスト変数を入力します。コンテキスト変数についてさらに学習するには、「inbound変数とoutbound変数」および「ディスパッチするメッセージの作成」を参照してください。
  5. 保存」をクリックして、現在のセッションで更新をコミットします。

14.18 コンソールでの削除アクションの追加

削除アクションは、コンテキスト変数や、XPath式で指定されたノードのセットの削除に使用します。削除アクションは更新アクションのセットの内の1つです。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

削除アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. コンテキスト変数を削除するには、「変数」オプションを選択し、コンテキスト変数の名前を「変数」フィールドに入力します。

    または、XPath式で選択されたすべてのノードを削除するには、「XPath」ラジオ・ボタンを選択して、「XPath」をクリックします。「XPath式エディタ」ページが表示されます。インラインXQueryおよびXPath式の作成と編集を参照してください。式を保存したら、「変数」フィールドにコンテキスト変数を入力します。

14.19 挿入アクションの追加

XPath式で選択したノードを基準に、指定した位置にXQuery式を挿入するには、挿入アクションを使用します。挿入アクションは更新アクションの1つです。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

挿入アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「挿入」を選択します。
  3. 「式」をクリックして、XQuery式を編集します。XQuery式を使用して、名前付き変数で指定された場所に挿入されるデータを作成します。XQuery式エディタ・ページが表示されます。インラインXQueryおよびXPath式の作成と編集を参照してください。
  4. 式を編集したら、リストで相対的な位置を選択します。相対的な位置は、XPath式の結果を基準として挿入位置を決める場合に使用します。
    • の前に: XPath式で選択される各要素や属性の兄とします。

    • の後ろに: XPath式で選択される各要素や属性の弟とします。

    • の最初の子として: XPath式で指定される各要素の第1の子とします。XPathの結果が属性を返す場合はエラーが発生します。

    • の最後の子として: XPath式で指定される各要素の最後の子とします。XPathが属性を返す場合はエラーが発生します。

  5. 「XPath」をクリックします。「XPath式エディタ」ページが表示されます。インラインXQueryおよびXPath式の作成と編集を参照してください。

    有効な構成には、次の構成が含まれます。

    • XQuery式とXPath式の両方が要素を返します。

    • XQuery式とXPath式の両方が属性を返します。この場合、XQuery式は属性を返す必要があります。

  6. XPath式の編集が終わったら、「変数」フィールドにコンテキスト変数を入力します。XPathは、この変数の内容を評価します。
  7. 保存」をクリックして、現在のセッションで更新をコミットします。

14.20 コンソールでのJavaコールアウト・アクションの追加

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

Javaコールアウト・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「Javaコールアウト」を選択します。
  3. 「メソッド」をクリックします。「JARの選択」ページが表示されます。リストからJARリソースを選択します。「クラスとメソッドの選択」ページが表示されます。
  4. 表示されたJavaクラスのリストで、該当するクラスの横にある+をクリックしてメソッドのリストを表示します。メソッドを選択して、「発行」をクリックします。「ステージの編集」ページに、次のようにJavaコールアウト・アクションが表示されます。
    • 「メソッド」はステップ2および3で選択したJavaメソッドの名前に置き換えられます。この名前は「クラスとメソッドの選択」ページへのリンクです。このリンクをクリックして、Javaメソッドの選択内容を変更することができます。

      メソッドは静的メソッドである必要があります。

    • パラメータ: Javaメソッドが必要とする各引数に対するXQuery式エディタ・ページへの「式」リンクが用意されています。それぞれのリンクに対するラベルは、引数のデータ型を示します。これは次のいずれかです。

      • Java.lang.String

      • プリミティブ型および対応するクラス型(intjava.lang.Integerなど)

      • java.lang.BigDecimalおよびjava.lang.BigInteger(これらの型は、ラウンドオフ・エラーやオーバーフローが許容されない財務関連の計算で使用されます)

      • org.apache.xbeans.XmlObjectのみ(型指定されたXML Beanはなし)

      • byte[]

      • java.lang.String[] (入力のみ)

      • XmlObject[] (入力のみ)

      • javax.activation.DataSource

    • 結果: 結果を割り当てる変数を入力する「結果」フィールド。このフィールドに対するラベルは、結果のデータ型を示します。

      ノート:

      結果がバイト配列(唯一返される可能性のある配列)の場合は、バイナリ・コンテンツのXML要素が返されます。

    • パラメータを参照として戻す: このオプションにより、jcidがパイプライン・オブジェクト・リポジトリのオブジェクトへのキーである実際のタイプに関係なく、Javaコールアウトの呼出しの戻り値を<java-content ref="jcid">参照要素にします。「結果」値フィールドに、java-content参照を含む変数の名前を入力します。このオプションを使用すると、パススルーを提供するか、Javaコールアウトおよびインライン・アクションでメッセージ情報追加を実行するか、Javaと非Javaトランスポート間でメッセージ変換を実行するために、パイプラインXMLに加えてパイプラインで参照オブジェクトを処理できます。詳細は、「メッセージでのJavaオブジェクトの送信および受信」を参照してください。

    • サービス・アカウントのアタッチ: 「サービス・アカウント」リンクでは、Javaメソッドに対するセキュリティ・コンテンツがある場合、オプションのサービス・アカウントを指定できます。セキュリティ・コンテキストおよびサービス・アカウントについてさらに学習するには、「サービス・アカウントの操作」を参照してください。

      固定およびマップされたサービス・アカウントの場合、そのサービス・アカウントのユーザーID/パスワードはローカル・システムとJavaコールアウトに伝播されたセキュリティ・コンテキストで認証されます。passthruの場合、セキュリティ・コンテキストはJavaコールアウトに伝播されます。(WS-Securityで)定義されている場合、このコンテキストは、メッセージ・レベルのコンテキストになります。そうでない場合は、トランスポート・レベルのコンテキストになります。

  5. 「パラメータ」で、「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、Javaメソッドに必要な引数を指定します。インラインXQueryおよびXPath式の作成と編集を参照してください。

    入力値の型が宣言されている入力引数の型と一致しない場合、Service Busは入力値を入力引数の宣言された型に自動的に型キャストします。たとえば、入力引数の宣言された型がJavaプリミティブ「int」の場合、文字列値"123"は整数123に変換されます。

  6. 結果」フィールドで、Javaメソッドが戻した結果に対して、変数を割り当てます。
  7. Javaメソッドに対するセキュリティ・コンテキストがある場合は、チェックボックスを選択して、「サービス・アカウント」をクリックします。「サービス・アカウントの選択」ページが表示されます。リストから必要なサービス・アカウントを選択して、「発行」をクリックします。
  8. 保存」をクリックして、現在のセッションで更新をコミットします。

14.21 コンソールでのJavaScriptアクションの追加

JavaScriptアクションを使用して、JavaScript式を使用するXMLまたはJSONペイロードのコンテンツを操作します。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

JavaScriptアクションを追加するには:
  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「JavaScript」を選択します。
  3. 次のいずれかの方法で、JavaScript式を入力します。
    • Service BusコンソールにすでにアップロードされているJavaScriptリソースからJavaScript式を使用するには、「リソース: {0}」オプションを選択し、「リソース」をクリックします。「JavaScriptの選択」ダイアログを使用して、JavaScriptリソースを検索して選択します。
  4. 次のいずれかのタイムアウト・オプションを選択します。
    • 「システム・デフォルト」: JavaScriptの処理は、システム・デフォルトのJavaScriptタイムアウトに達するとタイムアウトします。
    • 「秒」フィールド: JavaScript処理がタイムアウトになるタイムアウト値(秒)を指定します。
    • なし: JavaScriptの処理はタイムアウトしません。
  5. JavaScript式を検証するには、「検証」をクリックします。
  6. 「保存」をクリックします。

14.22 コンソールでのMFL変換アクションの追加

MFL(メッセージ・フォーマット言語)変換アクションを使用して、メッセージ・パイプライン内でメッセージ・コンテンツをXMLとXML以外の形式との間で変換します。

MFLは、バイナリ・データのレイアウトを記述するために使用する特別なXMLドキュメントです。Oracle独自の言語を使用して、フォーマットされたバイナリ・データをXMLデータに、またはXMLデータをバイナリ・データに変換するルールを定義します。「Message Format Languageを使用したデータ構造の定義」を参照してください。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

MFL変換アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「MFL変換」を選択します。
  3. MFL変換を適用リストから、「XMLから非XMLへ」または「非XMLからXMLへ」を要件に応じて選択します。
  4. 「式」をクリックします。XQuery式エディタを使用して、MFL変換アクションを実行する変数を指定します。この入力は、XMLへの変換の場合はテキストまたはバイナリ、XML以外への変換の場合はXMLである必要があります。メッセージ・コンテキストのバイナリ・コンテンツは、バイナリ・コンテンツXML要素によって表されます。入力がバイナリでなければならない場合、このXMLはXQuery式の結果となります。インラインXQueryおよびXPath式の作成と編集を参照してください。
  5. 次のいずれかのオプションを選択します。
    • MFLリソース: 「リソース」リンクをクリックします。「MFLの選択」ページが表示されます。MFL変換アクションを実行する静的なMFLリソースを選択します。

    • からのMFLリソース: 「式」リンクをクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、変換アクションを実行するMFLリソースを動的に指定するXQuery式を、project/folder/MFLresourcenameの形式で作成または編集します。インラインXQueryおよびXPath式の作成と編集を参照してください。

  6. 変数に割当てフィールドで、この変換アクションの結果を割り当てる変数名を入力します。結果は、バイナリ・コンテンツのXML要素になります。
  7. 保存」をクリックして、現在のセッションで更新をコミットします。

14.23 nXSD変換アクションの追加

nXSD変換アクションを使用して、メッセージ・パイプライン内でメッセージ・コンテンツをXMLとネイティブ・フォーマット・データとの間で変換します。

変換に使用するネイティブ・スキーマの作成の詳細は、テクノロジ・アダプタの理解ネイティブ・フォーマット・ビルダー・ウィザードに関する項を参照してください。

次の例に示すとおり、関連付けられているXSDリソースに関連する注釈がある場合、nXSD変換アクションでは、XMLからJSON、およびJSONからXMLの変換をサポートしています。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.com/RestService_Operation1_request"
 targetNamespace="http://example.com/RestService_Operation1_request" elementFormDefault="qualified" 
xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd" nxsd:version="JSON" nxsd:encoding="US-ASCII">
   <xsd:element name="Root-Element">
      <xsd:complexType>
         <xsd:sequence>
            <xsd:element name="country" type="xsd:string"/>
            <xsd:element name="circuit" type="xsd:string"/>
            <xsd:element name="date" type="xsd:date"/>
…

nXSD変換アクションはこのバージョンのService Busで拡張されており、JSONからXMLへの変換時にスキーマの順序が適用されます。

動的nXSD参照

動的NXSDスキーマ構成では、nxsdおよびスキーマ要素QNameの詳細を計算するためのXquery式を設計時に指定します。実行時に、Xquery式により、NXSDスキーマ参照名およびスキーマ要素名を含むxmlドキュメントが生成されます。

NXSDスキーマ参照およびXML要素名を識別する構文は次のとおりです。

<xs:schema targetNamespace="http://www.bea.com/wli/sb/context"
           xmlns:tns="http://www.bea.com/wli/sb/context"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <!-- ============================ -->

  <xs:element name="nxsdTranslation" type="tns:NXSDTranslationType"/>

    <xs:complexType name="TranslationQNameType">
        <xs:sequence>
            <xs:element name="namespaceURI" type="xs:anyURI" minOccurs="0"/>
            <xs:element name="localname" type="xs:NCName"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="NXSDTranslationType">
        <xs:sequence>
            <!-- Name is '/' separated string that starts with project name and ends with resource name -->
            <xs:element name="schema" type="xs:string"/>
            <xs:element name="schemaElement" type="tns:TranslationQNameType"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

次に示すのは、完全なXMLスニペットの例です。

<nxsdtranslation xmlns="http://www.bea.com/wli/sb/context">
      <schema>default/MySchema</schema>
      <schemaElement>
          <namespaceURI>http://openuri.org</namespaceURI>
         <localname>MyType</localname>
     </ schemaElement>
</nxsdtranslation>

次のサンプルxqueryにより、XMLスニペットをその形式で生成できます。

declare variable $children:= ("default/MySchema","http://openuri.org","MyType");

  declare function local:message ($number as xs:integer) as item() {
    $children[$number] 
  };

<nxsdtranslation xlmns="http://www.bea.com/wli/sb/context">
     <schema>{ local:message(1) }</schema>
     <schemaElement>
          <namespaceURI>{ local:message(2) }</namespaceURI>
          <localname>{ local:message(3) }</localname>
     </schemaElement>
</nxsdtranslation>

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

nXSD変換アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「nXSD変換」を選択します。
  3. nXSD変換の適用リストから、「XMLからネイティブ」または「ネイティブからXML」を要件に応じて選択します。
  4. 「式」をクリックします。XQuery/XSLT式エディタを使用して、nXSD変換アクションを実行する変数を指定します。この入力は、XMLへの変換の場合はネイティブ・フォーマット、ネイティブ・データ・フォーマットへの変換の場合はXMLです。インラインXQueryおよびXPath式の作成と編集を参照してください。
  5. 次のいずれかのオプションを選択します。
    • nXSDリソース: 「リソース」リンクをクリックします。「XMLスキーマの選択」ページが表示されます。ネイティブ・スキーマに対応するスキーマ(.xsd)ファイルを選択します。

    • からのnXSDリソース: 「式」リンクをクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、ネイティブ・スキーマを動的に指定するXQuery式を作成または編集します。インラインXQueryおよびXPath式の作成と編集を参照してください。

  6. 「出力の割当て先」フィールドで、「変数」を選択し、この変換アクションの結果を割り当てる変数の名前を入力します。または、出力を「$bodyの内容」に割り当てることもできます。
  7. (オプション) ネイティブ形式(JSONなど)からXMLに変換する場合は、「スキーマ順序の適用」オプションを選択します。選択すると、XMLスキーマの要素の順序付けと一致するようにJSONペイロードを並べ替えます。
  8. 保存」をクリックして、現在のセッションで更新をコミットします。

14.24 コンソールでの名前変更アクションの追加

XPath式で選択された要素のコンテンツを変更せずに要素名を変更するには、名前変更アクションを使用します。名前変更アクションは更新アクションの1つです。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

名前変更アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「名前変更」を選択します。
  3. 「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、名前を変更する(名前付き変数内の)データを指定します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  4. 変数」フィールドに、名前変更する要素を保持するコンテキスト変数を入力します。
  5. 次のいずれかを行います:
    • ローカル名を使用して選択した要素名を変更する場合は、最初の「ローカル名」オプションを選択して、「ローカル名」フィールドにローカル名を入力します。

    • ネームスペースを使用して選択した要素名を変更する場合は、最初の「ネームスペース」オプションを選択して、「ネームスペース」フィールドにネームスペースを入力します。

    • ローカル名とネームスペースを使用して選択した要素名を変更する場合は、ローカル名とネームスペース・ラジオ・ボタンを選択して、ローカル名とネームスペース・フィールドにローカル名とネームスペースを入力します。

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

14.25 コンソールでの置換アクションの追加

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

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

置換アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「置換」を選択します。
  3. 「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、置換する(名前付き変数内の)データを指定します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  4. XPath式の編集が終わったら、「変数」フィールドにコンテキスト変数を入力します。
  5. 「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数内のXPathで指定したデータを置換するデータを作成します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  6. XQuery式を編集したら、次のいずれかのオプションを選択します。
    • 「ノード全体を置換」 - 定義したXPath式で選択したノードとそのすべてのコンテンツを置換するように指定します。

    • 「ノードのコンテンツを置換」 - ノードは置換せず、そのコンテンツのみ置換するように指定します。

      ノート:

      「ノード全体を置換」オプションを選択してXPathを./*に設定するよりも、「ノードのコンテンツを置換」オプションを選択して「XPath」フィールドを空白にする方が効率的です。

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

14.26 コンソールでの検証アクションの追加

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

検証できるのは、グローバル要素のみです。Service Busはローカル要素に対する検証に対応していません。実行時にXQuery式の結果に基づいて、XMLスキーマ要素またはWSDLリソースを動的に選択することも選択できます。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

検証アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「メッセージ処理」「検証」を選択します。

  3. 「XPath」をクリックします。検証する要素を指定するXPath式を作成します。インラインXQueryおよびXPath式の作成と編集を参照してください。XPath式エディタで式を作成したら、「保存」をクリックして、「ステージ構成の編集」ページで式を挿入します。

  4. 変数フィールドに、検証する要素を保持する変数の名前を入力します。

  5. 次のいずれかのオプションを選択します。

    • リソースに対して: 「リソース」リンクをクリックし、「WSDL」または「スキーマ」を選択します。「WSDLブラウザ」または「XMLスキーマ・ブラウザ」から、次の手順を実行します。

      1. WSDLファイルまたはXMLスキーマを選択します。

      2. WSDLファイルまたはXMLスキーマのタイプまたは要素を選択します。

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

    • 式からのリソースに対して: 「式」リンクをクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、WSDLファイルまたはスキーマ・リソースを動的に指定するXQuery式を作成または編集します。インラインXQueryおよびXPath式の作成と編集を参照してください。

      次のものは、WSDLリソースの動的な指定の例です。

      <validate xmlns="http://www.bea.com/wli/sb/context">
            <wsdl>default/MyWSDL</wsdl>
            <schemaType>
                <namespaceURI>http://openuri.org</namespaceURI>
               <localname>MyType</localname>
           </schemaType>
      </validate>
      

      次のものは、スキーマ・リソースの動的な指定の例です。

      <validate xmlns="http://www.bea.com/wli/sb/context">
            <schema>{dvm:lookup('SBProject/dvm/DVM_Validation', 'operation', $operationName, 'validationSchema','default')}</schema>
            <schemaElement>
      .........<namespaceURI>"http://www.example.com/date</namespace>
               <localname>{dvm:lookup('SBProject/dvm/DVM_Validation', 'operation', $operationName, 'validationElement','default')}</localname>
           </schemaElement>
      </validate>
      

      選択したスキーマまたはWSDLが、OSBにインポートされているスキーマまたはWSDLリソースであるようにしてください。URLファイルやURLは直接指定できません。必要なXMLフラグメントは、XQuery式で作成され、XMLを作成するためにどのようなXQuery式でも入力できます。前述の例で、示されたXMLはXML定数であり、想定されるXMLを示しています。

      たとえば、WSDLの名前は変数になる場合があるため、リソース名を見つけるには、その名前を抽出します。別の例は、1つまたは複数のキーを指定してXMLフラグメントのルックアップを実行できる関数があるXqueryモジュール・リソースが存在する場合です。この場合、検証式で必要なキーを評価し、そのXqueryモジュール関数を呼び出すことができます。これにより、1つのXqueryモジュールとルックアップ・アルゴリズムですべての動的エントリを外部化して管理できます。

  6. この検証の結果(ブール結果)を保存する場合は、検証結果を変数に保存を選択し、結果を保存する変数の名前を入力します。

    また、WSDLファイルやXMLスキーマ要素に対する要素の検証が失敗したときにエラーを発生させる場合は、検証の失敗で「エラーの生成」を選択します。

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

14.27 コンソールでのアラート・アクションの追加

アラート宛先にアラートを送信するには、アラート・アクションを使用して、パイプラインのメッセージ・コンテキストに基づいてアラートを生成します。

SLAアラートと異なり、アラート・アクションで生成された通知は、主にビジネスでの使用、またはエラーの報告を目的とし、システムの状態を監視するものではありません。このことを考慮して、アラートの宛先を構成および選択する必要があります。アラートの宛先についてさらに学習するには、「アラート宛先の操作」を参照してください。

サービスに対してパイプライン・アラートが有効になっていない場合や、ドメイン・レベルでパイプライン・アラートが有効になっていない場合は、メッセージの処理中に、構成したアラート・アクションがバイパスされます。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

アラート・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  2. 該当するアイコンをクリックして、「アクションの追加」「レポート」「アラート」を選択します。
  3. 「宛先」をクリックします。「アラート宛先の選択」ページが表示されます。リストから必要なアラートの宛先を選択して、「発行」をクリックします。

    デフォルトでは、アラートは常に管理コンソールに出力されます。

  4. 「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてアラート・メッセージに追加するメッセージ・コンテキストを指定します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  5. アラート要約」フィールドにアラートの簡単な説明文を入力します。説明文は、電子メール通知の場合の件名になり、80文字以内である必要があります。説明文が存在しない場合、「Oracle Service Busアラート」というあらかじめ定義された件名がかわりに使用されます。
  6. 「重大度」リストで、このアラートの重大度を「通常」「警告」「軽度」「重度」「クリティカル」「致命的」から選択します。
  7. 保存」をクリックして、現在のセッションで更新をコミットします。

14.28 コンソールでのログ・アクションの追加

ログに記録するメッセージを作成し、ログに使用する一連の属性を定義するには、ログ・アクションを使用します。

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

ノート:

ログ・ファイルまたは標準出力(サーバー・コンソール)にログ・データを表示するには、WebLogic Serverのロギングを次の重大度に設定する必要があります。

  • ログの最低の重大度: 情報

  • ログ・ファイル: 情報

  • 標準出力: 情報

ログの重大度の設定の詳細は、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタリング』ログの重大度の使用に関する項を参照してください。

ログ・アクションを追加するには:

  1. 必ずロギングをグローバルに有効にしてください。詳細は、『Oracle Service Busの管理』グローバル・レベルの操作設定の構成に関する項を参照してください。
  2. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
  3. 該当するアイコンをクリックして、「アクションの追加」「レポート」「ログ」を選択します。
  4. 「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてログに記録するメッセージ・コンテキストを指定します。インラインXQueryおよびXPath式の作成と編集を参照してください。
  5. アノテーション」フィールドに、このログ・アクションのノートを入力します。これらのノートは、事前に定義された式の結果と一緒にログに記録されます。
  6. 「重大度レベル」リストで、次のいずれかのオプションを選択します。

    表14-7 ログ・アクションの重大度

    重大度レベル 一般的な用途

    情報

    通常の処理を報告するために使用する、低レベルの情報メッセージ。

    警告

    不審なオペレーションまたは構成が発生しましたが、通常のオペレーションには影響しません。

    エラー

    ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。

    デバッグ

    アプリケーションの開発中、そのアプリケーションの低レベル・アクティビティを示すメッセージを作成および使用できると便利です。

    プロキシ・サービスの操作設定におけるログの重大度が、ログ・アクションの重大度と同じであることを確認します。プロキシ・サービスの操作設定の詳細は、『Oracle Service Busの管理』使用可能な操作設定に関する項を参照してください。

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

14.29 コンソールでのレポート・アクションの追加

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

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

レポート・アクションを追加するには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「レポート」「レポート」を選択します。

  3. 「式」をクリックします。XQuery式エディタ・ページが表示されます。インラインXQueryおよびXPath式の作成と編集を参照してください。XQuery式を使用して、Service Busダッシュボートにレポートされるデータを作成します。

  4. XQuery式を編集したら、「キーの追加」をクリックします。「キー名」フィールドと「キー値」フィールド(XPath式編集用の画面に移動するための「XPath」リンクとコンテキスト変数を入力できる「変数」フィールドを持つ)の2つのフィールドが表示されます。

    キー値のペアは、メッセージ・コンテキスト変数やメッセージ・ペイロードからキー識別子を抽出して、残りのメッセージを無視する場合に使用します。キーは、メッセージを識別する便利な手段となります。キーは、「レポート」モジュールでレポート・インデックスとして表示されます。『Oracle Service Busの管理』メッセージ・レポートの操作に関する項を参照してください。

    1. 「キー名」フィールドにキーの名前を入力します。

    2. 「XPath」をクリックします。「XPath式の編集。」ページが表示されます。インラインXQueryおよびXPath式の作成と編集を参照してください。

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

    4. さらにキー値を追加するには、「キー」アイコンをクリックして「キーの追加」を選択します。キーを削除するには、「キー」アイコンをクリックして「このキーを削除」を選択します。

たとえば、ステージのエラー・ハンドラで構成されたレポート・アクションを考えてみます。このアクションは、エラーが発生した場合にfaultコンテキスト変数のコンテンツを報告します。レポート・アクションは次のように構成されます。

  • キー名= errorCode

  • キー値= ./ctx:errorCode(変数fault)

実行時にこのこのアクションが行われるたびに、データ・ストリームを通じてメッセージが報告されます。次の表は、レポート・アクションが2回実行された後の結果を示しています。

レポート・インデックス DBタイムスタンプ インバウンド・サービス エラー・コード

errorCode=OSB-382505

04/26/07 9:45 AM

MortgageBroker/ProxySvcs/loanGateway3

OSB-382505

errorCode=OSB-382505

04/26/07 9:45 AM

OSB-382505

14.30 コンソールでのエラー・ハンドラの追加

エラー処理は、メッセージ・フロー、パイプライン、ルート・ノード、およびステージ・レベルで構成できます。

「エラー・ハンドラの編集」ページで、エラー・ハンドラを構成します。エラー・ハンドラの動作を指定するには、必ず、少なくとも1つのステージをページに追加する必要があります。

ノート:

エラー・ハンドラ内でエラー・ハンドラを作成できません。

14.30.1 コンソールでのパイプライン・エラー・ハンドラの追加

始める前に

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

また、この手順は、「パイプラインへのパイプライン・ペアの追加方法」の説明に従って、パイプライン・ペア・ノードを作成していることも前提としています。

パイプライン・エラー・ハンドラを追加するには:

  1. エラー・ハンドラを追加するパイプラインを含むパイプライン・ペア・ノードに移動します。パイプライン・ペア・ノードがまだ展開されていない場合は、アイコン の横のプラス記号をクリックしてパイプラインを表示します。
  2. 「リクエスト・パイプライン」アイコンまたは「レスポンス・パイプライン」アイコンをクリックして、「パイプライン・エラー・ハンドラの追加」をクリックします。「エラー・ハンドラの編集」ページが表示されます。
  3. 「エラー・ハンドラ」アイコンをクリックしてから、「ステージの追加」をクリックします。
  4. 「ステージ」アイコンをクリックして「ステージの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  5. アクションの追加」をクリックし、追加するアクションを選択します。

    エラー・ハンドラはパイプラインであるため、構成は他のパイプラインと同じようにして行われます。たとえば、「パブリッシュ」アクションを使用して、他のサービスにエラー通知を送信したり、「割当て」アクションを使用して、コンテキスト変数を変更したりできます。追加するアクションのタイプについてさらに学習するには、パイプライン・コンソールでのアクションの追加と編集の該当する手順を参照してください。アクションは任意の組合せで連鎖できます。

    「エラーの生成」「返信」および「再開」の3つのエラー・アクションがよく使用されます。

    ノート:

    エラー・ハンドラ内でエラー・ハンドラを作成できません。

  6. 必要に応じて、「ステージ構成の編集」ページで、他のアクションの追加およびその他の編集を行います。
  7. ステージ構成の編集」ページで、「保存」をクリックして、現在のセッションで更新をコミットします。
  8. 「エラー・ハンドラの編集」ページで「保存」をクリックし、現在のセッションでの更新をコミットします。

14.30.2 コンソールでのステージ・エラー・ハンドラの追加

始める前に

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。この手順は、「コンソールでのパイプラインへのステージの追加方法」の説明に従って、パイプラインにステージを追加していることも前提としています。

ステージ・エラー・ハンドラを追加するには:

  1. エラー処理を追加するステージへ移動します。
  2. 「ステージ」アイコンをクリックしてから、「ステージ・エラー・ハンドラの追加」をクリックします。「エラー・ハンドラの編集」ページが表示されます。
  3. 「エラー・ハンドラ」アイコンをクリックしてから、「ステージの追加」をクリックします。
  4. 「ステージ」アイコンをクリックして「ステージの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  5. アクションの追加」をクリックし、追加するアクションを選択します。

    エラー・ハンドラはパイプラインであるため、構成は他のパイプラインと同じようにして行われます。たとえば、「パブリッシュ」アクションを使用して、他のサービスにエラー通知を送信したり、「割当て」アクションを使用して、コンテキスト変数を変更したりできます。追加するアクションのタイプについてさらに学習するには、パイプライン・コンソールでのアクションの追加と編集の該当する手順を参照してください。アクションは任意の組合せで連鎖できます。

    「エラーの生成」「返信」および「再開」の3つのエラー・アクションがよく使用されます。

    ノート:

    エラー・ハンドラ内でエラー・ハンドラを作成できません。

  6. 必要に応じて、「ステージ構成の編集」ページで、他のアクションの追加およびその他の編集を行います。
  7. 保存」をクリックして、現在のセッションで更新をコミットします。

14.30.3 コンソールでのルート・ノード・エラー・ハンドラの追加

始める前に

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

また、この手順は、「コンソールでのパイプラインへのルート・ノードの追加方法」の説明に従って、ルート・ノードを作成していることも前提としています。

ルート・ノート・エラー・ハンドラを追加するには:

  1. 「ルート・ノード」アイコンをクリックしてから、「エラー・ハンドラの追加」をクリックします。「エラー・ハンドラの編集」ページが表示されます。
  2. 「エラー・ハンドラ」アイコンをクリックしてから、「ステージの追加」をクリックします。
  3. 「ステージ」アイコンをクリックして「ステージの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
  4. アクションの追加」をクリックし、追加するアクションを選択します。

    エラー・ハンドラもある種のパイプラインであるため、構成は他のパイプラインと同じようにして行われます。たとえば、「パブリッシュ」アクションを使用して、他のサービスにエラー通知を送信したり、「割当て」アクションを使用して、コンテキスト変数を変更したりできます。追加するアクションのタイプについてさらに学習するには、パイプライン・コンソールでのアクションの追加と編集の該当する手順を参照してください。アクションは任意の組合せで連鎖できます。

    「エラーの生成」「返信」および「再開」の3つのエラー・アクションがよく使用されます。

    ノート:

    エラー・ハンドラ内でエラー・ハンドラを作成できません。

  5. 必要に応じて、「ステージ構成の編集」ページで、他のアクションの追加およびその他の編集を行います。
  6. ステージ構成の編集」ページで、「保存」をクリックして、現在のセッションで更新をコミットします。
  7. 「エラー・ハンドラの編集」ページで「保存」をクリックし、現在のセッションでの更新をコミットします。

14.30.4 コンソールでのエラー・ハンドラの編集

始める前に

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

エラー・ハンドラを表示および変更するには:

次のいずれかの操作を行います。

表14-8 エラー・ハンドラの表示と変更

目的 ステップ

パイプラインのエラー・ハンドラの表示および変更

「リクエスト・パイプライン」アイコンまたは「レスポンス・パイプライン」アイコンをクリックして、「パイプライン・エラー・ハンドラの編集」をクリックします。「エラー・ハンドラの編集」ページが表示されます。「コンソールでのパイプライン・エラー・ハンドラの追加」を参照してください。

ルート・ノードのエラー・ハンドラの表示および変更

適切な「ルート・ノード」アイコンをクリックしてから、「ルート・エラー・ハンドラの編集」をクリックします。「エラー・ハンドラの編集」ページが表示されます。「コンソールでのルート・ノード・エラー・ハンドラの追加」を参照してください。

ステージのエラー・ハンドラの表示および変更

適切な「ステージ」アイコンをクリックしてから、「ステージ・エラー・ハンドラの編集」をクリックします。「エラー・ハンドラの編集」ページが表示されます。「コンソールでのステージ・エラー・ハンドラの追加」を参照してください。

14.31 コンソールでのアクションまたはステージの無効化

パイプライン内のアクションまたはステージを無効化することもできます。無効化されたアクションまたはステージは、パイプラインの実行でスキップされます。

アクションまたはステージを無効化した場合、ネストされたアクション(存在する場合)はすべて自動的に無効化されます。無効化されたステージまたはアクションは設計時に検証されません。

ノート:

無効化されたステージにエラー・ハンドラがある場合、そのエラー・ハンドラも無効化されます。

無効化されたアクションまたはステージの構成は編集できます。リファクタは、無効化されたアクションおよびステージに対しても実行されます。したがって、無効化されたアクションまたはステージ内のサービスに対するコールがあり、そのサービスの名前が変更されている場合、サービス・コールアウトは自動的に更新されます。

無効化されたステージまたはアクションはいつでも再有効化でき、それによってそのアクションまたはステージはパイプラインでスキップされなくなります。

14.31.1 パイプラインでのアクションの無効化

始める前に:

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

パイプラインでアクションを無効化にするには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、編集するアクションに移動します。
  2. 該当するアクションのアイコンをクリックし、「このアクションの無効化」を選択します。

    そのアクション・アイコンがグレー表示になり、「無効」アイコンがそのアクションの横に表示されます。

  3. 保存」をクリックして、変更を保存します。

14.31.2 パイプラインでのアクションの再有効化

始める前に:

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

パイプラインでアクションを再有効化にするには:

  1. 「コンソールでのパイプライン・アクションの追加と編集」の説明に従って、編集するアクションに移動します。
  2. 無効化されたアクションのアイコンをクリックし、「このアクションの有効化」を選択します。

    グレー表示されたアクション・アイコンが通常表示に戻り、アクションが有効化されます。

  3. 保存」をクリックして、変更を保存します。

14.31.3 パイプラインでのステージの無効化

始める前に:

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

パイプラインでステージを無効化するには:

  1. 「メッセージ・フローの編集」ページで、無効化するステージ・アイコンをクリックします。
  2. 表示されたコンテキスト・メニューから「ステージの無効化」を選択します。

    そのステージ・アイコンがグレー表示になり、「無効」アイコンがそのステージの横に表示されます。

  3. 保存」をクリックして、変更を保存します。

14.31.4 パイプラインでのステージの再有効化

始める前に:

この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでに「メッセージ・フローの編集」ページでパイプラインを編集していることを前提としています。

パイプラインでステージを再有効化にするには:

  1. 「メッセージ・フローの編集」ページで、無効化されたステージ・アイコンをクリックします。
  2. 表示されたコンテキスト・メニューから「ステージの有効化」を選択します。

    グレー表示されたステージ・アイコンが通常表示に戻り、ステージが有効化されます。

  3. 保存」をクリックして、変更を保存します。