ESQL-Variablen können als externe Variablen, normale Variablen oder gemeinsame Variablen beschrieben werden. Ihre Nutzung wird in der
DECLARE-Anweisung definiert.
Variablentypen
- Extern
- Externe Variablen (definiert durch das Schlüsselwort EXTERNAL) werden auch benutzerdefinierte Eigenschaften genannt (siehe Benutzerdefinierte Eigenschaften in ESQL). Sie existieren über den gesamten Lebenszyklus eines Nachrichtenflusses und sind für alle Nachrichten, die den Fluss durchlaufen, sichtbar. Externe Variablen können nur auf Modul- und Schemaebene definiert werden. Sie können ihre Anfangswerte (optional festgelegt durch die DECLARE-Anweisung) über den Nachrichtenflusseditor bzw. bei der Implementierung über den Brokerarchvieditor ändern.
Es ist nicht möglich, ihre Werte später mit ESQL zu ändern.
- Normal
- Normale Variablen haben eine Lebensdauer von nur einer Nachricht, die einen Knoten durchläuft und sind nur für diese Nachricht sichtbar. Übergehen Sie bei der Definition einer normalen Variablen die Schlüsselwörter EXTERNAL und SHARED.
- Gemeinsam
- Gemeinsame Variablen (durch das Kennwort SHARED definiert) können zur Implementierung eines Speichercaches im Nachrichtenfluss verwendet werden (siehe Reaktionszeiten von Nachrichtenflüssen optimieren). Gemeinsame Variablen haben eine lange Lebensdauer und sind für mehrere Nachrichten sichtbar, die den Nachrichtenfluss durchlaufen (siehe Langlebige Variablen). Sie bestehen für die Lebensdauer des Prozesses der Ausführungsgruppe, für die Lebensdauer des Flusses oder Knotens oder für die Lebensdauer der SQL des Knotens, die die Variable deklariert (immer die kürzestes Lebensdauer). Sie werden initialisiert, wenn die erste Nachricht nach jeder Broker-Initialisierung den Fluss oder Knoten durchläuft.
Lesen Sie auch die Hinweise zur Option ATOMIC der BEGIN ... END-Anweisung. Das Konstrukt BEGIN
ATOMIC ist nützlich, wenn an einer gemeinsamen Variablen mehrere Änderungen vorgenommen werden müssen und der Zwischenstatus der Daten für andere Instanzen nicht sichtbar sein soll.