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

前
 
次
 

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

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

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

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

21.1 メッセージ・フローでのアクションの追加と編集

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

始める前に

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

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

メッセージ・フローにアクションを追加するには

  1. アクションを追加するコンポーネントを選択します。たとえば、「ステージ」アイコンをクリックして、「ステージの編集」をクリックするか、または、「ルート・ノード」アイコンをクリックし、「ルートの編集」をクリックします。

  2. ステージまたはルート・ノードにすでに追加しているアクションに応じて、次のいずれかを行います。

    • まだアクションを何も追加していない場合、「ステージ構成の編集」ページには、「アクションの追加」アイコンのみが表示されます。そのアイコンをクリックして、アクション・タイプを選択します。

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

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

    メッセージ・フローのアクションは任意の組合せで連鎖できます。

    メッセージ・フローに構成できるアクションを表21-1から表21-4に示します。

    表21-1 メッセージ・フロー - 通信アクション

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

    動的にパブリッシュ

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

    21.4項「動的パブリッシュ・アクションの追加」


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

    パブリッシュ

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

    21.2項「パブリッシュ・アクションの追加」


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

    パブリッシュ表

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

    21.3項「パブリッシュ表アクションの追加」


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

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

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

    21.5項「ルーティング・オプション・アクションの追加」


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

    サービス・コールアウト

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

    21.6項「サービス・コールアウト・アクションの追加」


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

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

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

    21.7項「トランスポート・ヘッダー・アクションの追加」


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

    動的ルーティング

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

    21.8項「ルート・ノードへの動的ルーティングの追加」


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

    ルーティング

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

    21.9項「ルート・ノードへのルーティング・アクションの追加」


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

    ルーティング表

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

    21.10項「ルート・ノードへのルーティング表の追加」



    表21-2 メッセージ・フロー - フロー制御アクション

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

    For each

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

    21.11項「For Eachアクションの追加」


    「If...Then」アイコン

    If...Then

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

    21.12項「If...Thenアクションの追加」


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

    エラーの生成

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

    21.13項「エラーの生成アクションの追加」


    「返信」アイコン

    返信

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

    21.14項「返信アクションの追加」


    「再開」アイコン

    再開

    エラー・ハンドラによってエラーが処理された後、メッセージ・フローを再開します。

    21.15項「再開アクションの追加」


    「スキップ」アイコン

    スキップ

    実行時に現在のステージの実行がスキップされて、処理がメッセージ・フローの次のステージに進むように指定します。

    21.16項「スキップ・アクションの追加」



    表21-3 メッセージ・フロー - メッセージ処理アクション

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

    割当て

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

    21.17項「割当てアクションの追加」


    「削除」アイコン

    削除

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

    21.18項「削除アクションの追加」


    「挿入」アイコン

    挿入

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

    21.19項「挿入アクションの追加」


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

    Javaコールアウト

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

    21.20項「Javaコールアウト・アクションの追加」


    「MFL変換」アイコン

    MFL変換

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

    21.21項「MFL変換アクションの追加」


    「名前変更」アイコン

    名前変更

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

    21.22項「名前変更アクションの追加」


    「置換」アイコン

    置換

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

    21.23項「置換アクションの追加」


    「検証」アイコン

    検証

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

    21.24項「検証アクションの追加」



    表21-4 メッセージ・フロー - レポート・アクション

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

    アラート

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

    21.25項「アラート・アクションの追加」


    「ログ」アイコン

    ログ

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

    21.26項「ログ・アクションの追加」


    「レポート」アイコン

    レポート

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

    21.27項「レポート・アクションの追加」



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

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

    内容 手順

    アクションの削除

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

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

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

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

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

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

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

    アクションの切取り

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

    アクションのコピー

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

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

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

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

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

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

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

    ステージの検証

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


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

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

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

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

