環境ツリーは、メッセージがメッセージ・フローを通過する間に情報を保管できる論理メッセージ・ツリーの一部です。
環境ツリーのルートは、Environment と呼ばれます。このツリーは、必ず入力メッセージ内に表示されます。メッセージが入力ノードによって受け取られ解析されるときは、空の環境ツリーが作成されます。このツリーを任意に使用することができます。 ツリーの内容と構造の両方を作成できます。
WebSphere® Message Broker がこのツリー内の 1 つのフィールドを参照する状況が 1 つのみあります (その場合でも、フィールドは作成されません)。メッセージ・フローのアカウンティング・データおよび統計データの収集を要求して、 アカウンティング起点の基本サポートが必要であることを指示した場合には、 ブローカーが Environment.Broker.AccountingOrigin フィールドの存在を検査します。 フィールドが存在する場合、ブローカーはその値を使って現在のデータ・レコードのアカウンティング起点を設定します。 このフィールドの使用方法に関する詳細は、メッセージ・フローのアカウンティングおよび統計のアカウンティング起点の設定 を参照してください。(ブローカーがいくつかの状況で使用するローカル環境のツリー構造と比較してください。)
環境ツリーは、その単一のインスタンスがメッセージ・フローを通じて保守されるローカル環境ツリーとは異なります。メッセージ・フロー内に Compute ノード、Mapping ノード、または JavaCompute ノードを組み込む場合、環境ツリーを出力メッセージ内に組み込むかどうかを指定する必要はありません。環境ツリーは自動的に組み込まれ、入力環境ツリーの内容全体は、出力環境ツリー内に保存され、ノードで加えた変更に従います。加える変更は、メッセージ・フロー内の後続のノードに、およびメッセージ・フローが戻る場合には前のノードに (例えば、FlowOrder または TryCatch ノードに) 適用されます。
独自の情報を作成する場合、環境ツリー内の Variables という名前のサブツリー内に作成します。
以下の図に、環境ツリーの例を示します。
上記に示されている内容を作成するには、以下の ESQL ステートメントを使用することができます。
SET Environment.Variables = ROW('granary' AS bread, 'riesling' AS wine, 'stilton' AS cheese); SET Environment.Variables.Colors[] = LIST{'yellow', 'green', 'blue', 'red', 'black'}; SET Environment.Variables.Country[] = LIST{ROW('UK' AS name, 'pound' AS currency), ROW('USA' AS name, 'dollar' AS currency)};
メッセージ・フローの処理が完了すると、Environment ツリーは廃棄されます。