この章では、ルート、パブリッシュ、サービス・コールアウト、トランスポート・ヘッダー、条件付きアクション、エラー・アクションおよびメッセージ変換アクションなど、Oracle Service Bus管理コンソールを使用したメッセージ・フローへの異なるタイプのアクションの追加方法について説明します。
アクションとは、パイプラインを流れるメッセージの定義方法を定義するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノード、およびブランチ・ノードの要素です。
この章の内容は次のとおりです。
アクションとは、プロキシ・サービスを流れるメッセージの定義方法を定義するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノード、およびブランチ・ノードの要素です。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
また、パイプライン・ステージ、ルート・ノード、およびエラー・ハンドラ・ステージをすでに追加していることも前提としています。次を参照してください。
メッセージ・フローにアクションを追加するには
アクションを追加するコンポーネントを選択します。たとえば、「ステージ」アイコンをクリックして、「ステージの編集」をクリックするか、または、「ルート・ノード」アイコンをクリックし、「ルートの編集」をクリックします。
ステージまたはルート・ノードにすでに追加しているアクションに応じて、以下のいずれかを行います。
まだアクションを何も追加していない場合、「ステージ構成の編集」ページには、「アクションの追加」アイコンのみが表示されます。そのアイコンをクリックして、アクション・タイプを選択します。
すでに1つ以上のアクションを追加している場合、「ステージ構成の編集」ページには、「パブリッシュ」アイコンまたは「ルーティング」アイコンなどの、それらのアクションを表す1つ以上のアイコンが表示されます。該当するアイコンをクリックし、「アクションの追加」をクリックして、アクション・タイプを選択します。
パブリッシュ・アクションのリクエストおよびレスポンス・アクションなどの一部のアクションには、アクションを割り当てるための「アクションの追加」リンクが含まれています。そのアイコンをクリックして、アクション・タイプを選択します。
メッセージ・フローのアクションは任意の組合せで連鎖できます。
メッセージ・フローに構成できるアクションを表22-1から表22-4に示します。
表22-1 メッセージ・フロー - 通信アクション
アクション | 説明 | 詳細情報 |
---|---|---|
動的にパブリッシュ |
Xquery式によって識別されたサービスにメッセージをパブリッシュします。 |
|
パブリッシュ |
静的に指定されたサービスにメッセージをパブリッシュします。 |
|
パブリッシュ表 |
ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュします。切替え式の条件ロジックを使用して、パブリッシュに使用するサービスを実行時に決定します。 |
|
ルーティング・オプション |
アウトバウンド・リクエストのURI、サービスの品質、モード、再試行パラメータ、メッセージ優先度の各プロパティの一部またはすべてを変更します。 |
|
サービス・コールアウト |
Oracle Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成します。 |
|
トランスポート・ヘッダー |
メッセージのトランスポート・ヘッダーの値を設定します。 |
|
動的ルーティング |
XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。 |
|
ルーティング |
メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。 |
22.9項「ルート・ノードへのルーティング・アクションの追加」 |
ルーティング表 |
切替え式の条件表に含まれた一連のルートを割り当てます。これは、単一のXQuery式の結果に基づいて、異なるルートが選択されます。 |
|
表22-2 メッセージ・フロー - フロー制御アクション
アクション | 説明 | 詳細情報 |
---|---|---|
For each |
値のシーケンスを反復処理し、アクションのブロックを実行します。 |
|
If...Then |
XQuery式のブール結果に基づいて、1つのアクションまたは一連のアクションを条件付きで実行します。 |
|
エラーの生成 |
指定されたエラー・コード(文字列)と記述を含む例外を発生させます。 |
|
返信 |
呼出し元に即時返信を送信します。 |
|
再開 |
エラー・ハンドラによってエラーが処理された後、メッセージ・フローを再開します。 |
|
スキップ |
実行時に現在のステージの実行がスキップされて、処理がメッセージ・フローの次のステージに進むように指定します。 |
|
表22-3 メッセージ・フロー - メッセージ処理アクション
アクション | 説明 | 詳細情報 |
---|---|---|
割当て |
コンテキスト変数にXQuery式の結果を割り当てます。 |
|
削除 |
XPath式で指定されたコンテキスト変数または一連のノードを削除します。 |
|
挿入 |
XPath式で選択したノードを基準として特定された場所にXQuery式の結果を挿入します。 |
|
Javaコールアウト |
パイプラインからJavaメソッドを呼び出します。 |
|
MFL変換 |
パイプラインで非XMLからXML、またはXMLから非XMLに変換します。 |
|
名前変更 |
要素のコンテンツを変更せずに、XPath式で選択した要素の名前を変更します。 |
|
置換 |
XPath式で指定されたノードまたはノードのコンテンツを置き換えます。 |
|
検証 |
XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証します。 |
|
アクションを追加したら、表22-5に示すように、さらにステージまたはルート・ノードのアクションを構成できます。
表22-5 ステージ構成の編集タスク
内容 | 手順 |
---|---|
アクションの削除 |
該当するアイコンを選択してから、「このアクションを削除」をクリックします。 |
アクションを下に移動する(降格する) |
該当するアイコンを選択してから、「アクションを下に移動」をクリックします。アクションがこのステージに含まれる次のアクションの下に移動します。 このオプションは、ステージに2つ以上のアクションが含まれる場合にのみ表示されます。 |
アクションを上に移動する(昇格する) |
該当するアイコンを選択してから、「アクションを上に移動」をクリックします。アクションがこのステージに含まれる前のアクションの上に移動します。 このオプションは、ステージに2つ以上のアクションが含まれる場合にのみ表示されます。 |
アクションの切取り |
該当するアイコンを選択してから、「切取り」をクリックします。 |
アクションのコピー |
該当するアイコンを選択してから、「コピー」をクリックします。 |
切り取りまたはコピーしたアクションを貼り付ける |
該当するアイコンを選択してから、「アクションの貼付け」をクリックします。 アクションのコピーと貼付けは、ステージ全体で可能です。ただし、「割当て」アクション、「置換」アクション、または「挿入」アクションの場合は、次の点に注意してください。
|
ステージの検証 |
「ステージ構成の編集」ページで、「検証」をクリックして、そのステージで構成したすべてのアクションを検証します。 |
「保存」をクリックして、現在のセッションで更新をコミットします。
21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。
「保存」をクリックして、現在のセッションで更新をコミットします。
セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」の「アクティブ化」をクリックします。
静的に指定された、メッセージのターゲット・サービスを指定し、メッセージのパッケージおよびサービスへの送信方法を構成するには、パブリッシュ・アクションを使用します。
パブリッシュの動作の詳細は37.4項「メッセージ・フローでのトランスフォーメーションの実行」を参照してください。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
「アクションの追加」→「通信」→「パブリッシュ」を選択します。
「サービス」をクリックします。「サービスの選択」ページが表示されます。
リストからサービスを選択してから、「発行」をクリックします。これがメッセージのターゲット・サービスとなります。
サービスの操作がすでに定義されている場合、「操作」リストから選択して、呼び出す操作を指定できます。
アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。
メッセージのパッケージとサービスへの送信方法を構成するために、「リクエスト・アクション」フィールドで「アクションの追加」をクリックします。その後で、サービスと関連付けるアクションを選択します。複数のアクションを追加することも可能です。22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュするには、パブリッシュ表アクションを使用します。切替え式の条件ロジックを使用して、パブリッシュに使用するサービスを実行時に決定します。
パブリッシュの動作の詳細は37.4項「メッセージ・フローでのトランスフォーメーションの実行」を参照してください。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
「アクションの追加」→「通信」→「パブリッシュ表」を選択します。
「式」をクリックします。XQuery式エディタ・ページが表示されます。実行時にルーティングの決定を行う値を返すXQuery式を作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
「演算子」リストから、比較演算子を選択します。その後で、隣のフィールドに、XQuery式から返される値が評価される対象の値を入力します。
「サービス」をクリックして、指定した値の式による評価がtrueの場合にメッセージをパブリッシュするサービスを選択します。「サービスの選択」ページが表示されます。
リストからサービスを選択してから、「発行」をクリックします。これがメッセージのターゲット・サービスとなります。
サービスの操作がすでに定義されている場合、起動リストから選択して、呼び出す操作を指定できます。
アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。
メッセージのパッケージとサービスへの送信方法を構成するために、「リクエスト・アクション」フィールドで「アクションの追加」をクリックし、サービスと関連付ける1つ以上のアクションを選択します。追加するアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。
注意: ステージ・エディタでは、ネストは4累積レベルまでに制限されています。5番目のレベルを追加しようとしても、そのネスト・アクションは表示されません。累積レベルには、すべてのブランチ・アクション(If...Then...条件、パブリッシュ表、ルート表)が含まれます。たとえば、2レベルの条件と、ルート表を含むパブリッシュ表を使用して、合計4レベルにすることができます。ただし、別の条件を追加(最後のパブリッシュ表に対して)すると、その条件は表示されません。 |
新しいケースを挿入するには、「ケース」アイコンをクリックし、「新しいケースの挿入」を選択します。
新しいケースについて、ステップ4 - 8を繰り返します。
ビジネス・ロジックで指定されているようにケースを追加します。
シーケンス内に定義されている最後のケースの「ケース」アイコンをクリックし、「デフォルト・ケースの挿入」を選択して末尾にデフォルト・ケースを追加します。
デフォルト・ケースを構成します。このケースの構成では、それ以前のケースが満たされていない場合のルーティングの動作を指定します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XQuery式によって指定されたサービスに対してメッセージをパブリッシュするには、動的パブリッシュ・アクションを使用します。
パブリッシュの動作の詳細は37.4項「メッセージ・フローでのトランスフォーメーションの実行」を参照してください。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「通信」→「動的にパブリッシュ」を選択します。
「式」をクリックします。
XQuery式エディタで、XQuery式を入力するか、次と同様の結果となるXQueryリソースを選択します。
<ctx:route> <ctx:service isProxy="false">project/folder/businessservicename</ctx:service> <ctx:operation>foo</ctx:operation> </ctx:route>
注意: プロキシ・サービスが呼び出されている場合は、
|
「保存」をクリックします。
「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
$outbound
のアウトバウンド・リクエストのURI、サービスの品質、モード、および再試行パラメータの一部またはすべてを変更するには、ルーティング・オプション・アクションを使用します。これらのプロパティは、$outbound
上の割り当て、挿入、置換、または削除アクションで変更できますが、ルーティング・オプションを使用すると、XPath、XQuery、または$outbound
コンテキスト変数の構造を理解していなくてもこのタスクを実行できます。
ルーティング・オプションのアクションはコンテキスト変数$outbound
が有効な場合にのみ使用できます。次のアクションに追加できます。
パブリッシュ
動的にパブリッシュ
パブリッシュ表
サービス・コールアウト
ルーティング
動的ルーティング
ルーティング表
ルーティングの詳細は、第37章「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
ルーティング・オプション・アクションを構成する手順:
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「通信」→「ルーティング・オプション」を選択します。
以下の手順のいずれか、またはすべてを実行します。
アウトバウンド・メッセージのURIを設定する場合: 「URI」を選択して、XQuery式エディタをクリックします。URIを返す式を入力します。これで呼び出されたサービスのURIがオーバーライドされます。
注意: 別のプロキシ・サービスにルーティングする場合は、URIのオーバーライドは無効です。 |
サービス品質要素を設定する場合: 「サービス品質」を選択して、リストで「サービス品質」オプションを選択します。これで、自動計算されたデフォルトがオーバーライドされます。
モードを設定するには、「モード」を選択して、リストから「リクエスト」または「リクエスト-レスポンス」を選択します。
注意: これは、通常、呼び出されたサービスのインタフェースに基づいて、自動的に設定されています。Any SoapまたはAny XMLサービスなどでは、設定されていない場合もあります。 |
再試行間隔を設定する場合: 「再試行間隔」を選択して、再試行の間隔を秒単位で指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。
再試行回数を設定する場合: 「再試行回数」を選択して、アクションを中断するまでの再試行回数を指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。
メッセージの優先度を設定する場合: 「優先度」を選択して、XQuery式エディタをクリックします。正の整数を返す式を入力します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
Oracle Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成するには、サービス・コールアウト・アクションを使用します。
サービス・コールアウト・アクションの詳細は37.5項「サービス・コールアウト・メッセージの作成」を参照してください。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「通信」→「サービス・コールアウト」を選択します。
「サービス」をクリックします。サービス・ブラウザが表示されます。
登録済のプロキシ・サービスまたはビジネス・サービスのリストでサービスを選択し、「発行」をクリックします。
前述のステップ3で選択したサービスがWSDLベースであり、サービスで呼び出せる操作がある場合、これらの操作は操作の呼出しリストに一覧表示されます。サービスで呼び出す操作を選択します。
注意: 様々な理由からOracle Service Busで必要とする操作を選択すると、選択した操作のみが呼び出されることは保証されません。たとえば、操作Aを選択した場合でも、メッセージに操作Bの呼び出しが含まれていると、操作Bも呼び出されます。 |
次のいずれかのオプションを選択して、リクエスト・メッセージとレスポンス・メッセージの構成方法を指定します。
「SOAP本体の構成」を選択して、SOAP本体を構成します。このオプションを選択すると、$body
を直接使用できます。
注意: このオプションでサポートしているSOAP-RPCエンコード形式は、ペイロードのパラメータやドキュメントを構成している場合はサポートされません。 |
「ペイロード・パラメータの構成」または「ペイロード・ドキュメントの構成」を選択して、ペイロードを構成します。
以降の構成オプションは、選択したサービスの種類とそのサービスに対して選択した構成オプションによって異なります。
表22-6に、各オプションの手順を示します。
表22-6 サービス・コールアウトの構成オプション
オプション | 手順 |
---|---|
「SOAPリクエスト本体」および 「SOAPレスポンス本体」 |
これらのオプションを構成するには、次の手順を実行します。
|
「SOAPリクエスト・ヘッダー」および 「SOAPレスポンス・ヘッダー」 |
これらのオプションを構成するには、次の手順を実行します。
|
「リクエスト・パラメータ」および 「レスポンス・パラメータ」 |
オプションを構成するには、次の手順を実行します。
|
「リクエスト・ドキュメント」および 「レスポンス・ドキュメント」 |
これらのオプションを構成するには、次の手順を実行します。
|
(オプション)1つ以上のトランスポート・ヘッダーを追加します。詳細は、22.7項「トランスポート・ヘッダー・アクションの追加」を参照してください。
注意: 指定するトランスポート・ヘッダーに加え、その他のヘッダーがOracle Service Busバインディング・レイヤーによって追加されます。詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。 |
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
メッセージのヘッダーの値を設定するには、トランスポート・ヘッダー・アクションを使用します。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「通信」→「トランスポート・ヘッダー」を選択します。
トランスポート・ヘッダーの設定対象リストから、次のいずれかを選択して、どのメッセージ・コンテキストの場所を変更するかをランタイムに対して指定します。
アウトバウンド・リクエスト - アウトバウンド・リクエスト(ルート、パブリッシュ、またはサービス・コールアウト・アクションでプロキシ・サービスによって送信されるメッセージ)のヘッダーの値を設定するには、このオプションを選択します。このヘッダー要素は、メッセージ・コンテキストの次の場所にあります。
$outbound/ctx:transport/ctx:request/tp:headers
インバウンド・レスポンス - インバウンド・レスポンス(プロキシ・サービスがクライアントに返信するレスポンス・メッセージ)のヘッダーの値を設定するには、このオプションを選択します。このヘッダー要素は、メッセージ・コンテキストの次の場所にあります。
$inbound/ctx:transport/ctx:response/tp:headers
(オプション)すべてのヘッダーをインバウンド・メッセージとアウトバウンド・メッセージとの間でパススルーするには、「パイプラインを介してすべてのヘッダーを渡す」を選択します。ソース・ヘッダー・セットのすべてのヘッダーはターゲット・ヘッダー・セットにコピーされ、ターゲット・ヘッダー・セットの既存の値はすべて上書きされます。
ヘッダー固有のパス・スルー・オプションに関連してこのオプションを使用する方法の詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。
追加する各ヘッダーについて、以下の手順を行います。
「トランスポート・ヘッダー」表で「ヘッダーの追加」をクリックして、ヘッダーを構成するためのフィールドを表示します。
以下のいずれかを実行して、ヘッダーを指定します。
「名前」列のリストから、ヘッダー名を選択します。リストには、事前定義されたすべてのターゲット・トランスポートのヘッダー名が含まれています(たとえば、HTTPトランスポートの場合はContent-Type、JMSトランスポートの場合はJMSCorrelationIDなど)。
「その他」フィールドにヘッダー名を入力します。ヘッダー名がこのサービスのトランスポート用に事前定義されたいずれかのヘッダーでない場合、そのヘッダーはトランスポート仕様の定義のとおりユーザー・ヘッダーになります。
「アクション」列でいずれかのオプションを選択して、ヘッダーの値の設定方法を指定します。
ヘッダーを式に設定
このオプションを選択すると、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開発者ガイド』のメッセージ・フローでのトランスポート・ヘッダーの構成に関する項を参照してください。
表にヘッダーを追加するには、「ヘッダー」アイコンをクリックし、「ヘッダーの追加」をクリックします。
この表を展開すると、別のトランスポート・ヘッダーの構成に使用できる新しい一連のオプションを含む追加の行が表示されます。この表には、必要な数のヘッダーを追加することができます。ランタイムでは、対応するXMLの生成時に、ネームスペースを宣言し、適切な順序でヘッダー要素を配置するため、表のヘッダーの順序を指定する必要はありません。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
HTTPメッセージ・フローでは、次の方法でトランスポート・ヘッダーにCookieを設定できます。
複雑なXML式を使用する(Oracle Service Busのデフォルト)
文字列式を使用する(サーバー起動オプションが必要)
複雑な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>
XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。
これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。
ルーティングの詳細は、第37章「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
ルート・ノードに動的ルーティングを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
「アクションの追加」アイコンをクリックして、「通信」→「動的ルーティング」を選択します。
「式」をクリックします。XQuery式エディタが表示されます。
XQuery式エディタで、XQuery式を入力します。次のような結果になります。
<ctx:route> <ctx:service isProxy='true'>{$service}</ctx:service> <ctx:operation>{$operation}</ctx:operation> </ctx:route>
注意: プロキシ・サービスが呼び出されている場合は、
|
「保存」をクリックします。
「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。
「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加するアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。
「保存」をクリックします。
21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。
「保存」をクリックして、現在のセッションで更新をコミットします。
セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」の「アクティブ化」をクリックします。
そのメッセージのターゲット・サービスを指定し、サービスへのメッセージのルーティング方法を構成します。
これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。
ルーティングの詳細は、第37章「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
ルート・ノードにルーティング・アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
「アクションの追加」アイコンをクリックして、「通信」→「ルーティング」を選択します。
「サービス」をクリックします。サービス・ブラウザが表示されます。
リストからサービスを選択してから、「発行」をクリックします。そのサービスがデフォルトのリンクのかわりに表示されます。
アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。
「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。
「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。追加できるアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」のアクションの表を参照してください。
「保存」をクリックします。
21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。
「保存」をクリックして、現在のセッションで更新をコミットします。
セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」の「アクティブ化」をクリックします。
ルーティング表は、切替え式の条件表にラップされた一連のルートです。これは、単一のXQuery式の結果に基づいて各種ルートを選択できる短縮形の構文です。
ステージ・エディタでは、ネストは4累積レベルまでに制限されています。5番目のレベルを追加しようとしても、そのネスト・アクションは表示されません。累積レベルには、すべてのブランチ・アクション(If...Then...条件、パブリッシュ表、ルート表)が含まれます。たとえば、2レベルの条件と、ルート表を含むパブリッシュ表を使用して、合計4レベルにすることができます。ただし、別の条件を追加(最後のパブリッシュ表に対して)すると、その条件は表示されません。
メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。
これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。
ルーティングの詳細は、第37章「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
ルート・ノードにルーティング表を追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
「ルート・ノード」アイコンをクリックして「ルートの編集」をクリックします。「ステージ構成の編集」ページが表示されます。
「アクションの追加」アイコンをクリックして、「通信」→「ルーティング表」を選択します。ルーティング表アクションが表示されます。
「演算子」リストから、比較演算子を選択して、隣のフィールドに値式を入力します。
「サービス」をクリックします。「サービスの選択」ページが表示されます。
リストからサービスを選択してから、「発行」をクリックします。
サービスで操作を呼び出す場合は、「操作」リストから操作を選択します。
アウトバウンド処理をインバウンド処理と同じにする場合、「インバウンド操作のアウトバウンドでの使用」チェックボックスを選択します。
「リクエスト・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。
「レスポンス・アクション」フィールドの「アクションの追加」をクリックしてアクションを追加した上で、そのサービスに関連付けるアクションを選択します。複数のアクションを追加することも可能です。
追加できるリクエストおよびレスポンス・アクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。
新しいケースを挿入するには、「ケース」アイコンをクリックし、「新しいケースの挿入」を選択します。
新しいケースについて、ステップ2から7を繰り返します。「ケース」アイコンをクリックして、「デフォルト・ケースの挿入」を選択すると、それ以前のすべてのケースが満たされなかった場合に選択されるルートのデフォルトのケースを末尾に追加できます。
「保存」をクリックします。
21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、メッセージ・フローの作成を続けます。
「保存」をクリックして、現在のセッションで更新をコミットします。
セッションを終了して構成をランタイムにデプロイするには、「チェンジ・センター」の「アクティブ化」をクリックします。
一連の値を反復処理してアクションのブロックを実行するには、For Eachアクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
For Eachアクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「For Each」を選択します。
「変数」フィールドに変数名を入力し、「XPath」をクリックして、XPath式を作成するためのXPathエディタを開きます。次に、Do ()ループでアクションを構成します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XQuery式のブール結果に基づき、1つまたは複数のアクションを条件付きで実行するには、If Thenアクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
If... Then...アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「If...Then」を選択します。
「条件」をクリックして、「XQuery条件エディタ」ページを表示します。
作成した条件は、then()
句に入る前に、標準のif...thenロジックに従って実行されるテストとして使用されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
XQuery条件を編集したら、「アクションの追加」をクリックしてから、その条件に関連付けるアクションを選択します。追加するアクションのタイプの詳細は、22.1項「メッセージ・フローでのアクションの追加と編集」を参照してください。
ルート・ノードでは、ルーティング・アクション、動的ルーティング・アクション、またはルーティング表アクションのみを選択できます。ただし、これらのアクションには、リクエストとレスポンスのアクションを入れることができます。
ロジックの必要性に応じて「If...Then」アイコンをクリックし、「else-if条件の追加」または「else条件の追加」をクリックしてelse-if
条件またはelse
条件を追加します。「アクションの追加」をクリックして、アクションをこれらの条件と関連付けます。
条件アクションはネストできます。ただし、ステージ・エディタでは、ネストは4累積レベルまでに制限されています。5番目のレベルを追加しようとしても、そのネスト・アクションは表示されません。累積レベルには、すべてのブランチ・アクション(If...Then...条件、パブリッシュ表、ルート表)が含まれます。たとえば、2レベルの条件と、ルート表を含むパブリッシュ表を使用して、合計4レベルにすることができます。ただし、別の条件付きのアクションを追加(最後のパブリッシュ表に対して)しようとしても、そのアクションは表示されません。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
指定したエラー・コード(文字列)と説明を使用して例外を発生させるには、エラーを発生させるアクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
エラーを発生させるアクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「エラーの生成」を選択します。
「エラー・コード」フィールドに、発生させるエラー・コードを入力します。
「エラー・メッセージ」フィールドに、エラー・コードの説明を入力します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
呼出し元に即時に返信されるように指定するには、返信アクションを使用します。
返信アクションは、リクエスト・パイプライン、レスポンス・パイプライン、またはエラー・パイプラインで使用できます。成功時または失敗時に返信するように構成できます。HTTPインバウンド・トランスポートでの失敗時の返信の場合、返信アクションでは、呼出し元に即時に返信されるように指定します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
返信アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「返信」を選択します。
「成功時」を選択すると、メッセージが成功した場合に返信します。「失敗時」を選択すると、メッセージが失敗した場合に返信します。
トランザクションがOracle Service Busによって開始されている場合、「失敗時に返信」によってトランザクションが中断されます。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
エラー・ハンドラによってエラーが処理された後で、メッセージ・フローを再開するには、再開アクションを使用します。このアクションにパラメータはありません。このアクションはエラー・パイプラインでのみ使用できます。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
再開アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「再開」を選択します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
実行時にこのステージの実行がスキップされて、処理がメッセージ・フローの次のステージに進むように指定するには、スキップ・アクションを使用します。このアクションにはパラメータがなく、リクエスト・パイプライン、レスポンス・パイプライン、エラー・パイプラインで使用できます。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
スキップ・アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「フロー制御」→「スキップ」を選択します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XQuery式の結果をコンテキスト変数に割り当てるには、割当てアクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
割当てアクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「割当て」を選択します。
「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数に割り当てるデータを作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
式を編集したら、変数フィールドにコンテキスト変数を入力します。メッセージ・コンテキスト変数の詳細は、『Oracle Fusion Middleware Oracle Service Bus管理者ガイド』の「inbound変数とoutbound変数」および「ディスパッチするメッセージの作成」を参照してください。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
削除アクションは、コンテキスト変数またはXPath式で指定したすべてのノードを削除するときに使用します。削除アクションは一連の更新アクションの1つです。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
削除アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
コンテキスト変数を削除するには、「変数」オプションを選択し、コンテキスト変数の名前を「変数」フィールドに入力します。
または、XPath式で選択されたすべてのノードを削除するには、「XPath」ラジオ・ボタンを選択して、「XPath」をクリックします。「XPath式エディタ」ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。式を保存したら、「変数」フィールドにコンテキスト変数を入力します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XPath式で選択したノードを基準に、指定した位置にXQuery式を挿入するには、挿入アクションを使用します。挿入アクションは更新アクションの1つです。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
挿入アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「挿入」を選択します。
「式」をクリックして、XQuery式を編集します。XQuery式を使用して、名前付き変数で指定された場所に挿入されるデータを作成します。XQuery式エディタ・ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
式を編集したら、リストで相対的な位置を選択します。相対的な位置は、XPath式の結果を基準として挿入位置を決める場合に使用します。
の前に - XPath式で選択される各要素や属性の前に兄弟として
の後ろに - XPath式で選択される各要素や属性の後に兄弟として
の最初の子として - XPath式で指定される各要素の最初の子として。XPathの結果が属性を返す場合はエラーが発生します。
の最後の子として - XPath式で指定される各要素の最後の子として。XPathが属性を返す場合はエラーが発生します。
「XPath」をクリックします。「XPath式エディタ」ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
有効な構成には、以下の構成が含まれます。
XQuery式とXPath式の両方が要素を返します。
XQuery式とXPath式の両方が属性を返します。この場合、XQuery式は属性を返す必要があります。
XPath式の編集が終わったら、変数フィールドにコンテキスト変数を入力します。XPathは、この変数の内容を評価します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
メッセージ・フローからJavaメソッド、またはEJBビジネス・サービスを呼び出すには、Javaコールアウト・アクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
Javaコールアウト・アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「Javaコールアウト」を選択します。
「メソッド」をクリックします。「JARの選択」ページが表示されます。リストからJARリソースを選択します。「クラスとメソッドの選択」ページが表示されます。
表示されたJavaクラスのリストで、該当するクラスの横にある+をクリックしてメソッドのリストを表示します。メソッドを選択して、「発行」をクリックします。「ステージの編集」ページに、次のようにJavaコールアウト・アクションが表示されます。
「メソッド」はステップ2および3で選択したJavaメソッドの名前に置き換えられます。この名前は「クラスとメソッドの選択」ページへのリンクです。このリンクをクリックして、Javaメソッドの選択内容を変更することができます。
メソッドは静的メソッドである必要があります。
パラメータ: Javaメソッドが必要とする各引数に対するXQuery式エディタ・ページへの「式」リンクが用意されています。それぞれのリンクに対するラベルは、引数のデータ型を示します。これは次のいずれかです。
Java.lang.String
プリミティブ型および対応するクラス型(int
とjava.lang.Integer
など)
java.lang.BigDecimal
およびjava.lang.BigInteger
(これらの型は、四捨五入のエラーやオーバーフローが許容されない財務関連の計算で使用されます)
org.apache.xbeans.XmlObject
のみ(型指定されたXML Beanはなし)
byte[]
java.lang.String[]
(入力のみ)
XmlObject[]
(入力のみ)
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で)定義されている場合、このコンテキストは、メッセージ・レベルのコンテキストになります。そうでない場合は、トランスポート・レベルのコンテキストになります。
「パラメータ」で、「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、Javaメソッドに必要な引数を指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
入力値の型が宣言されている入力引数の型と一致しない場合、Oracle Service Busは入力値を入力引数の宣言された型に自動的に型キャストします。たとえば、入力引数の宣言された型がJavaプリミティブのint
の場合、文字列値"123"
は整数123
に変換されます。
「結果」フィールドで、Javaメソッドが返した結果に対して、変数を割り当てます。
Javaメソッドに対するセキュリティ・コンテキストがある場合は、チェックボックスを選択して、「サービス・アカウント」をクリックします。「サービス・アカウントの選択」ページが表示されます。リストから必要なサービス・アカウントを選択して、「発行」をクリックします。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
MFL(メッセージ書式言語)変換アクションを使用して、メッセージ・パイプライン内でメッセージ・コンテンツをXMLとXML以外の形式との間で変換します。MFLは、バイナリ・データのレイアウトを記述するために使用する特別なXMLドキュメントです。Oracle独自の言語を使用して、フォーマットされたバイナリ・データをXMLデータに、またはXMLデータをバイナリ・データに変換するルールを定義します。16項「MFL」を参照してください。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
MFL変換アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「MFL変換」を選択します。
MFLトランスフォーメーションの適用リストから、「XMLから非XMLへ」または「非XMLからXMLへ」を必要に応じて選択します。
「式」をクリックします。XQuery式エディタを使用して、MFL変換アクションを実行する変数を指定します。この入力は、XMLへの変換の場合はテキストまたはバイナリ、XML以外への変換の場合はXMLである必要があります。メッセージ・コンテキストのバイナリ・コンテンツは、バイナリ・コンテンツXML要素によって表されます。入力がバイナリでなければならない場合、このXMLはXquery式の結果となります。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
次のいずれかのオプションを選択します。
MFLリソース: 「リソース」リンクをクリックします。「MFLの選択」ページが表示されます。MFL変換アクションを実行する静的なMFLリソースを選択します。
からのMFLリソース: 「式」リンクをクリックします。XQuery式エディタ・ページが表示されます。XQuery式エディタを使用して、変換アクションを実行するMFLリソースを動的に指定するXQuery式を作成または編集します。形式は、project/folder/MFLresourcenameです。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
変数に割当てフィールドで、この変換アクションの結果を割り当てる変数名を入力します。結果は、バイナリ・コンテンツのXML要素になります。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XPath式で選択された要素のコンテンツを変更せずに要素名を変更するには、名前変更アクションを使用します。名前変更アクションは更新アクションの1つです。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
名前変更アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「名前変更」を選択します。
「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、名前を変更する(名前付き変数内の)データを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
「変数」フィールドに、名前を変更する要素を保持するコンテキスト変数を入力します。
次のいずれかを行います。
ローカル名を使用して選択した要素名を変更する場合は、最初の「ローカル名」オプションを選択して、「ローカル名」フィールドにローカル名を入力します。
ネームスペースを使用して選択した要素名を変更する場合は、最初の「ネームスペース」オプションを選択して、「ネームスペース」フィールドにネームスペースを入力します。
ローカル名とネームスペースを使用して選択した要素名を変更する場合は、ローカル名とネームスペース・ラジオ・ボタンを選択して、ローカル名とネームスペース・フィールドにローカル名とネームスペースを入力します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XPath式で指定されたノードまたはノードのコンテンツを置き換えるには、置換アクションを使用します。ノードまたはそのコンテンツは、XQuery式が返した値で置換されます。
置換アクションでは、単純な値、要素、属性を置き換えることができます。XQuery式から何も返されない状態は、アクションがノード全体を置き換えるか、ノード・コンテンツのみを置き換えるかにより、識別されたノードを削除すること、または空のノードを作成することと同じです。
置換アクションは更新アクションのセットの内の1つです。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
置換アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「置換」を選択します。
「XPath」をクリックします。「XPath式エディタ」ページが表示されます。XPath式を使用して、置換する(名前付き変数内の)データを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
XPath式の編集が終わったら、「変数」フィールドにコンテキスト変数を入力します。
「式」をクリックします。XQuery式エディタ・ページが表示されます。XQuery式を使用して、名前付き変数内のXPathで指定したデータを置換するデータを作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
XQuery式を編集したら、以下のいずれかのオプションを選択します。
「ノード全体を置換」 - 定義したXPath式で選択したノードとそのすべてのコンテンツを置換するように指定します。
ノードのコンテンツを置換 - ノードは置換せず、そのコンテンツのみ置換するように指定します。
注意: 「ノード全体を置換」オプションを選択してXPathを |
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証するには、検証アクションを使用します。検証できるのは、グローバル要素のみです。Oracle Service Busはローカル要素に対する検証に対応していません。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
検証アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「メッセージ処理」→「検証」を選択します。
「XPath」をクリックします。検証する要素を指定するXPath式を作成します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。XPath式エディタで式を作成したら、「保存」をクリックして、「ステージ構成の編集」ページで式を挿入します。
変数フィールドに、検証する要素を保持する変数の名前を入力します。
「リソース」をクリックし、「WSDL」または「スキーマ」を選択します。
「WSDLブラウザ」または「XMLスキーマ・ブラウザ」から、以下を実行します。
WSDLまたはXMLスキーマを選択します。
WSDLまたはXMLスキーマのタイプまたは要素を選択します。
「発行」をクリックします。
この検証の結果(ブール結果)を保存する場合は、検証結果を変数に保存を選択し、結果を保存する変数の名前を入力します。
また、WSDL要素やXMLスキーマ要素に対する検証が失敗したときにエラーを発生させる場合は、検証の失敗で「エラーの生成」を選択します。
完了した後に
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
アラート宛先にアラートを送信するには、アラート・アクションを使用して、パイプラインのメッセージ・コンテキストに基づいてアラートを生成します。SLAアラートと異なり、アラート・アクションで生成された通知は、主にビジネスでの使用、またはエラーの報告を目的とし、システムの状態を監視するものではありません。このことを考慮して、アラートの宛先を構成および選択する必要があります。アラートの宛先の詳細は、6項「アラート宛先」を参照してください。
サービスに対してパイプライン・アラートが有効になっていない場合や、ドメイン・レベルでパイプライン・アラートが有効になっていない場合は、メッセージの処理中に、構成したアラート・アクションがバイパスされます。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
アラート・アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「レポート」→「アラート」を選択します。
「宛先」をクリックします。「アラート宛先の選択」ページが表示されます。リストから必要なアラートの宛先を選択して、「発行」をクリックします。
デフォルトでは、アラートは常に管理コンソールに出力されます。
「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてアラート・メッセージに追加するメッセージ・コンテキストを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
「アラート・サマリー」フィールドにアラートの簡単な説明文を入力します。説明文は、電子メール通知の場合の件名になり、80文字以内である必要があります。説明文が存在しない場合、「Oracle Service Busアラート」というあらかじめ定義された件名がかわりに使用されます。
「重大度」リストで、このアラートの重大度を「通常」、「警告」、「軽度」、「重度」、「クリティカル」、「致命的」から選択します。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
ログに記録するメッセージを作成し、ログに使用する一連の属性を定義するには、ログ・アクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
注意: ログ・ファイルまたは標準出力(サーバー・コンソール)にログ・データを表示するには、Oracle WebLogic Serverのロギングを次の重大度に設定する必要があります。
ログの重大度の設定の詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のログの重大度の使用に関する説明を参照してください。 |
ログ・アクションを追加するには
必ずロギングをグローバルに有効にしてください。詳細は、27.2.9項「ログのグローバルな有効化」を参照してください。
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「レポート」→「ログ」を選択します。
「式」をクリックします。XQuery式エディタ・ページが表示されます。コンテキスト変数のXQuery式を通じてログに記録するメッセージ・コンテキストを指定します。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
「注釈」フィールドに、このログ・アクションのメモを入力します。これらのメモは、事前に定義された式の結果と一緒にログに記録されます。
「重大度」リストで、次のいずれかのオプションを選択します。
表22-7 ログ・アクションの重大度
重大度 | 一般的な用途 |
---|---|
情報 |
通常の処理を報告するために使用する、低レベルの情報メッセージ。 |
警告 |
不審なオペレーションまたは構成が発生しましたが、通常のオペレーションに支障は生じません。 |
エラー |
ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。 |
デバッグ |
アプリケーションの開発中に、アプリケーション内の下位レベルのアクティビティに関する詳細な説明を提供するメッセージの作成および使用が有効である可能性があります。 |
プロキシ・サービスの操作設定におけるログの重大度が、ログ・アクションの重大度と同じであることを確認します。プロキシ・サービスの操作設定の詳細は、26.8項「プロキシ・サービスの操作設定の構成」を参照してください。
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。
プロキシ・サービスのメッセージ・レポートを有効にするには、レポート・アクションを使用します。
始める前に
次の手順は、21.1項「メッセージ・フローの表示と編集」の説明に従って、「メッセージ・フローの編集」ページで、すでにメッセージ・フローを編集していることを前提としています。
レポート・アクションを追加するには
22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、アクションを追加する場所に移動します。
該当するアイコンをクリックして、「アクションの追加」→「レポート」→「レポート」を選択します。
「式」をクリックします。XQuery式エディタ・ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。XQuery式を使用して、Oracle Service Busダッシュボートにレポートされるデータを作成します。
XQuery式を編集したら、「キーの追加」をクリックします。「キー名」フィールドと「キー値」フィールド(XPath式編集用の画面に移動するための「XPath」リンクとコンテキスト変数を入力できる「変数」フィールドを持つ)の2つのフィールドが表示されます。
キー値のペアは、メッセージ・コンテキスト変数やメッセージ・ペイロードからキー識別子を抽出して、残りのメッセージを無視する場合に使用します。キーは、メッセージを識別する便利な手段となります。キーは、「レポート」モジュールでレポート・インデックスとして表示されます。28.1項「レポート・メッセージの表示」および28.2項「メッセージの詳細の表示」を参照してください。
「キー名」フィールドにキーの名前を入力します。
「XPath」をクリックします。「XPath式の編集。」ページが表示されます。23.1項「インラインXQueryおよびXPath式の作成と編集」を参照してください。
「変数」フィールドにコンテキスト変数を入力します。
さらにキー値を追加するには、「キー」アイコンをクリックして「キーの追加」を選択します。キーを削除するには、「キー」アイコンをクリックして「このキーを削除」を選択します。
たとえば、ステージのエラー・ハンドラで構成されたレポート・アクションを考えてみます。このアクションは、エラーが発生した場合にfault
コンテキスト変数のコンテンツを報告します。レポート・アクションは次のように構成されます。
キー名 = errorCode
キー値 = ./ctx:errorCode
in variable 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 |
終了後
このアクションの構成が完了したら、22.1項「メッセージ・フローでのアクションの追加と編集」の説明に従って、引き続き他のアクションを構成するか、この構成を保存します。