DECLARE ステートメントを使用して、以下の 3 種類の変数を定義できます。
- External
- 外部変数 (EXTERNAL キーワードで定義される) は、ユーザー定義プロパティー (UDP) とも呼ばれます (ESQL でのユーザー定義プロパティーを参照)。これらはメッセージ・フローの存続期間にわたって存在し、フローを通過するすべてのメッセージにとって可視です。初期値 (オプションで DECLARE ステートメントによって設定される) の変更を、メッセージ・フロー・エディターによって設計時に加えたり、BAR エディターによってデプロイメント時に加えたりできます。ESQL によって値を変更することはできません。
- Normal
- "通常" 変数の存続時間は、単に 1 つのメッセージがノードを通過するまでです。この種の変数は、このメッセージのみに可視です。"通常" 変数を定義するには、EXTERNAL および SHARED キーワードを両方とも省略します。
- Shared
- 共用変数は、メッセージ・フローでメモリー内のキャッシュをインプリメントするために使用できます。メッセージ・フロー応答時間の最適化を参照してください。共用変数の存続時間は長く、フローを通過する複数のメッセージに可視になります。存続期間の長い変数を参照してください。共用変数は、実行グループのプロセスの存続時間、フローまたはノードの存続時間、または変数を宣言するノードの SQL の存続時間 (のうち最も短い時間) の間存在します。
共用変数は、個々のブローカーの始動後に最初のメッセージがフローまたはノードを移動する際に初期化されます。
BEGIN ... END ステートメントの ATOMIC オプションも参照してください。BEGIN ATOMIC の構成は、共用変数に多数の変更を加える必要がある場合や、他のインスタンスがデータの中間状態を参照しないようにすることが重要な場合に便利です。