21.2 パブリッシュ・アクションの追加

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 「アクションの追加」「通信」「パブリッシュ」を選択します。

  3. 「サービス」をクリックします。「サービスの選択」ページが表示されます。

  4. リストからサービスを選択してから、「発行」をクリックします。これがメッセージのターゲット・サービスとなります。

  5. サービスの操作がすでに定義されている場合、「操作」リストから選択して、呼び出す操作を指定できます。

  6. アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。

  7. メッセージのパッケージとサービスへの送信方法を構成するために、「リクエスト・アクション」フィールドで「アクションの追加」をクリックします。その後で、サービスと関連付けるアクションを選択します。複数のアクションを追加することも可能です。21.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.3 パブリッシュ表アクションの追加

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 「アクションの追加」「通信」「パブリッシュ表」を選択します。

  3. 「式」をクリックします。XQuery式エディタ・ページが表示されます。実行時にルーティングの決定を行う値を返すXQuery式を作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  4. 「演算子」リストから、比較演算子を選択します。その後で、隣のフィールドに、XQuery式から返される値が評価される対象の値を入力します。

  5. 「サービス」をクリックして、指定した値の式による評価がtrueの場合にメッセージをパブリッシュするサービスを選択します。「サービスの選択」ページが表示されます。

  6. リストからサービスを選択してから、「発行」をクリックします。これがメッセージのターゲット・サービスとなります。

  7. サービスの操作がすでに定義されている場合、起動リストから選択して、呼び出す操作を指定できます。

  8. アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。

  9. メッセージのパッケージとサービスへの送信方法を構成するために、「リクエスト・アクション」フィールドで「アクションの追加」をクリックし、サービスと関連付ける1つ以上のアクションを選択します。追加するアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

  10. 新しいケースを挿入するには、「ケース」アイコンをクリックし、「新しいケースの挿入」を選択します。

  11. 新しいケースについて、ステップ4 - 8を繰り返します。

  12. ビジネス・ロジックで指定されているようにケースを追加します。

  13. シーケンス内に定義されている最後のケースの「ケース」アイコンをクリックし、「デフォルト・ケースの挿入」を選択して末尾にデフォルト・ケースを追加します。

  14. デフォルト・ケースを構成します。このケースの構成では、それ以前のケースが満たされていない場合のルーティングの動作を指定します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.4 動的パブリッシュ・アクションの追加

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

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

  1. 21.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要素は省略可能です。


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

  6. 「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

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

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

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

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

ルーティング・オプション・アクションを構成する手順:

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「通信」「ルーティング・オプション」を選択します。

  3. 次の手順のいずれか、またはすべてを実行します。

    • アウトバウンド・メッセージのURIを設定する場合: 「URI」を選択して、XQuery式エディタをクリックします。URIを返す式を入力します。これで呼び出されたサービスのURIがオーバーライドされます。


      注意:

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


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

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


      注意:

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


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

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

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

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

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「サービス」をクリックします。サービス・ブラウザが表示されます。

  4. 登録済のプロキシ・サービスまたはビジネス・サービスのリストでサービスを選択し、「発行」をクリックします。

  5. 前述のステップ3で選択したサービスがWSDLベースであり、サービスで呼び出せる操作がある場合、これらの操作は操作の呼出しリストに一覧表示されます。サービスで呼び出す操作を選択します。


    注意:

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


  6. 次のいずれかのオプションを選択して、リクエスト・メッセージとレスポンス・メッセージの構成方法を指定します。

    • 「SOAP本体の構成」を選択して、SOAP本体を構成します。このオプションを選択すると、$bodyを直接使用できます。


      注意:

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


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

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

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

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

    オプション 手順

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

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

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

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

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

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

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

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

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

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

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

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

      入力変数にはコアのペイロード・ドキュメントだけを指定します。SOAPパッケージは、Oracle 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パッケージは、Oracle 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つ以上のトランスポート・ヘッダーを追加します。詳細は、21.7項「トランスポート・ヘッダー・アクションの追加」を参照してください。


    注意:

    指定するトランスポート・ヘッダーに加え、その他のヘッダーがOracle Service Busバインディング・レイヤーによって追加されます。詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。


終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.7 トランスポート・ヘッダー・アクションの追加

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

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

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

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

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

    ヘッダー固有のパス・スルー・オプションに関連してこのオプションを使用する方法の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。

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

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

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

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

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

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

      ヘッダーを式に設定

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

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


      注意:

      このアクションで指定できるヘッダー設定がすべて実行時に反映されるわけではありません。設定できる所定のトランスポートのヘッダーおよび実行時に反映されるヘッダー設定の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。


      ヘッダーの削除

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

      インバウンド・リクエストからヘッダーをコピー(アウトバウンド・リクエストにトランスポート・ヘッダーを設定する場合)

      または

      アウトバウンド・レスポンスからヘッダーをコピー(インバウンド・レスポンスにトランスポート・ヘッダーを設定する場合)

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

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

      「パイプラインを介してすべてのヘッダーを渡す」オプションに関連してこのオプションを使用する方法の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。

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

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

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

HTTPメッセージ・フローでは、次の方法でトランスポート・ヘッダーにCookieを設定できます。

  • 複雑なXML式を使用する(Oracle Service Busのデフォルト)

  • 文字列式を使用する(サーバー起動オプションが必要)

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

