複数の出力メッセージの生成

PROPAGATE ステートメントを使用して、Compute ノード内に複数の出力メッセージを生成することができます。 生成する出力メッセージは、同じかまたは異なる内容を持つことができます。 出力メッセージは Compute ノードの 4 つの代替出力ターミナルのいずれか、または Label ノードに送信することもできます。

例えば、Compute ノードが受け取った入力メッセージのコピーを 3 つ作成し、変更の始まり1 つを Compute ノードの標準 Out ターミナルに、1 つを Compute ノードの最初の代替 out1 ターミナルに、および 1 つを Label ノードの ThirdCopy に送信したい場合は、変更の終わり以下の ESQL をコーディングします。

SET OutputRoot = InputRoot;
PROPAGATE;
SET OutputRoot = InputRoot;
PROPAGATE変更の始まり TO TERMINAL 'out1'変更の終わり;
SET OutputRoot = InputRoot;
PROPAGATETO LABEL 'ThirdCopy';
上述の例で、デフォルトでは PROPAGATE ステートメントが完了するときにノードが出力メッセージ・バッファーを消去し、メモリーを再利用するため、それぞれの PROPAGATE の前に、OutputRoot の内容はリセットされます。 1 つの代替メソッドとして、最初の 2 つの PROPAGATE ステートメント上の出力メッセージを消去しないようにノードに指示し、これによりメッセージを次の宛先へのルーティングに使用可能にします。 これを実行するコードは以下のとおりです。 変更の始まり
SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO TERMINAL 'out1' DELETE NONE;
SET OutputRoot = InputRoot;
PROPAGATE TO LABEL 'ThirdCopy';
変更の終わり

出力バッファーを初期化しない場合、空のメッセージが生成され、メッセージ・フローがエラーを検出して例外をスローします。

また、伝搬する各出力メッセージごとに、すべての必要なメッセージ・ヘッダーを出力メッセージ・バッファーに確実にコピーします。

各メッセージを伝搬する前に出力メッセージの内容を変更したい場合には、 PROPAGATE ステートメントをコーディングする前に適切な ESQL をコーディングして変更を行ってください。

生成したい最後の出力メッセージの内容をセットアップし、それを Compute ノードの 最後のアクションとして伝搬する場合には、最後の PROPAGATE ステートメントを組み込む必要はありません。 Compute ノードのデフォルトのアクションで、終了する際に出力バッファーの内容が伝搬されます。 この機能は、モジュール・スケルトン内の最後のステートメントとして組み込まれる RETURN TRUE ステートメントによって実装されます。

例えば、入力メッセージのコピーを 3 つ生成し、その後何もアクションを実行しない場合には、そのコードを RETURN TRUE ステートメントの直前に組み込みます。

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATE DELETE NONE;

Alternatively, you can modify the default behavior of the node by changing RETURN TRUE to RETURN FALSE:

SET OutputRoot = InputRoot;
PROPAGATE DELETE NONE;
PROPAGATEDELETE NONE;
PROPAGATE;
RETURN FALSE;

3 つの PROPAGATE ステートメントによって、3 つの出力メッセージが生成されます。 最後の RETURN FALSE ステートメントはノードを終了しますが、最終出力メッセージを伝搬しません。 最終の PROPAGATE ステートメントは、ノードがメモリーをこの段階で解放しなければならないので、DELETE NONE 文節を組み込みません。

関連概念
メッセージ・フローの概要
ESQL の概要
メッセージのモデル化
関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
プロパティー・ツリーへのアクセス
ESQL ファイルの管理
関連資料
Compute ノード
ESQL 参照
PROPAGATE ステートメント
RETURN ステートメント
SET ステートメント
関連情報
Compute ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ac12370_