この項では、Oracle JDeveloperを使用して様々なタイプのアクションをメッセージ・フローに追加する方法について説明します。
アクションとは、パイプラインを流れるメッセージの定義方法を定義するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノード、およびブランチ・ノードの要素です。Oracle JDeveloperのパイプライン・エディタを使用して、ルート、パブリッシュ、サービス・コールアウト、トランスポート・ヘッダー、条件付きアクション、エラー・アクションおよびメッセージ変換アクションなどのアクションを追加します。
この章の内容は次のとおりです。
アクションとは、パイプラインを流れるメッセージの定義方法を定義するパイプライン・ステージ、エラー・ハンドラ・ステージ、ルート・ノード、およびブランチ・ノードの要素です。
始める前に
この手順は、「JDeveloperでのパイプラインの表示と編集」の説明に従って、すでにパイプライン・エディタでパイプラインを編集していることを前提としています。
また、パイプライン・ステージ、ルート・ノードまたはエラー・ハンドラ・ステージをすでに追加していることも前提としています。参照:
パイプラインにアクションを追加するには:
パイプライン・エディタで、アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、アクションを追加する「ステージ」を右クリックします。
表示されたコンテキスト・メニューから「中に挿入」→「アクション名」を選択します。使用可能なアクション名はコンテキストによって異なります。
注意:
かわりに、「アクション」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグすることも選択できます。
エディタ・ウィンドウにコンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つにコンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。
パイプラインに構成できるアクションを表17-1から表17-4に示します。
表17-1 パイプライン - 通信アクション
アクション | 説明 | 詳細 |
---|---|---|
パブリッシュ |
静的に指定されたサービスにメッセージをパブリッシュします。 |
|
パブリッシュ表 |
ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュします。切替え式の条件ロジックを使用して、どのサービスをパブリッシュに使用するか実行時に決定します。 |
|
動的にパブリッシュ |
XQuery式によって識別されたサービスにメッセージをパブリッシュします。 |
|
ルーティング・オプション |
アウトバウンド・リクエストのURI、サービスの品質、モード、再試行パラメータ、メッセージ優先度の各プロパティの一部またはすべてを変更します。 |
|
サービス・コールアウト |
Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成します。 |
|
トランスポート・ヘッダー |
メッセージのトランスポート・ヘッダーの値を設定します。 |
|
動的ルーティング |
XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。 |
|
ルーティング |
メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。 |
|
ルーティング表 |
切替え式の条件表に含まれた一連のルートを割り当てます。これは、単一のXQuery式の結果に基づいて、異なるルートが選択されます。 |
表17-2 パイプライン - フロー制御アクション
アクション | 説明 | 詳細 |
---|---|---|
For Each |
値のシーケンスを反復処理し、アクションのブロックを実行します。 |
|
If...Then |
XQuery式のブール結果に基づいて、1つのアクションまたは一連のアクションを条件付きで実行します。 |
|
エラーの生成 |
指定されたエラー・コード(文字列)と記述を含む例外を発生させます。 |
|
返信 |
呼出し元に即時返信を送信します。 |
|
再開 |
エラー・ハンドラによってエラーが処理された後、メッセージ・フローを再開します。 |
|
スキップ |
実行時に現在のステージの実行がスキップされ、処理がメッセージ・フローの次のステージに進むように指定します。 |
表17-3 パイプライン - メッセージ処理アクション
アクション | 説明 | 詳細 |
---|---|---|
割当て |
コンテキスト変数にXQuery式の結果を割り当てます。 |
|
削除 |
XPath式で指定されたコンテキスト変数または一連のノードを削除します。 |
|
挿入 |
XPath式で選択したノードを基準として特定された場所にXQuery式の結果を挿入します。 |
|
Javaコールアウト |
パイプラインからJavaメソッドを呼び出します。 |
|
JavaScript |
JavaScript式を使用するXMLまたはJSONペイロードのコンテンツを操作します。 |
|
MFL変換 |
パイプラインで非XMLからXML、またはXMLから非XMLに変換します。 |
|
nXSD変換 |
パイプラインで、ネイティブ・データ・フォーマット(nXSD)からXMLに、またはXMLからネイティブ・データ・フォーマット(nXSD)に変換します。 |
|
名前変更 |
要素のコンテンツを変更せずに、XPath式で選択した要素の名前を変更します。 |
|
置換 |
XPath式で指定されたノードまたはノードのコンテンツを置き換えます。 |
|
検証 |
XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証します。 |
表17-4 パイプライン - レポート・アクション
アクション | 説明 | 詳細 |
---|---|---|
アラート |
パイプラインのメッセージ・コンテキストに基づいて、アラート通知を送信します。 |
|
ログ |
ログに記録するメッセージを作成します。 |
|
レポート |
パイプラインのメッセージ・レポートを有効にします。 |
次の手順を使用して、アクションのプロパティを変更します。
アクションをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、必要に応じてプロパティを変更します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
アクションを追加したら、表17-5に示すように、さらにステージまたはルート・ノードのアクションを構成できます。
表17-5 ステージ構成の編集タスク
内容 | この手順を完了するには... |
---|---|
アクションの削除 |
パイプライン・エディタでアクションを右クリックします。表示されたコンテキスト・メニューから「削除」を選択します。 |
アクションを移動する |
パイプライン・エディタで、アクション・アイコンをクリックし、マウス・ボタンを押したままそれをドラッグします。アクションをドロップできる有効な場所を示す黄色の円が表示されます。 アクションを黄色の円にドラッグすると、それが、有効なドロップであることを示す緑色に変化します。マウス・ボタンを離すと、アクション項目が緑の円上にドロップされます。 |
アクションの切取り |
パイプライン・エディタでアクションを右クリックします。表示されたコンテキスト・メニューから「切取り」を選択します。 |
アクションのコピー |
パイプライン・エディタでアクションを右クリックします。表示されたコンテキスト・メニューから「コピー」を選択します。 |
切り取りまたはコピーしたアクションを貼り付ける |
パイプライン・エディタで、アクションの貼付け先のコンポーネントを右クリックします。コンテキスト・メニューから「貼付け」を選択します。 アクションのコピーと貼付けは、ステージ全体で可能です。ただし、「割当て」アクション、「置換」アクション、または「挿入」アクションの場合は、次の点に注意してください。
|
Oracle JDeveloperツールバーで、「保存」をクリックします。
パイプライン・エディタで、「コンソールでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
Oracle JDeveloperツールバーで、「保存」をクリックします。
静的に指定された、メッセージのターゲット・サービスを指定し、メッセージのパッケージおよびサービスへの送信方法を構成するには、パブリッシュ・アクションを使用します。パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。
始める前に
この手順は、「コンソールでのパイプラインの表示と編集」の説明に従って、すでにパイプライン・エディタでパイプラインを編集していることを前提としています。
また、パイプライン・ステージ、ルート・ノードまたはエラー・ハンドラ・ステージをすでに追加していることも前提としています。参照:
パイプラインにパブリッシュ・アクションを追加するには:
次の方法の1つを使用して、パブリッシュ・アクションをパイプラインに追加します。
パイプライン・エディタで、パブリッシュ・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」を右クリックし、それにパブリッシュ・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「パブリッシュ」を選択します。
「パブリッシュ」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「パブリッシュ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「パブリッシュ」アイコンを探します。
エディタ・ウィンドウに「パブリッシュ」コンポーネントをドラッグすると、「パブリッシュ」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「パブリッシュ」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「パブリッシュ」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、パブリッシュ・アクションのプロパティを設定します。
「パブリッシュ」ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、「サービス」の横にある「検索」アイコンをクリックし、メッセージのターゲット・サービスを指定します。
サービスの操作がすでに指定されている場合、「操作」リストから選択して、呼び出す操作を指定できます。
「プロパティ」ウィンドウの左側にある「全般」タブをクリックします。
「説明」の下に、アクションの説明を任意で入力します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュするには、パブリッシュ表アクションを使用します。切替え式の条件ロジックを使用して、どのサービスをパブリッシュに使用するか実行時に決定します。パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。
パブリッシュ表アクションを追加するには:
次の方法の1つを使用して、パブリッシュ表アクションをパイプラインに追加します。
パイプライン・エディタで、パブリッシュ・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」を右クリックし、それにパブリッシュ・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「パブリッシュ表」を選択します。
「パブリッシュ表」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「パブリッシュ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「パブリッシュ表」アイコンを探します。
エディタ・ウィンドウに「パブリッシュ表」コンポーネントをドラッグすると、「パブリッシュ表」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「パブリッシュ表」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「パブリッシュ表」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、パブリッシュ表アクションのプロパティを設定します。
パイプライン・エディタで、「パブリッシュ表」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、「値」の横にある「fx」アイコンをクリックし、XQuery式を指定します。実行時にXQuery式によってルーティングの決定の基になる値が返されます。
「説明」の下に、パブリッシュ表アクションの説明を任意で入力します。
「パブリッシュ表」ノードで「Case」構文をクリックし、それを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
「プロパティ」ウィンドウで、演算子を選択し、「値」フィールドでXQuery式の値を選択します。
「Case」に対応するパブリッシュ・アクションを構成します。パブリッシュ・アクションの構成の詳細は、「JDeveloperでのパブリッシュ・アクションの追加」を参照してください。
必要に応じて、「Caseの追加」アイコンをクリックして、さらにCaseを追加します。追加したCaseごとに手順3から5を繰り返します。
「デフォルト」Caseに対応するパブリッシュ・アクションを構成します。パブリッシュ・アクションの構成の詳細は、「JDeveloperでのパブリッシュ・アクションの追加」を参照してください。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XQuery式によって指定されたサービスに対してメッセージをパブリッシュするには、動的パブリッシュ・アクションを使用します。パブリッシュの動作の詳細は「パイプラインでのトランスフォーメーションの実行」を参照してください。
動的パブリッシュ・アクションを追加するには:
次の方法の1つを使用して、動的パブリッシュ・アクションをパイプラインに追加します。
パイプライン・エディタで、動的パブリッシュ・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」を右クリックし、それに動的パブリッシュ・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「動的にパブリッシュ」を選択します。
「動的にパブリッシュ」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「動的にパブリッシュ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「パブリッシュ」アイコンを探します。
エディタ・ウィンドウに「動的にパブリッシュ」コンポーネントをドラッグすると、「動的にパブリッシュ」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「動的にパブリッシュ」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「動的にパブリッシュ」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、動的パブリッシュ・アクションのプロパティを設定します。
パイプライン・エディタで、「動的にパブリッシュ」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、「サービス」の横にある「fx」アイコンをクリックし、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
要素は省略可能です。
「プロパティ」ウィンドウの左側にある「全般」タブをクリックします。
「説明」の下に、動的パブリッシュ・アクションの説明を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
$outbound
のアウトバウンド・リクエストのURI、サービスの品質、モード、および再試行パラメータの一部またはすべてを変更するには、ルーティング・オプション・アクションを使用します。これらのプロパティは、$outbound
上の割り当て、挿入、置換、または削除アクションで変更できますが、ルーティング・オプションを使用すると、XPath、XQuery、または$outbound
コンテキスト変数の構造を理解していなくてもこのタスクを実行できます。
ルーティング・オプションのアクションはコンテキスト変数$outbound
が有効な場合にのみ使用できます。次のアクションに追加できます。
パブリッシュ
動的にパブリッシュ
パブリッシュ表
サービス・コールアウト
ルーティング
動的ルーティング
ルーティング表
ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
ルーティング・オプション・アクションを追加するには:
次の方法の1つを使用して、ルーティング・オプション・アクションをパイプラインに追加します。
パイプライン・エディタで、ルーティング・オプション・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「パブリッシュ」ノードで「リクエスト・アクション」を右クリックし、それにルーティング・オプション・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「ルーティング・オプション」を選択します。
「ルーティング・オプション」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「ルーティング・オプション」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「ルーティング・オプション」アイコンを探します。
エディタ・ウィンドウに「ルーティング・オプション」コンポーネントをドラッグすると、「ルーティング・オプション」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「ルーティング・オプション」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「ルーティング・オプション」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、ルーティング・オプション・アクションのプロパティを設定します。
パイプライン・エディタで、「ルーティング・オプション」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、次のいずれかまたはすべてを設定します。
URI: 「fx」アイコンをクリックし、XQuery式ビルダーを起動します。URIを返す式を入力します。これで呼び出されたサービスのURIがオーバーライドされます。
QoS: リストから「サービス品質」オプションを選択します。これで、自動計算されたデフォルトがオーバーライドされます。
モード: 「一方向」または「リクエスト-レスポンス」を選択します。
再試行間隔: 再試行間隔を秒数で指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。
再試行回数: アクションを中断するまで再試行を行う回数を指定します。これで呼び出されたサービスで構成されたデフォルトがオーバーライドされます。
優先度: 「fx」アイコンをクリックし、XQuery式ビルダーを起動します。正の整数を返す式を入力します。
「説明」: 動的パブリッシュ・アクションの説明を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
Service Busに登録済のプロキシ・サービスまたはビジネス・サービスの同期(ブロッキング)コールアウトを構成するには、サービス・コールアウト・アクションを使用します。
サービス・コールアウト・アクションの詳細は「サービス・コールアウト・メッセージの作成」を参照してください。
サービス・コールアウト・アクションを追加するには:
次の方法の1つを使用して、サービス・コールアウト・アクションをパイプラインに追加します。
パイプライン・エディタで、サービス・コールアウト・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにサービス・コールアウト・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「サービス・コールアウト」を選択します。
「サービス・コールアウト」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「サービス・コールアウト」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「サービス・コールアウト」アイコンを探します。
エディタ・ウィンドウに「サービス・コールアウト」コンポーネントをドラッグすると、「サービス・コールアウト」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「サービス・コールアウト」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「サービス・コールアウト」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、サービス・コールアウト・アクションのプロパティを設定します。
パイプライン・エディタで、「サービス・コールアウト」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「サービス」の横にある「検索」アイコンをクリックし、ビジネス・サービスまたはプロキシ・サービスを指定します。
前述の手順で選択したサービスがWSDLベースのサービスであり、サービスに対して呼び出せる操作がある場合、「操作」フィールドから操作を選択します。
「構成」の下で、次のオプションの1つを選択して、リクエスト・メッセージとレスポンス・メッセージの構成方法を指定します。
「本体の構成」を選択して、SOAP本体を構成します。このオプションを選択すると、$body
を直接使用できます。
「ペイロード・ドキュメントの構成」を選択して、ペイロードを構成します。
選択したサービスの種類およびそのサービスに対して選択した構成オプションの種類に応じて、表示されるリクエストおよびレスポンスの変数の値を選択します。
サービス・コールアウト・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
メッセージのヘッダーの値を設定するには、トランスポート・ヘッダー・アクションを使用します。
トランスポート・ヘッダー・アクションを追加するには:
次の方法の1つを使用して、トランスポート・ヘッダー・アクションをパイプラインに追加します。
パイプライン・エディタで、トランスポート・ヘッダー・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノード・アイコンを右クリックし、それにトランスポート・ヘッダー・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「トランスポート・ヘッダー」を選択します。
「トランスポート・ヘッダー」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「トランスポート・ヘッダー」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「通信」セクションの下で「トランスポート・ヘッダー」アイコンを探します。
エディタ・ウィンドウに「トランスポート・ヘッダー」コンポーネントをドラッグすると、「トランスポート・ヘッダー」コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「トランスポート・ヘッダー」コンポーネントをドラッグすると、その円が緑色に変化し、そこに「トランスポート・ヘッダー」コンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、「トランスポート・ヘッダー」アクションのプロパティを設定します。
パイプライン・エディタで、「トランスポート・ヘッダー」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「方向」リストについては、次のうちの1つを選択します。
アウトバウンド・リクエスト: アウトバウンド・リクエスト(ルート、パブリッシュまたはサービス・コールアウト・アクションでパイプラインによって送信されるメッセージ)のヘッダーの値を設定するには、このオプションを選択します。これらのヘッダー要素は、メッセージ・コンテキストの次の場所にあります。
$outbound/ctx:transport/ctx:request/tp:headers
「インバウンド・レスポンス」: インバウンド・レスポンス(プロキシ・サービスがクライアントに返信するレスポンス・メッセージ)のヘッダーの値を設定するには、このオプションを選択します。これらのヘッダー要素は、メッセージ・コンテキストの次の場所にあります。
$inbound/ctx:transport/ctx:response/tp:headers
必要に応じて、「ヘッダーのコピー」を選択し、インバウンド・メッセージからアウトバウンド・メッセージおよびその逆にヘッダーをコピーします。
「ヘッダー」の下で、「プロトコル」を選択し、緑色のプラス(+)記号で識別される「ヘッダーの追加」アイコンをクリックして、ヘッダーを追加します。「アクション」を選択し、ヘッダーの「名前」および必要な値があれば「値」を指定します。
「設定」アクションでは、XQuery式またはXSLT式を使用して、ヘッダーの値を設定できます。アウトバウンド・リクエストの値を設定する場合、「コピー」アクションは、インバウンド・リクエストからヘッダー値をコピーします。インバウンド・レスポンスの値を設定する場合、「コピー」アクションは、アウトバウンド・レスポンスからヘッダー値をコピーします。「削除」 アクションでは、リクエストまたはレスポンス・メタデータからヘッダーが削除されます。
前述の手順を繰り返して、さらにヘッダーを追加します。
ヘッダーを削除するには、行を選択し、赤いX記号が付いた「ヘッダーの削除」アイコンをクリックします。
トランスポート・コールアウト・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XQueryリソースで使用できるルーティング情報に基づいて、メッセージ・ルートを割り当てます。これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
ルート・ノードに動的ルーティングを追加するには:
次の方法の1つを使用して、動的ルーティング・アクションをパイプラインに追加します。
パイプライン・エディタで、動的ルーティング・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ルート」ノード・アイコンを右クリックし、それに動的ルーティング・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「動的ルーティング」を選択します。
「動的ルーティング」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「動的ルーティング」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「ルート」セクションの下で「動的ルーティング」アイコンを探します。
エディタ・ウィンドウに「動的ルーティング」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「動的ルーティング」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、「動的ルーティング」アクションのプロパティを設定します。
パイプライン・エディタで、「動的ルーティング」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「サービス」の下にある「fx」アイコンをクリックし、XQuery式を指定します。XQuery式の結果は、次に似たものになります。
<ctx:route> <ctx:service isProxy='true'>{$service}</ctx:service> <ctx:operation>{$operation}</ctx:operation> </ctx:route>
注意:
プロキシ・サービスが呼び出されている場合は、isProxy
をtrueに設定します。ビジネス・サービスが呼び出されている場合は、isProxy
をfalseに設定します。
サービス名は完全修飾サービス名です。
操作要素はオプションです。
動的ルーティング・アクションの「説明」を任意で指定します。
引き続き、アクションを「リクエスト・アクション」および「レスポンス・アクション」ブランチに追加します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
そのメッセージのターゲット・サービスを指定し、サービスへのメッセージのルーティング方法を構成します。これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
ルート・ノードにルーティング・アクションを追加するには:
次の方法の1つを使用して、ルーティング・アクションをパイプラインに追加します。
パイプライン・エディタで、ルーティング・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ルート」ノード・アイコンを右クリックし、それにルーティング・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「ルーティング」を選択します。
「ルーティング」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「ルーティング」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「ルート」セクションの下で「ルーティング」アイコンを探します。
エディタ・ウィンドウに「ルーティング」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「ルーティング」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、「ルーティング」アクションのプロパティを設定します。
パイプライン・エディタで、「ルーティング」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「サービス」フィールドの右にある「検索」アイコンをクリックし、サービスを指定します。「リソース・チューザ」ダイアログが表示されます。
リソースからサービスを選択し、「OK」をクリックします。
WSDLベースのサービスを選択した場合、そのサービスに対応する「操作」を選択します。
ルーティング・アクションの「説明」を任意で指定します。
引き続き、アクションを「リクエスト・アクション」および「レスポンス・アクション」ブランチに追加します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
ルーティング表は、切替え式の条件表にラップされた一連のルートです。これは、単一のXQuery式の結果に基づいて各種ルートを選択できる短縮形の構文です。ステージ・エディタで複数のレベルをネストできます。メッセージのターゲット・サービスを指定し、ターゲット・サービスへのメッセージのルーティング方法を構成します。
これは終端アクションなので、このアクションの後に別のアクションを追加することはできません。ただし、このアクションには、リクエストとレスポンスのアクションを含めることができます。ルーティングの詳細は、「Oracle Service Busでのメッセージ・フローの作成」を参照してください。
ルート・ノードにルーティング表を追加するには:
次の方法の1つを使用して、ルーティング表アクションをパイプラインに追加します。
パイプライン・エディタで、ルーティング表アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ルート」ノードを右クリックし、それにルーティング表アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「ルーティング表」を選択します。
「ルーティング表」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「ルーティング表」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「ルート」セクションの下で「ルーティング表」アイコンを探します。
エディタ・ウィンドウに「ルーティング表」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「ルーティング表」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、ルーティング表アクションのプロパティを設定します。
パイプライン・エディタで、「ルーティング表」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、「値」の横にある「fx」アイコンをクリックし、XQuery式を指定します。実行時にXQuery式によってルーティングの決定の基になる値が返されます。
「説明」の下に、ルーティング表アクションの説明を任意で指定します。
「ルーティング表」ノードで「Case」構成をクリックし、それを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
「プロパティ」ウィンドウで、演算子を選択し、「値」フィールドでXQuery式の値を選択します。
「Case」に対応するルーティング・アクションを構成します。ルーティング・アクションの構成の詳細は、「JDeveloperでのルート・ノードへのルーティング・アクションの追加」を参照してください。
必要に応じて、「Caseの追加」アイコンをクリックして、さらにCaseを追加します。追加したCaseごとに手順3から5を繰り返します。
「デフォルト」Caseに対応するルーティング・アクションを構成します。ルーティング・アクションの構成の詳細は、「JDeveloperでのルート・ノードへのルーティング・アクションの追加」を参照してください。
Oracle JDeveloperツールバーで、「保存」をクリックします。
一連の値を反復処理してアクションのブロックを実行するには、For Eachアクションを使用します。
For Eachアクションを追加するには:
次の方法の1つを使用して、For Eachアクションをパイプラインに追加します。
パイプライン・エディタで、ルーティング表アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにFor Eachアクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「For Each」を選択します。
「For Each」コンポーネントを「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「For Each」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「For Each」アイコンを探します。
エディタ・ウィンドウに「For Each」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「For Each」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、ルーティング表アクションのプロパティを設定します。
パイプライン・エディタで、「For Each」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「For Each値」の値を入力します。「fx」をクリックしてXPath式を指定します。
「値変数」、「索引変数」および「カウント変数」に値を入力します。
「説明」の下に、For Eachアクションの説明を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XQuery式のブール結果に基づき、1つまたは複数のアクションを条件付きで実行するには、If Thenアクションを使用します。
If Thenアクションを追加するには:
次の方法の1つを使用して、If Thenアクションをパイプラインに追加します。
パイプライン・エディタで、If Thenアクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにIf Thenアクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「If Then」を選択します。
「If Then」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「If Then」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「If Then」アイコンを探します。
エディタ・ウィンドウに「If Then」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「If Then」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、If Thenアクションのプロパティを設定します。
パイプライン・エディタで、「If Then」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
If Thenアクションの「説明」を任意で指定します。
「If Then」ノードのIf: <condition>ブランチをクリックして選択します。
「プロパティ」ウィンドウで、「fx」をクリックし、If条件の式を指定します。
「コンポーネント」ウィンドウからブランチに、trueを返す条件に対応するアクションをドラッグします。
必要に応じて、「If Then」ノードの「条件の追加」アイコンをクリックすることでIf条件を追加します。
追加した条件ごとに手順3から5を繰り返します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
指定したエラー・コード(文字列)と説明を使用して例外を発生させるには、エラーを発生させるアクションを使用します。
エラーの発生アクションを追加するには:
次の方法の1つを使用して、エラーの生成アクションをパイプラインに追加します。
パイプライン・エディタで、エラーの生成アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにエラーの生成アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「エラーの生成」を選択します。
「エラーの生成」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「エラーの生成」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「エラーの生成」アイコンを探します。
エディタ・ウィンドウに「エラーの生成」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「エラーの生成」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、エラーの生成アクションのプロパティを設定します。
パイプライン・エディタで、「エラーの生成」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「プロパティ」ウィンドウで、生成するエラーの「コード」を入力します。
「メッセージ」フィールドにエラー・コードの説明を入力します。
エラーの生成アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
呼出し元に即時に返信されるように指定するには、返信アクションを使用します。返信アクションは、リクエスト・パイプライン、レスポンス・パイプライン、またはエラー・パイプラインで使用できます。成功時または失敗時に返信するように構成できます。HTTPインバウンド・トランスポートでの失敗時の返信の場合、返信アクションでは、呼出し元に即時に返信されるように指定します。
返信アクションを追加するには:
次の方法の1つを使用して、返信アクションをパイプラインに追加します。
パイプライン・エディタで、返信アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに返信アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「返信」を選択します。
「返信」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「返信」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「返信」アイコンを探します。
エディタ・ウィンドウに「返信」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「返信」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、返信アクションのプロパティを設定します。
パイプライン・エディタで、「返信」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
メッセージが成功したことを返信するには、「オプション」の下で「成功時」を選択します。また、メッセージが失敗したことを返信するには、「失敗時」を選択します。
返信アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
エラー・ハンドラによってエラーが処理された後で、メッセージ・フローを再開するには、再開アクションを使用します。このアクションにパラメータはありません。このアクションはエラー・パイプラインでのみ使用できます。
再開アクションを追加するには:
次の方法の1つを使用して、再開アクションをパイプラインに追加します。
パイプライン・エディタで、再開アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、エラー・ハンドラで「ステージ」ノードを右クリックし、それに再開アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「再開」を選択します。
「再開」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「再開」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「再開」アイコンを探します。
エディタ・ウィンドウに「再開」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「再開」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、返信アクションのプロパティを設定します。
パイプライン・エディタで、「再開」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
再開アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
実行時にこのステージの実行がスキップされて、処理がメッセージ・フローの次のステージに進むように指定するには、スキップ・アクションを使用します。このアクションにはパラメータがなく、リクエスト・パイプライン、レスポンス・パイプライン、エラー・パイプラインで使用できます。
スキップ・アクションを追加するには:
次の方法の1つを使用して、スキップ・アクションをパイプラインに追加します。
パイプライン・エディタで、スキップ・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにスキップ・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「スキップ」を選択します。
「スキップ」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「スキップ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「フロー制御」セクションの下で「スキップ」アイコンを探します。
エディタ・ウィンドウに「スキップ」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「スキップ」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、スキップ・アクションのプロパティを設定します。
パイプライン・エディタで、「スキップ」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
スキップ・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XQuery式の結果をコンテキスト変数に割り当てるには、割当てアクションを使用します。
割当てアクションを追加するには:
次の方法の1つを使用して、割当てアクションをパイプラインに追加します。
パイプライン・エディタで、割当てアクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに割当てアクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「割当て」を選択します。
「割当て」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「割当て」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「割当て」アイコンを探します。
エディタ・ウィンドウに「割当て」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「割当て」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、割当てアクションのプロパティを設定します。
パイプライン・エディタで、「割当て」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「値」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式は、指定の変数に割り当てる値を指定します。
「変数」フィールドにコンテキスト変数を入力します。
割当てアクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
削除アクションは、コンテキスト変数またはXPath式で指定したすべてのノードを削除するときに使用します。削除アクションは一連の更新アクションの1つです。
削除アクションを追加するには:
次の方法の1つを使用して、削除アクションをパイプラインに追加します。
パイプライン・エディタで、削除アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに削除アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「削除」を選択します。
「削除」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「削除」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「削除」アイコンを探します。
エディタ・ウィンドウに「削除」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「削除」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、削除アクションのプロパティを設定します。
パイプライン・エディタで、「削除」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「場所」の下で、コンテキスト変数を指定します。
「fx」アイコンをクリックしてXPath式を指定します。XPath式によって選択されるノードがすべて削除されます。
「全般」セクションの下で、削除アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XPath式で選択したノードを基準に、指定した位置にXQuery式を挿入するには、挿入アクションを使用します。挿入アクションは更新アクションの1つです。
挿入アクションを追加するには:
次の方法の1つを使用して、挿入アクションをパイプラインに追加します。
パイプライン・エディタで、挿入アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに挿入アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「挿入」を選択します。
「挿入」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「挿入」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「挿入」アイコンを探します。
エディタ・ウィンドウに「挿入」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「挿入」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、挿入アクションのプロパティを設定します。
パイプライン・エディタで、「挿入」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「値」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式を使用して、指定の変数で指定した場所に挿入されるデータを作成します。
「位置」の下で、リストから関連場所を選択します。相対的な位置は、XPath式の結果を基準として挿入位置を決める場合に使用します。次の中から選択します。
の前に: XPath式で選択される各要素や属性の兄とします。
の後ろに: XPath式で選択される各要素や属性の弟とします。
の最初の子として: XPath式で指定される各要素の第1の子とします。XPathの結果が属性を返す場合はエラーが発生します。
の最後の子として: XPath式で指定される各要素の最後の子とします。XPathが属性を返す場合はエラーが発生します。
「場所」の下で、コンテキスト変数を指定します。XPathは、この変数の内容を評価します。
「fx」アイコンをクリックしてXPath式を指定します。有効な構成には、次の構成が含まれます。
- XQuery式とXPath式の両方が要素を返します。
- XQuery式とXPath式の両方が属性を返します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
パイプラインからJavaメソッドまたはEJBビジネス・サービスを呼び出すには、Javaコールアウト・アクションを使用します。
Javaコールアウト・アクションを追加するには:
次の方法の1つを使用して、Javaコールアウト・アクションをパイプラインに追加します。
パイプライン・エディタで、Javaコールアウト・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにJavaコールアウト・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「Javaコールアウト」を選択します。
「Javaコールアウト」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「Javaコールアウト」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「Javaコールアウト」アイコンを探します。
エディタ・ウィンドウに「Javaコールアウト」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「Javaコールアウト」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、Javaコールアウト・アクションのプロパティを設定します。
パイプライン・エディタで、「Javaコールアウト」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「メソッド」フィールドの右にある「検索」アイコンをクリックし、Javaアーカイブ(JAR)を指定します。選択したJARファイルに対応するJavaクラスおよびメソッドを選択します。メソッドは静的メソッドである必要があります。
「引数」セクションには、メソッドの引数が移入されます。XQuery式は、各引数に対して指定する必要があります。
引数の「値」列の下にある「fx」アイコンをクリックし、それのXQuery式を指定します。
入力値の型が宣言されている入力引数の型と一致しない場合、Service Busは入力値を入力引数の宣言された型に自動的に型キャストします。たとえば、入力引数の宣言された型がJavaプリミティブ「int
」の場合、文字列値"123"
は整数123
に変換されます。
選択したメソッドの引数ごとに前述の手順を繰り返します。
「戻り」セクションの下で、結果を割り当てる「変数」を指定します。
必要に応じて、「参照として」を選択し、参照として結果を返します。このオプションにより、jcid
がパイプライン・オブジェクト・リポジトリのオブジェクトへのキーである実際のタイプに関係なく、Javaコールアウトの呼出しの戻り値が
<java-content ref="jcid
">参照要素になります。
選択したJavaメソッドのセキュリティ・コンテキストがある場合、必要に応じて、「サービス・アカウント」の右にある「検索」アイコンをクリックし、サービス・アカウントを指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
JavaScriptアクションを使用して、JavaScript式を使用するXMLまたはJSONペイロードのコンテンツを操作します。
MFL (Message Format Language)変換アクションを使用して、メッセージ・パイプライン内でメッセージ・コンテンツをXMLとXML以外の形式との間で変換します。MFLは、バイナリ・データのレイアウトを記述するために使用する特別なXMLドキュメントです。Oracle独自の言語を使用して、フォーマットされたバイナリ・データをXMLデータに、またはXMLデータをバイナリ・データに変換するルールを定義します。「Message Format Languageを使用したデータ構造の定義」を参照してください。
MFL変換アクションを追加するには:
次の方法の1つを使用して、MFL変換アクションをパイプラインに追加します。
パイプライン・エディタで、MFL変換アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにMFL変換アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「MFL変換」を選択します。
「MFL変換」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「MFL変換」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「MFL変換」アイコンを探します。
エディタ・ウィンドウに「MFL変換」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「MFL変換」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、MFL変換アクションのプロパティを設定します。
パイプライン・エディタで、「MFL変換」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「変換」の下で、XMLからネイティブに変換するのか、その逆に変換するのかを選択します。
「入力」フィールドの右にある「fx」アイコンをクリックし、XQuery式を使用して入力変数を指定します。
この入力は、XMLへの変換の場合はテキストまたはバイナリ、XML以外への変換の場合はXMLである必要があります。メッセージ・コンテキストのバイナリ・コンテンツは、バイナリ・コンテンツXML要素によって表されます。入力がバイナリでなければならない場合、このXMLはXQuery式の結果となります。
「MFL」の下で「静的」を選択し、静的MFLリソースを指定します。または、「動的」を選択して、動的MFLリソースを選択します。
前述の手順で「静的」を選択した場合は、「検索」アイコンをクリックし、MFL変換を実行するMFLリソースを選択します。
前述の手順で「動的」を選択した場合は、「fx」アイコンをクリックし、変換を実行するMFLリソースを動的に選択するXQuery式を指定します。
変換の結果を割り当てる「出力」変数を指定します。
MFL変換アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
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変換アクションを追加するには:
次の方法の1つを使用して、nXSD変換アクションをパイプラインに追加します。
パイプライン・エディタで、nXSD変換アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにnXSD変換アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「nXSD変換」を選択します。
「nXSD変換」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「nXSD変換」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「nXSD変換」アイコンを探します。
エディタ・ウィンドウに「nXSD変換」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「nXSD変換」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、nXSD変換アクションのプロパティを設定します。
パイプライン・エディタで、「nXSD変換」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「変換」の下で、XMLからネイティブに変換するのか、その逆に変換するのかを選択します。
「入力」フィールドの右にある「fx」アイコンをクリックし、XQuery式を使用して入力変数を指定します。
この入力は、XMLへの変換の場合はネイティブ・フォーマット、ネイティブ・データ・フォーマットへの変換の場合はXMLである必要があります。
「nXSDスキーマ」の下で、「静的」を選択し、静的XMLスキーマ(.xsd
)を指定します。または、「動的」を選択し、動的にスキーマを指定します。
前述の手順で「静的」を選択した場合は、「検索」アイコンをクリックし、ネイティブ・スキーマに対応するスキーマ(.xsd
)ファイルを選択します。
前述の手順で「動的」を選択した場合は、「fx」アイコンをクリックし、ネイティブ・スキーマを動的に選択するXQuery式を指定します。
変換の結果を割り当てる「出力」変数を指定します。または、出力として「$bodyの内容」を選択することもできます。
(オプション) ネイティブ形式(JSONなど)からXMLに変換する場合は、「スキーマ順序の適用」オプションを選択します。選択すると、XMLスキーマの要素の順序付けと一致するようにJSONペイロードを並べ替えます。
nXSD変換アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XPath式で選択された要素のコンテンツを変更せずに要素名を変更するには、名前変更アクションを使用します。名前変更アクションは更新アクションの1つです。
名前変更アクションを追加するには:
次の方法の1つを使用して、名前変更アクションをパイプラインに追加します。
パイプライン・エディタで、名前変更アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに名前変更アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「名前変更」を選択します。
「名前変更」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「名前変更」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「名前変更」アイコンを探します。
エディタ・ウィンドウに「名前変更」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「名前変更」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、名前変更アクションのプロパティを設定します。
パイプライン・エディタで、「名前変更」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「場所」の下で、名前を変更する要素を保持するコンテキスト変数を指定します。
「fx」アイコンをクリックし、指定の変数内の名前を変更するデータの指定に使用するXPath式を指定します。
名前を変更される要素の「ローカル名」および「ネームスペース」を入力します。これらの属性のうち少なくとも1つが必要です。
「全般」セクションの下で、名前変更アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XPath式で指定されたノードまたはノードのコンテンツを置き換えるには、置換アクションを使用します。ノードまたはそのコンテンツは、XQuery式が返した値で置換されます。置換アクションでは、単純な値、要素、属性を置き換えることができます。XQuery式から何も返されない状態は、アクションがノード全体を置き換えるか、ノードコンテンツのみを置き換えるかにより、識別されたノードを削除すること、または空のノードを作成することと同じです。置換アクションは更新アクションのセットの内の1つです。
置換アクションを追加するには:
次の方法の1つを使用して、置換アクションをパイプラインに追加します。
パイプライン・エディタで、置換アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに置換アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「置換」を選択します。
「置換」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「置換」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「置換」アイコンを探します。
エディタ・ウィンドウに「置換」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「置換」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、置換アクションのプロパティを設定します。
パイプライン・エディタで、「置換」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「場所」の下で、置換する要素を保持するコンテキスト変数を指定します。
「fx」アイコンをクリックし、指定の変数内の置換するデータの指定に使用するXPath式を指定します。
「値」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式は、名前付き変数内でXPathによって指定されたデータを置換するデータの作成に使用されます。
「置換」の下で、次のオプションの1つを選択します。
ノード全体を置換: XPath式によって選択されたノードとそのすべてのコンテンツが置換されます。
ノードのコンテンツを置換: ノードは置換されず、ノード・コンテンツのみが置換されます。
注意:
「ノード全体を置換」オプションを選択してXPathを./*
に設定するよりも、「ノードのコンテンツを置換」オプションを選択して「XPath」を空白にする方が効率的です。
「全般」セクションの下で、名前変更アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
XMLスキーマ要素またはWSDLリソースに対して、XPath式で選択した要素を検証するには、検証アクションを使用します。検証できるのは、グローバル要素のみです。Service Busはローカル要素に対する検証に対応していません。実行時にXQuery式の結果に基づいて、XMLスキーマ要素またはWSDLリソースを動的に選択することも選択できます。
検証アクションを追加するには:
次の方法の1つを使用して、検証アクションをパイプラインに追加します。
パイプライン・エディタで、検証アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それに検証アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「検証」を選択します。
「検証」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「検証」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「メッセージ処理」セクションの下で「検証」アイコンを探します。
エディタ・ウィンドウに「検証」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「検証」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、検証アクションのプロパティを設定します。
パイプライン・エディタで、「検証」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「場所」の下で、検証する要素を保持するコンテキスト変数を指定します。
「fx」アイコンをクリックし、指定の変数内の検証するデータの指定に使用するXPath式を指定します。
「スキーマ」の下で、「静的」をクリックし、検証するスキーマまたはWSDLファイルを選択します。または、「動的」を選択し、スキーマまたはWSDLファイルを実行時に動的に指定します。
前述の手順で「静的」を選択した場合は、「検索」アイコンをクリックし、XMLスキーマ(.xsd
)またはWSDLファイルに含まれている要素を指定します。
前述の手順で「動的」を選択した場合は、「fx」アイコンをクリックし、XQuery式を指定します。XQuery式によってWSDLまたはスキーマ・リソースが動的に指定されます。
次のものは、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>default/MySchema</schema> <schemaElement> <localname>MyElementType</localname> </schemaElement> </validate>
「アクション」の下で、「変数の保存」を選択し、検証結果を保持する変数を指定します。また、WSDLやXMLスキーマ要素に照らした要素の検証が失敗したときにエラーを発生させる場合は、「エラーの生成」を選択します。
「全般」セクションの下で、検証アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
アラート宛先にアラートを送信するには、アラート・アクションを使用して、パイプラインのメッセージ・コンテキストに基づいてアラートを生成します。SLAアラートと異なり、アラート・アクションで生成された通知は、主にビジネスでの使用、またはエラーの報告を目的とし、システムの状態を監視するものではありません。このことを考慮して、アラートの宛先を構成および選択する必要があります。アラートの宛先の詳細は、「アラート宛先の操作」を参照してください。
サービスに対してパイプライン・アラートが有効になっていない場合や、ドメイン・レベルでパイプライン・アラートが有効になっていない場合は、メッセージの処理中に、構成したアラート・アクションがバイパスされます。
アラート・アクションを追加するには:
次の方法の1つを使用して、アラート・アクションをパイプラインに追加します。
パイプライン・エディタで、アラート・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにアラート・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「アラート」を選択します。
「アラート」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「アラート」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「レポート」セクションの下で「アラート」アイコンを探します。
エディタ・ウィンドウに「アラート」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「アラート」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、アラート・アクションのプロパティを設定します。
パイプライン・エディタで、「アラート」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「コンテンツ」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式は、アラート・メッセージに追加されるメッセージ・コンテキストの指定に使用されます。
「サマリー」フィールドにアラートの短い説明を入力します。
説明文は、電子メール通知の場合の件名になり、80文字以内である必要があります。説明文が存在しない場合、「Oracle Service Busアラート」というあらかじめ定義された件名がかわりに使用されます。
アラートの「重大度」レベルを選択します。
「宛先」フィールドの右にある「検索」アイコンをクリックし、アラート宛先を選択します。
デフォルトでは、アラートは管理コンソールに出力されます。
「全般」セクションの下で、アラート・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
ログに記録するメッセージを作成し、ログに使用する一連の属性を定義するには、ログ・アクションを使用します。
始める前に
ログ・ファイルまたは標準出力(サーバー・コンソール)にログ・データを表示するには、WebLogic Serverのロギングを次の重大度に設定する必要があります。
ログの最低の重大度: 情報
ログ・ファイル: 情報
標準出力: 情報
ログの重大度の設定の詳細は、『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタリング』のログの重大度の使用に関する項を参照してください。
ログ・アクションを追加するには:
必ずロギングをグローバルに有効にしてください。詳細は、『Oracle Service Busの管理』のグローバル・レベルの操作設定の構成に関する項を参照してください。
次の方法の1つを使用して、ログ・アクションをパイプラインに追加します。
パイプライン・エディタで、ログ・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにログ・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「ログ」を選択します。
「ログ」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「ログ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「レポート」セクションの下で「ログ」アイコンを探します。
エディタ・ウィンドウに「ログ」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「ログ」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、ログ・アクションのプロパティを設定します。
パイプライン・エディタで、「ログ」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「コンテンツ」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式は、ログに記録されるメッセージ・コンテキストの指定に使用されます。
「サマリー」フィールドにアラートの短い説明を入力します。この説明は、事前に定義された式の結果と一緒にログに記録されます。
ログの「重大度」レベルを選択します。表17-6 は使用可能なオプションを示します。
表17-6 ログ・アクションの重大度
重大度レベル | 一般的使用方法 |
---|---|
情報 |
通常の処理を報告するために使用する、低レベルの情報メッセージ。 |
警告 |
不審なオペレーションまたは構成が発生しましたが、通常のオペレーションには影響しません。 |
エラー |
ユーザー・エラーが発生したことを示します。システムまたはアプリケーションでは、割込みやサービスの限定的な低下を起こすことなくエラーに対処できます。 |
デバッグ |
アプリケーションの開発中、そのアプリケーションの低レベル・アクティビティを示すメッセージを作成および使用できると便利です。 |
「全般」セクションの下で、ログ・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
パイプラインのメッセージ・レポートを有効にするには、レポート・アクションを使用します。
レポート・アクションを追加するには:
次の方法の1つを使用して、レポート・アクションをパイプラインに追加します。
パイプライン・エディタで、レポート・アクションの追加先のコンポーネント・アイコンを右クリックします。たとえば、「ステージ」ノードを右クリックし、それにレポート・アクションを追加します。
表示されたコンテキスト・メニューから「中に挿入」→「レポート」を選択します。
「レポート」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「レポート」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「レポート」セクションの下で「レポート」アイコンを探します。
エディタ・ウィンドウに「レポート」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「レポート」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
次の手順を使用して、レポート・アクションのプロパティを設定します。
パイプライン・エディタで、「レポート」ノードをクリックしてそれを選択します。「プロパティ」ウィンドウに、選択したノードのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
「コンテンツ」フィールドの右にある「fx」 アイコンをクリックし、XQuery式を指定します。XQuery式は、Service Busダッシュボードに報告するデータの作成に使用されます。
「検索キー」の下で、緑色のプラス(+)記号で識別される「キーの追加」アイコンをクリックして、検索キーを追加します。「鍵」フィールドは、キー名の指定に使用されます。「変数」フィールドと「XPath」フィールドを合せて、キー値が指定されます。「変数」フィールドによってコンテキスト変数が指定され、「XPath」フィールドによってXPath式が指定されます。
キー値のペアは、メッセージ・コンテキスト変数やメッセージ・ペイロードからキー識別子を抽出して、残りのメッセージを無視する場合に使用します。キーは、メッセージを識別する便利な手段となります。キーは、「レポート」モジュールでレポート・インデックスとして表示されます。『Oracle Service Busの管理』のメッセージ・レポートの操作に関する項を参照してください。
たとえば、ステージのエラー・ハンドラで構成されたレポート・アクションを考えてみます。このアクションは、エラーが発生した場合に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 |
前述の手順を繰り返すことで、キーをさらに追加できます。キーを削除するには、赤いX記号が付いた「キーの削除」アイコンをクリックします。
「全般」セクションの下で、レポート・アクションの「説明」を任意で指定します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
JDeveloperでのエラー・ハンドラの実装は、Oracle Service Busコンソールを使用した場合とよく似ています。主な相違点は、パイプライン・デザイナのドラッグ・アンド・ドロップ機能と、各パイプライン・アクションで表示されるプロパティ・ウィンドウです。
エラー・ハンドラを使用して、パイプライン内の特定の場所でエラーが発生した場合の処理を指定します。エラー処理は、パイプライン、パイプライン・ペア、ルート・ノードおよびステージ・レベルで構成できます。
始める前に
目的のパイプラインのメッセージ・フローを表示します。
パイプラインにエラー・ハンドラを追加するには:
次の方法の1つを使用して、エラー・ハンドラをパイプラインに追加します。
パイプライン・エディタで、エラー・ハンドラの追加先のコンポーネント・アイコンを右クリックします。次のようなエラー・ハンドラを追加できます。
パイプライン・レベルでエラー・ハンドラを追加するには、開始ノードを右クリックします。コンテキスト・メニューから「エラー・ハンドラの追加」を選択します。
リクエストまたはレスポンス・パイプラインのエラー・ハンドラを追加するには、「リクエスト・パイプライン」または「レスポンス・パイプライン」を右クリックします。コンテキスト・メニューから「エラー・ハンドラの追加」を選択します。
ステージ・ノードのエラー・ハンドラを追加するには、「ステージ」ノードを右クリックします。コンテキスト・メニューから「エラー・ハンドラの追加」を選択します。
ルート・ノードのエラー・ハンドラを追加するには、「ルート」ノードを右クリックします。コンテキスト・メニューから「エラー・ハンドラの追加」を選択します。
「エラー・ハンドラ」コンポーネントを、「コンポーネント」ウィンドウからパイプライン・エディタの適切な場所にドラッグします。「エラー・ハンドラ」コンポーネントを見つけるには、「コンポーネント」ウィンドウで「メッセージ・フロー」カテゴリを選択します。次に、「ノード」セクションの下で「エラー・ハンドラ」アイコンを探します。
エディタ・ウィンドウに「エラー・ハンドラ」コンポーネントをドラッグすると、コンポーネントをドロップできる有効な場所を示す黄色の円が表示されます。黄色の円の1つに「エラー・ハンドラ」コンポーネントをドラッグすると、その円が緑色に変化し、そこにコンポーネントをドロップできることを示します。マウス・ボタンを離すと、コンポーネントがドロップされます。
エラー・ハンドラのデフォルト名を変更して説明を追加するには、次のように実行します。
エラー・ハンドラ・ステージ・ノードをクリックし、それを選択します。「プロパティ」ウィンドウに、選択したコンポーネントのプロパティが表示されます。
注意:
「プロパティ」ウィンドウが表示されない場合は、「ウィンドウ」メイン・メニューから「プロパティ」を選択します。
選択したステージ・ノードの「名前」および「説明」フィールドを編集します。
Oracle JDeveloperツールバーで、「保存」をクリックします。
エラー・ハンドラ・ステージでアクションを追加するには、「JDeveloperでのパイプラインのアクションの追加および編集」を参照してください。
エラー・ハンドラにさらにステージを追加するには、「JDeveloperでのエラー・ハンドラの追加」を参照してください。
パイプライン・エディタで、「JDeveloperでのパイプラインの表示と編集」の説明に従って、パイプラインの作成を続けます。
Oracle JDeveloperツールバーで、「保存」をクリックします。
パイプライン内のアクションまたはステージを無効化することもできます。無効化されたアクションまたはステージは、メッセージ・フローの実行でスキップされます。無効化されたステージまたはアクションは設計時に検証されません。
注意:
無効化されたステージにエラー・ハンドラがある場合、そのエラー・ハンドラも無効化されます。
アクションまたはステージを無効化した場合、ネストされたアクション(存在する場合)はすべて暗黙的に無効化されます。これは、ネストされたアクションもメッセージ・フローの実行でスキップされることを意味します。ネストされたアクションを設計時検証で無効にする場合は、それらのアクションを個別に無効にする必要があります。
無効化されたアクションまたはステージの構成は編集できます。リファクタは、無効化されたアクションおよびステージに対しても実行されます。したがって、無効化されたアクションまたはステージ内のサービスに対するコールがあり、そのサービスの名前が変更されている場合、サービス・コールアウトは自動的に更新されます。
アクションまたはステージを無効化するには:
無効化されたステージまたはアクションはいつでも再有効化でき、それによってそのアクションまたはステージはメッセージ・フローでスキップされなくなります。