複雑なXML式を使用してCookieを設定する(Oracle 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>

21.7.1.2 文字列式を使用したCookieの設定

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

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

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

$cookie_name = "cookie_value"

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

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

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。

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

始める前に

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

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

  1. 21.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に設定します。

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

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


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

  7. 「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。

  8. 「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。

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

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

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

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

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

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

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。

  3. 「アクションの追加」アイコンをクリックして、「通信」「ルーティング」を選択します。

  4. 「サービス」をクリックします。サービス・ブラウザが表示されます。

  5. リストからサービスを選択してから、「発行」をクリックします。そのサービスがデフォルトのリンクのかわりに表示されます。

  6. アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。

  7. 「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。

  8. 「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。

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

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

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

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

21.10 ルート・ノードへのルーティング表の追加

ルーティング表は、切替え式の条件表にラップされた一連のルートです。これは、単一のXQuery式の結果に基づいて各種ルートを選択できる短縮形の構文です。ステージ・エディタで複数レベルの分岐アクションをネストできます。

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

これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。

  3. 「アクションの追加」アイコンをクリックして、「通信」「ルーティング表」を選択します。ルーティング表アクションが表示されます。

  4. 「演算子」リストから、比較演算子を選択して、隣のフィールドに値式を入力します。

  5. 「サービス」をクリックします。「サービスの選択」ページが表示されます。

  6. リストからサービスを選択してから、「発行」をクリックします。

  7. サービスで操作を呼び出すには、「操作」リストから操作を選択します。

  8. アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。

  9. 「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。

  10. 「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。

    追加できるリクエストおよびレスポンス・アクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

  11. 新しいケースを挿入するには、「ケース」アイコンをクリックし、「新しいケースの挿入」を選択します。

  12. 新しいケースについて、ステップ2から7を繰り返します。「ケース」アイコンをクリックして、「デフォルト・ケースの挿入」を選択すると、それ以前のすべてのケースが満たされなかった場合に選択されるルートのデフォルトのケースを末尾に追加できます。

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

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

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

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

21.11 For Eachアクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「For Each」を選択します。

  3. 「変数」フィールドに変数名を入力し、「XPath」をクリックして、XPath式を作成するためのXPathエディタを開きます。次に、Do ()ループでアクションを構成します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.12 If... Then...アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「If...Then」を選択します。

  3. 「条件」をクリックして、「XQuery条件エディタ」ページを表示します。

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

  4. XQuery条件を編集したら、「アクションの追加」をクリックしてから、その条件に関連付けるアクションを選択します。追加するアクションのタイプの詳細は、21.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。

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

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

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.13 エラーの生成アクションの追加

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

始める前に

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

エラーを発生させるアクションを追加するには

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「エラーの生成」を選択します。

  3. 「エラー・コード」フィールドに、発生させるエラー・コードを入力します。

  4. 「エラー・メッセージ」フィールドに、エラー・コードの説明を入力します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.13.1 トランザクション

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

21.14 返信アクションの追加

呼出し元に即時に返信されるように指定するには、返信アクションを使用します。

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「返信」を選択します。

  3. 「成功時」を選択すると、メッセージが成功した場合に返信します。「失敗時」を選択すると、メッセージが失敗した場合に返信します。

    トランザクションがOracle Service Busによって開始されている場合、「失敗時に返信」によってトランザクションが中断されます。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.15 再開アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「再開」を選択します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.16 スキップ・アクションの追加

実行時にこのステージの実行がスキップされて、処理がメッセージ・フローの次のステージに進むように指定するには、スキップ・アクションを使用します。このアクションにはパラメータがなく、リクエスト・パイプライン、レスポンス・パイプライン、エラー・パイプラインで使用できます。

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. 該当するアイコンをクリックして、「アクションの追加」「フロー制御」「スキップ」を選択します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.17 割当てアクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数に割り当てるデータを作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  4. 式を編集したら、変数フィールドにコンテキスト変数を入力します。メッセージ・コンテキスト変数の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「inbound変数とoutbound変数」および「ディスパッチするメッセージの作成」を参照してください。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.18 削除アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

  2. コンテキスト変数を削除するには、「変数」オプションを選択し、コンテキスト変数の名前を「変数」フィールドに入力します。

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.19 挿入アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「式」をクリックして、XQuery式を編集します。XQuery式を使用して、名前付き変数で指定された場所に挿入されるデータを作成します。XQuery式エディタ・ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  4. 式を編集したら、リストで相対的な位置を選択します。相対的な位置は、XPath式の結果を基準として挿入位置を決める場合に使用します。

    • の前に - XPath式で選択される各要素や属性の前に兄弟として

    • の後ろに - XPath式で選択される各要素や属性の後に兄弟として

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

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

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

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

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

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

  6. XPath式の編集が終わったら、変数フィールドにコンテキスト変数を入力します。XPathは、この変数の内容を評価します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

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

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

始める前に

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

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

  1. 21.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に加えてメッセージ・フローで参照オブジェクトを処理できます。詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージでのJavaオブジェクトの送受信に関する説明を参照してください。

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

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

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

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

  6. 「結果」フィールドで、Javaメソッドが返した結果に対して、変数を割り当てます。

  7. Javaメソッドに対するセキュリティ・コンテキストがある場合は、チェックボックスを選択して、「サービス・アカウント」をクリックします。「サービス・アカウントの選択」ページが表示されます。リストから必要なサービス・アカウントを選択して、「発行」をクリックします。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.21 MFL変換アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. MFLトランスフォーメーションの適用リストから、「XMLから非XMLへ」または「非XMLからXMLへ」を必要に応じて選択します。

  4. 「式」をクリックします。XQuery式エディタを使用して、MFL変換アクションを実行する変数を指定します。この入力は、XMLへの変換の場合はテキストまたはバイナリ、XML以外への変換の場合はXMLである必要があります。メッセージ・コンテキストのバイナリ・コンテンツは、バイナリ・コンテンツXML要素によって表されます。入力がバイナリでなければならない場合、このXMLはXquery式の結果となります。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

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

    • MFLリソース: 「リソース」リンクをクリックします。「MFLの選択」ページが表示されます。MFL変換アクションを実行する静的なMFLリソースを選択します。

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

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.22 名前変更アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、名前を変更する(名前付き変数内の)データを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  4. 「変数」フィールドに、名前を変更する要素を保持するコンテキスト変数を入力します。

  5. 次のいずれかを行います。

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

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

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

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.23 置換アクションの追加

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

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

置換アクションは更新アクションのセットの内の1つです。

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、置換する(名前付き変数内の)データを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  4. XPath式の編集が終わったら、「変数」フィールドにコンテキスト変数を入力します。

  5. 「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数内のXPathで指定したデータを置換するデータを作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  6. XQuery式を編集したら、次のいずれかのオプションを選択します。

    • 「ノード全体を置換」 - 定義したXPath式で選択したノードとそのすべてのコンテンツを置換するように指定します。

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


      注意:

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


終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.24 検証アクションの追加

XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証するには、検証アクションを使用します。検証できるのは、グローバル要素のみです。Oracle Service Busはローカル要素に対する検証に対応していません。

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

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

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

  5. 「リソース」をクリックし、「WSDL」または「スキーマ」を選択します。

  6. 「WSDLブラウザ」または「XMLスキーマ・ブラウザ」から、次の手順を実行します。

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

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

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

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

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

完了した後に

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.25 アラート・アクションの追加

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

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  3. 「宛先」をクリックします。「アラート宛先の選択」ページが表示されます。リストから必要なアラートの宛先を選択して、「発行」をクリックします。

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

  4. 「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてアラート・メッセージに追加するメッセージ・コンテキストを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  5. 「アラート・サマリー」フィールドにアラートの簡単な説明文を入力します。説明文は、電子メール通知の場合の件名になり、80文字以内である必要があります。説明文が存在しない場合、「Oracle Service Busアラート」というあらかじめ定義された件名がかわりに使用されます。

  6. 「重大度」リストで、このアラートの重大度を「通常」「警告」「軽度」「重度」「クリティカル」「致命的」から選択します。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.26 ログ・アクションの追加

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

始める前に

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


注意:

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

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

  • ログ・ファイル: 情報

  • 標準出力: 情報

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


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

  1. 必ずロギングをグローバルに有効にしてください。詳細は、27.2.9項「ログのグローバルな有効化」を参照してください。

  2. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

  4. 「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてログに記録するメッセージ・コンテキストを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。

  5. 「注釈」フィールドに、このログ・アクションのメモを入力します。これらのメモは、事前に定義された式の結果と一緒にログに記録されます。

  6. 「重大度」リストで、次のいずれかのオプションを選択します。

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

    重大度 一般的な用途

    情報

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

    警告

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

    エラー

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

    デバッグ

    アプリケーションの開発中に、アプリケーション内の下位レベルのアクティビティに関する詳細な説明を提供するメッセージの作成および使用が有効である可能性があります。


    プロキシ・サービスの操作設定におけるログの重大度が、ログ・アクションの重大度と同じであることを確認します。プロキシ・サービスの操作設定の詳細は、26.8項「プロキシ・サービスの操作設定の構成」を参照してください。

終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。

21.27 レポート・アクションの追加

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

始める前に

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

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

  1. 21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。

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

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

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

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

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

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

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

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

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

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

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

errorCode=BEA-382505

04/26/07 9:45 AM

MortgageBroker/ProxySvcs/loanGateway3

BEA-382505

errorCode=BEA-382505

04/26/07 9:45 AM


BEA-382505


終了後

このアクションの構成が完了したら、21.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。