Bei einer ESQL-Variablen handelt es sich um ein Feld, das zur Verarbeitung einer Nachricht verwendet wird.
Sie müssen eine Variable deklarieren und ihren Typ angeben, bevor Sie sie verwenden können. Der Datentyp einer Variablen ist festgelegt. Wenn Sie ESQL-Code erstellen, der einen Wert eines anderen Typs zuordnet, wird entweder eine implizite Umsetzung in den Datentyp des Ziels implementiert oder eine Ausnahmebedingung ausgegeben (wenn die implizite Umsetzung nicht unterstützt wird).
Verwenden Sie die DECLARE-Anweisung, um eine Variable zu definieren und ihr einen Namen zuzuordnen.
Anmerkung: Bei den Namen für ESQL-Variablen muss die Groß-/Kleinschreibung beachtet werden. Sie müssen sicherstellen, dass Sie stets dieselbe Schreibweise verwenden.
Am einfachsten lässt sich dies umsetzen, wenn Sie die Variablen unter Verwendung von großgeschriebenen Namen definieren.
Im Nachrichtenbroker-Toolkit sind Variablen, die nicht definiert sind, mit Warnungen versehen.
Es wird empfohlen, all diese Warnungen zu entfernen, bevor Sie einen Nachrichtenfluss implementieren.
Sie können der Variablen in der DECLARE-Anweisung einen Anfangswert zuweisen. Wenn kein Anfangswert angegeben ist, werden Skalarvariablen mit dem Sonderwert NULL initialisiert,
die ROW-Variablen hingegen werden in einen Leerstatus initialisiert. Anschließend können Sie den Wert der Variablen unter Verwendung der SET-Anweisung ändern.
Es gibt drei Arten von integrierten Knoten, die ESQL-Code enthalten können und so die Verwendung von ESQL-Variablen unterstützen:
Bereich, Lebensdauer und gemeinsame Nutzung von Variablen
In welchem Umfang und wie lange eine bestimmte ESQL-Variable verfügbar ist, wird über den Bereich, die Lebensdauer und die gemeinsamen Nutzung definiert.
Der Bereich einer Variablen ist ein Maß für den Bereich, in der die Variable sichtbar ist.
In der Brokerumgebung ist der Variablenbereich normalerweise auf einen einzigen Knoten beschränkt.
Die Lebensdauer einer Variablen ist ein Maß für die Dauer, für die die Variable ihren Wert beibehält.
In der Brokerumgebung variiert die Lebensdauer einer Variablen, jedoch ist sie normalerweise auf die Lebensdauer eines Threads in einem Knoten beschränkt.
Die Merkmale für die gemeinsame Nutzung einer Variablen geben an, ob die jeweiligen Threads über eine eigene Kopie der Variablen verfügen oder ob eine Variable von vielen Threads gemeinsam genutzt wird.
In der Brokerumgebung werden Variablen normalerweise nicht gemeinsam genutzt.
Variablentypen
Mit der
DECLARE-Anweisung können Sie drei Variablentypen definieren:
- Extern
- Externe Variablen (definiert durch das Schlüsselwort EXTERNAL) werden auch benutzerdefinierte Eigenschaften (UDPs) 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.
Ihre Anfangswerte (optional festgelegt durch die DECLARE-Anweisung) können während der Entwicklung vom Nachrichtenfluss-Editor oder bei der Implementierung vom BAR-Editor geändert werden. Ihre Werte können nicht in ESQL geändert werden.
- 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 können zur Implementierung eines Speichercaches in den Nachrichtenfluss verwendet werden (siehe Reaktionszeiten von Nachrichtenflüssen optimieren). Gemeinsame Variablen haben eine lange Lebensdauer und sind für mehrere Nachrichten sichtbar, die einen 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 mehrere Änderungen an einer gemeinsamen Variablen vorgenommen werden, und der Zwischenstatus der Daten für andere Instanzen nicht sichtbar sein soll.
Weitere Informationen zu bestimmten Variablentypen finden Sie in folgenden Abschnitten: