LocalEnvironment ツリーへのアクセス

LocalEnvironment ツリーには独自の相関名 LocalEnvironment があり、 このツリーの内容を参照または設定するすべての ESQL ステートメントではこの名前を使用する必要があります。

LocalEnvironment ツリーはブローカーが使用し、 ユーザーはこの情報を参照して変更できます。 またこのツリーを拡張して、ユーザー自身が作成する情報を含めることができます。 このツリー内にサブツリーを作成し、 スクラッチパッドまたは作業域として使用できます。

このトピックでは、ブローカーがセットアップする情報を参照する方法について説明します。LocalEnvironment でのスクラッチパッド領域の使用 では、 独自の目的のためにこのツリーの内容を拡張する方法が取り上げられています。

メッセージ・フローは、LocalEnvironment ルートの下に、 Destination および WrittenDestination という 2 つのサブツリーに情報をセットアップします。 この両方の内容を参照して、 そこに書き込んでメッセージ・フローがメッセージを処理する方法に影響を与えることができます。 しかしこうした領域に書き込む場合には、 定義済みの構造に従ってツリーが有効であることを確認してください。 こうした内容の詳細については、LocalEnvironment ツリーを参照してください。

LocalEnvironment ツリーを Compute ノードが伝搬する出力メッセージに組み込む場合には、 Compute ノードの「計算モード (Compute mode)」プロパティーを LocalEnvironment を含む値 (たとえば、すべて (All)) に設定して、 このツリーがコピーされるようにしてください。 そのようにしない場合には、 LocalEnvironment ツリーは出力メッセージには含まれません。

たとえば、WebSphere MQ 宛先が Destination サブツリーにあるかどうかをチェックするには、 次のようにします。
DECLARE cursor REFERENCE TO LocalEnvironment.Destination.MQ;

IF LASTMOVE(cursor) THEN
Destination サブツリーを更新して、メッセージを出力時に書き込む先となる WebSphere MQ キューの名前を変更するには、 次のようにコーディングします (上の例で宣言された参照カーソルを使用します)。
SET cursor.DestinationData.queueManagerName = 'myNewQManagerName';
SET cursor.DestinationData.queueName = 'myNewQueueName';
DestinationData または Defaults に挿入する情報は、 対応するノード・プロパティーの特性に依存します。
  • ノード・プロパティーがチェック・ボックスによって表される場合には (たとえば、「新規メッセージ ID (New Message ID)」)、 Defaults または DestinationData エレメントを「はい (Yes)」(チェック・ボックスの選択に相当)、 または「いいえ (No)」(チェック・ボックスのクリアに相当) に設定します。
  • ノード・プロパティーがドロップダウン・リストによって表される場合には (たとえば、 「トランザクション・モード (Transaction Mode)」)、 Defaults または DestinationData エレメントを適切な文字ストリング (たとえば、 「自動 (Automatic)」) に設定します。
  • ノード・プロパティーがテキスト入力フィールドによって表される場合には (たとえば、 「キュー・マネージャー名 (Queue Manager Name)」)、 Defaults または DestinationData エレメントをこのフィールドに入力する文字ストリングに設定します。
出力メッセージの宛先情報の場所を指示するように出力ノードを構成しなければなりません。
  • 「宛先モード (Destination Mode)」「キュー名 (Queue Name)」 に設定する場合には、 出力ノード・プロパティー「キュー名 (Queue Name)」および「キュー・マネージャー名 (Queue Manager Name)」で識別されるキューに出力メッセージは送信されます。 ノードは宛先を参照しません。
  • 「宛先モード (Destination Mode)」「宛先リスト (Destination List)」 に設定する場合には、 ノードは Destination サブツリーから宛先情報を抽出します。 ですから、Destination および単一の出力ノードを適切に構成すると、 単一のメッセージを複数の宛先に送信できます。(上述のように) Destination で値が有効でない場合には、 ノードはノード・プロパティーのみをチェックします。
  • 「宛先モード (Destination Mode)」「応答先キュー (Reply To Queue)」に設定する場合には、 メッセージの MQMD で識別される応答先キューにそのメッセージは送信されます (「ReplyToQ」フィールド)。 ノードは宛先を参照しません。

Defaults および DestinationData サブツリー内のエレメントの完全なリストについては、DestinationData サブツリー内のエレメントのデータ・タイプを参照してください。

LocalEnvironment を使用してメッセージ・フローの動作を変更する方法の別の例は、 Airline サンプル・プログラムの XML_PassengerQuery メッセージ・フローを参照してください。 このメッセージ・フローの Compute ノードは、 対応する Label ノードにメッセージを伝搬する RouteToLabel ノードが後ほどラベルとして使用する、 宛先のリストを Destination の RouterList サブツリーに書き込みます。

関連概念
メッセージ・フロー
LocalEnvironment ツリー
ESQL
メッセージのモデル化

関連タスク
メッセージ・フローの設計
宛先リストの作成
メッセージ・フローの内容の定義
ESQL ファイルの管理

関連資料
Compute ノード
Database ノード
Filter ノード
DestinationData サブツリー内のエレメントのデータ・タイプ
ESQL
DECLARE ステートメント
LASTMOVE 関数
SET ステートメント