PATH 文節

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

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

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

<ノード・スキーマ> は、ノードのメッセージ・フローを含むスキーマです。このスキーマの名前は、ブローカー XML メッセージのメッセージ処理ノード uuid の最後のセグメントによって与えられます。

ルーチンを呼び出すとき、使用する名前をスキーマ名によって修飾できます。動作は、以下のように状況によって異なります。
  • スキーマが指定された場合、指定されたスキーマ・ルーチンが呼び出されます。スカラー組み込み関数 (CAST、EXTRACT、および特殊レジスターを除く) は、SQL と呼ばれる暗黙的に宣言されたスキーマ内で定義されていると見なされます。スカラー組み込み関数は、この方法 (例えば SQL.SUBSTRING(...)) で呼び出すことができます。

    次に生じる事柄は、呼び出し元がモジュール・ルーチンにあるのか、スキーマ・ルーチンにあるのかに依存します。

    モジュール・ルーチンの場合
    • スキーマが指定されず、呼び出しステートメントがモジュール・ルーチン内にあり、指定された名前のルーチンがローカル・モジュール内に存在する場合、そのローカル・ルーチンが呼び出されます。
    • スキーマが指定されず、呼び出しステートメントがモジュール・ルーチン内にあり、指定された名前のルーチンがローカル・モジュール内に存在しない場合、スキーマ・パス内のすべてのスキーマで、同じ名前のルーチンが検索されます。
      一致する関数が 1 つのスキーマ内に存在する場合、その関数が使用されます。一致する関数が複数のスキーマ内に存在する場合、コンパイル時エラーが発生します。一致する関数がない場合には、スキーマ SQL が検索されます。
      注: この規則とその前の規則は、ローカル・モジュール・ルーチンが同じ名前の組み込みルーチンよりも優先されることを暗示しています。
    スキーマ・ルーチンの場合
    • スキーマが指定されず、呼び出し側がスキーマ・ルーチンであり、指定された名前のルーチンがローカル・スキーマ内に存在する場合、そのローカル・ルーチンが呼び出されます。
    • スキーマが指定されず、呼び出しステートメントがスキーマ・ルーチン内にあり、指定された名前のルーチンがローカル・スキーマ内に存在しない場合、スキーマ・パス内のすべてのスキーマで、同じ名前のルーチンが検索されます。
      一致する関数が 1 つのスキーマ内に存在する場合、その関数が使用されます。一致する関数が複数のスキーマ内に存在する場合、コンパイル時エラーが発生します。一致する関数がない場合には、スキーマ SQL が検索されます。
      注: この規則とその前の規則は、ローカル・スキーマ・ルーチンが同じ名前の組み込みルーチンよりも優先されることを暗示しています。

<ノード・スキーマ> は、ノードのメッセージ・フローを含むスキーマとして定義されます。このスキーマの名前は、ブローカー XML メッセージのメッセージ処理ノード uuid の最後のセグメントによって与えられます。

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

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

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

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

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

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

関数およびプロシージャー名は、SCHEMA または MODULE 内で固有でなければなりません。

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

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

MODULE ....
関連概念
ESQL の概要
関連タスク
ESQL の開発
関連資料
構文図: 使用可能なタイプ
ESQL のステートメント
BROKER SCHEMA ステートメント
CREATE MODULE ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak05105_