ESQL 変数は、外部変数、通常変数、または共用変数 として記述できます。
それらの使用は、DECLARE ステートメントで定義されます。
ESQL 変数名
ESQL の規則に準拠する名前のみを使用できます。つまり、名前に使用できるのは英数字 (下線を含む) のみで、先頭文字を数字にすることはできず、名前の長さは 1 文字以上である必要があります。これらの制約を回避するには、これらの規則に準拠しない名前を二重引用符で囲みます。
変数のタイプ
- 外部
- 外部変数 (EXTERNAL キーワードで定義される) は、ユーザー定義プロパティー とも呼ばれます (ESQL でのユーザー定義プロパティーを参照)。 これらはメッセージ・フローの存続期間にわたって存在し、フローを通過するすべてのメッセージにとって可視です。 外部変数 は、モジュール・レベルとスキーマ・レベルでのみ定義可能です。 初期値 (オプションで、DECLARE ステートメントによって設定される) は、メッセージ・フロー・エディターを使用して、またはブローカー・アーカイブ・エディターを使用してデプロイメント時に変更できます。
メッセージ・ブローカー API (CMP API としても知られる) を使用することによって、ユーザー定義のプロパティーの値を実行時に照会および設定することもできます。 詳しくは、CMP アプリケーションでの実行時のメッセージ・フローのユーザー定義プロパティーの設定を参照してください。
- 通常
- 通常変数 の存続時間は、単に 1 つのメッセージがノードを通過するまでです。 この種の変数は、このメッセージのみに可視です。 通常変数 を定義するには、EXTERNAL および SHARED キーワードを両方とも省略します。
- 共用
- 共用変数 (SHARED キーワードで定義される) は、
メッセージ・フローでメモリー内のキャッシュをインプリメントするために使用できます (メッセージ・フロー応答時間の最適化を参照してください)。 共用変数 の存続時間は長く、フローを通過する複数のメッセージに可視になります (存続期間の長い変数を参照してください)。 共用変数は、実行グループのプロセスの存続時間、フローまたはノードの存続時間、または変数を宣言するノードの SQL の存続時間 (のうち最も短い時間) の間存在します。 共用変数は、個々のブローカーの始動後に最初のメッセージがフローまたはノードを移動する際に初期化されます。
BEGIN ... END ステートメントの ATOMIC オプションも参照してください。 BEGIN ATOMIC の構成は、共用変数に多数の変更を加える必要がある場合や、他のインスタンスがデータの中間状態を参照しないようにすることが重要な場合に便利です。