ブローカー・スキーマは、その中で定義されたリソース 名の固有性の有効範囲を定義するシンボル・スペースです。リソースとは、メッセージ・フロー、ESQL ファイル、およびマッピング・ファイルです。
ブローカー・スキーマは、プロジェクト・ソース・ディレクトリーからフロー名への相対パスとして定義されます。最初にメッセージ・フロー・プロジェクトを作成するとき、(default) という名前のデフォルトのブローカー・スキーマがプロジェクト内に作成されます。
新規のブローカー・スキーマを作成して、同じメッセージ・フロー・プロジェクト内に別のシンボル・スペースを設定することもできます。ブローカー・スキーマはプロジェクト内のフォルダーまたはサブディレクトリーとしてインプリメントされ、そのプロジェクト内に組織を形成します。複数のプロジェクトに渡って 1 つのブローカー・スキーマの有効範囲を広げ、アプリケーションの組と関連したすべてのリソースに有効範囲を提供するアプリケーションのシンボル・スペースを作成するためにプロジェクト参照を使用することもできます。
ブローカー・スキーマ名は、先頭がユニコード文字でその後に 0 個以上のユニコード文字または数字、および下線が続く文字ストリングでなければなりません。Stock.Common のように、ピリオドを使用して名前を構造化することもできます。スキーマを表すためにディレクトリーがプロジェクト・ディレクトリー内に作成され、スキーマがピリオドによって構造化されている場合にはさらにサブディレクトリーが定義されます。例えば、ブローカー・スキーマが Stock.Common の場合、メッセージ・フロー・プロジェクト・ディレクトリー内にディレクトリー Stock が作成され、さらにその中にディレクトリー Common が作成されます。
プロジェクト内のデフォルト・ブローカー・スキーマ内にリソース (メッセージ・フローなど) を作成した場合、そのリソースに関連した 1 つ以上のファイルがプロジェクトを表すディレクトリー内に作成されます。他のブローカー・スキーマ内にリソースを作成した場合、ファイルはスキーマ・ディレクトリー内に作成されます。
例えば、メッセージ・フロー・プロジェクト Project1 内のデフォルト・スキーマ内にメッセージ・フロー Update を作成した場合、それに関連したファイルは Project1 ディレクトリーに保管されます。プロジェクト Project1 内の Stock.Common ブローカー・スキーマ内に他のメッセージ・フローを作成した場合、それに関連するファイルはディレクトリー Project1¥Stock¥Common に作成されます。
各ブローカー・スキーマは固有の名前範囲を表すので、2 つのブローカー・スキーマ内に同じ名前を共有する 2 つのメッセージ・フローを作成できます。ブローカー・スキーマは、これら 2 つのメッセージ・フローが別個のリソースとして認識されることを保証します。これら 2 つのメッセージ・フローは、名前は同じですがそれぞれ固有のものとして扱われます。
メッセージ・フローをプロジェクトからプロジェクトに移動する場合、ブローカー・スキーマを保存すれば移動元プロジェクト内のメッセージ・フローを使い続けることができます。これを行う場合、移動元プロジェクトの個別プロジェクトのリストに移動先プロジェクトを追加してそのリストを更新する必要があります。しかしブローカー・スキーマを保存しない場合は、スキーマ名は完全修飾メッセージ・フロー名の一部なので、そのフローは別のフローとなって他のプロジェクトから認識されなくなります。これによりリンクが中断されるので、それを手動で訂正する必要が生じます。メッセージ・フローを移動した後にエラーを訂正することの詳細については、メッセージ・フローの移動を参照してください。
ファイル・システム内の関連ファイルを移動させる方法でリソースの移動を行わないでください。リソースを移動させるときは、確実に新しい組織を反映するようにすべての参照が修正されるようにワークベンチを使用してください。
ブローカー・スキーマ内に関数、プロシージャー、および定数を作成する際、以下の有効範囲と再利用条件が適用されます。
プロシージャーはマッピング・ファイルでは使用できません。
関数またはプロシージャーをグローバルに再利用したい場合は、以下のようにします。
パスを定義する場合、関数がコーディングされているのと同じ ESQL ファイルに PATH ステートメントをコーディングします。ただし、どの MODULE ステートメント内にもコーディングしません。