Sie können geeignete langlebige ESQL-Datentypen verwenden, um Daten zwischenzuspeichern.
Manchmal müssen gespeicherte Daten eine einzelne Nachricht, die einen Fluss durchläuft, überdauern. Dies kann durch Speichern der Daten in einer Datenbank erreicht werden. Mit dieser Methode ist eine langfristige Persistenz und Transaktionalität gewährleistet, jedoch ist der Zugriff (insbesondere der Schreibzugriff) langsam.
Alternativ können Sie geeignete langlebige ESQL-Datentypen verwenden, um Daten für eine gewisse Zeit in einem Speichercache zwischenzuspeichern. Diese Methode ermöglicht einen schnelleren Zugriff auf die Daten als über eine Datenbank, jedoch muss eine kürzere Persistenz und der Wegfall der Transaktionalität in Kauf genommen werden.
Langlebige Variablen erstellen Sie unter Verwendung des Schlüsselworts SHARED in der DECLARE-Anweisung. Weitere Informationen hierzu finden Sie unter DECLARE-Anweisung.
Langlebige Datentypen haben eine längere Laufzeit und überdauern eine einzelne Nachricht, die durch einen Knoten gesendet wird. Sie werden von Threads gemeinsam genutzt und haben die Lebensdauer eines Nachrichtenflusses (entspricht streng genommen dem Zeitraum zwischen Änderungen an der Konfiguration eines Nachrichtenflusses). Eine Beschreibung hierzu finden Sie in der folgenden Tabelle.
Geltungsbereich | Lebensdauer | Gemeinsam | |
---|---|---|---|
Variablen mit kurzer Lebensdauer | |||
Schema & Module | Knoten | Thread in einem Knoten | Überhaupt nicht |
Routine Local | Knoten | Thread in einer Routine | Überhaupt nicht |
Block Local | Knoten | Thread in einem Block | Überhaupt nicht |
Variablen mit langer Lebensdauer | |||
Node Shared | Knoten | Lebensdauer des Knotens | Alle Threads in einem Nachrichtenfluss |
Flow Shared | Fluss | Lebensdauer des Knotens | Alle Threads in einem Nachrichtenfluss |
Diese Daten werden beispielsweise in einem Fluss verwendet, in dem die Datentabellen für den Fluss schreibgeschützt sind. Obwohl die Tabellendaten nicht statisch sind, werden Sie vom Fluss nicht geändert, und Tausende von Nachrichten durchlaufen den Fluss, bevor die Tabellendaten geändert werden.