PATH 文節

PATH 文節は、一致する関数およびプロシージャーのインプリメンテーションに対する呼び出しの際に検索される、追加のスキーマのリストを指定します。呼び出しがあるスキーマは、暗黙的に PATH 文節に組み込まれます。

PATH 文節は、次のアルゴリズムに従って、ツール内の非修飾の関数とプロシージャー名を解決するために使用されます。

非修飾名に一致する関数またはプロシージャーが 1 つなければならず、そうでない場合にはツールはエラーを報告します。 関数またはプロシージャーの名前を schemaId で修飾することによって、エラーを訂正できます。
  1. 現行のモジュール (もしあれば) から、一致する関数またはプロシージャーが検索されます。モジュール内では、そこに含まれるモジュール有効範囲関数またはプロシージャーだけが可視です。 同じ名前を持つ関数またはプロシージャーが現行のモジュールおよびスキーマ内に検出された場合、モジュール有効範囲の関数またはプロシージャーは、スキーマ有効範囲の関数またはプロシージャーよりも優先されます。
  2. <ノード・スキーマ> (それに含まれる MODULE を除く) および <SQL ブローカー・スキーマ> または PATH 文節によって識別されるスキーマから、一致する関数またはプロシージャーが検索されます。
注: schemaId は完全修飾スキーマ名でなければなりません。

関数またはプロシージャーを開始するときに使用する名前は、スキーマ名で修飾したものでなければなりません。 動作は、以下のように状況によって異なります。

モジュール・ルーチンの場合
  • スキーマが指定された場合、指定されたスキーマ・ルーチンが開始されます。 スカラー組み込み関数 (CAST、EXTRACT、および特殊レジスターを除く) は、SQL と呼ばれる暗黙的に宣言されたスキーマ内で定義されていると見なされます。
  • スキーマが指定されず、呼び出しステートメントがモジュール・ルーチン内にあり、指定された名前のルーチンがローカル・モジュール内に存在する場合、そのローカル・ルーチンが開始されます。
  • スキーマが指定されず、呼び出しステートメントがモジュール・ルーチン内にあり、指定された名前のルーチンがローカル・モジュール内に存在しない場合、スキーマ・パス内のすべてのスキーマで、同じ名前のルーチンが検索されます。

    一致する関数が 1 つのスキーマ内に存在する場合、その関数が使用されます。一致する関数が複数のスキーマ内に存在する場合、コンパイル時エラーが発生します。 一致する関数がない場合には、スキーマ SQL が検索されます。

    この規則とその前の規則は、ローカル・モジュール・ルーチンが同じ名前の組み込みルーチンよりも優先されることを暗示しています。

スキーマ・ルーチンの場合
  • スキーマが指定された場合、指定されたスキーマ・ルーチンが開始されます。 スカラー組み込み関数 (CAST、EXTRACT、および特殊レジスターを除く) は、SQL と呼ばれる暗黙的に宣言されたスキーマ内で定義されていると見なされます。
  • スキーマが指定されず、呼び出し側がスキーマ・ルーチンであり、指定された名前のルーチンがローカル・スキーマ内に存在する場合、そのローカル・ルーチンが開始されます。
  • スキーマが指定されず、呼び出しステートメントがスキーマ・ルーチン内にあり、指定された名前のルーチンがローカル・スキーマ内に存在しない場合、スキーマ・パス内のすべてのスキーマで、同じ名前のルーチンが検索されます。

    一致する関数が 1 つのスキーマ内に存在する場合、その関数が使用されます。一致する関数が複数のスキーマ内に存在する場合、コンパイル時エラーが発生します。 一致する関数がない場合には、スキーマ SQL が検索されます。

    この規則とその前の規則は、ローカル・スキーマ・ルーチンが同じ名前の組み込みルーチンよりも優先されることを暗示しています。

<ノード・スキーマ> は、ノードのメッセージ・フローを含むスキーマとして定義されます。

<ノード・スキーマ> をこのように指定して、以前の WebSphere® Message Broker バージョンとの互換性を提供します。

参照されるスキーマが <ノード・スキーマ> だけである場合、ブローカー XML メッセージは WebSphere Message Broker V6.0 に含まれている追加の機能を組み込みません。

WebSphere Message Broker の以前のバージョンのブローカーでは、複数のスキーマ (例えば、再利用のためのサブルーチン・ライブラリー) がサポートされていません。製品の旧バージョンのブローカーにデプロイするには、すべての ESQL サブルーチンを、それらを開始するメッセージ・フローおよびノードと同じスキーマ内に配置してください。

Eclipse ツールは、コンテンツ・アシストおよびソース・コード妥当性検査で WebSphere Message Broker V6.0 ESQL 構文を使用します。ブローカー ESQL コードを生成するとき、Eclipse ツールは、以前のバージョンとの互換性のために V2.1 スタイル・コードを生成することができます。

メッセージ・フローのブローカー・スキーマは、スキーマ・レベルで、ESQL ファイルに以下のいずれかを含んでいる必要があります。
  • スキーマ・レベル関数
  • スキーマ・レベル・プロシージャー
  • スキーマ・レベル定数
  • モジュール・レベル定数
  • モジュール・レベル変数

上記の項目がなくても、Eclipse ツールは、モジュールおよび関数 Main ラッパーを持たないブローカー ESQL を生成します。このスタイルは、V2.1 および V5.0 の両方のブローカーで受け入れられます。ただし、V2.1 ブローカーを使用する場合、コード内で V5.0 または V6.0 構文 (例えば、ネーム・スペース) を使用することはできません。

関数およびプロシージャー名は、スキーマまたはモジュール内で固有でなければなりません。

以下の例では、CommonUtils というスキーマへのパスを追加します。
BROKER SCHEMA CommonUtils
PATH SpecialUtils;

MODULE ....
次の例では、デフォルト・スキーマへのパスを追加します。
PATH CommonUtils, SpecialUtils;

MODULE ....
関連概念
ESQL の概要
関連タスク
ESQL の開発
関連資料
構文図: 使用可能なタイプ
ESQL のステートメント
BROKER SCHEMA ステートメント
CREATE MODULE ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:02

ak05105_