Langlebige Variablen

In manchen Fällen ist es nützlich, wenn 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 hierzu können Sie entsprechende "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 werden unter Verwendung des Schlüsselworts SHARED in der Anweisung DECLARE erstellt.

Das Beispielprogramm 'Message Routing' veranschaulicht die Definition gemeinsamer Variablen unter Verwendung der DECLARE-Anweisung. Hier erfahren Sie, wie Sie Route-Informationen in einer Datenbank speichern und wie Sie mit gemeinsamen Variablen die gespeicherte Datenbanktabelle im Nachrichtenfluss speichern, um die Leistung zu verbessern.

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
Langlebige ESQL-Datentypen haben folgende Merkmale:

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.

Ein Beispiel hierfür ist eine Tabelle mit den Kreditkartentransaktionen an einem bestimmten Tag. Die Tabelle wird jeden Tag erstellt und die jeweiligen Tagesnachrichten werden für die Tabelle ausgeführt. Anschließend wird der Fluss gestoppt, die Tabelle aktualisiert und die Nachrichten des nächsten Tages werden ausgeführt. Es ist sehr wahrscheinlich, dass solche Flüsse einen besseren Durchsatz aufzeigen, wenn die Tabellendaten zwischengespeichert und nicht für jede Nachricht aus einer Datenbank gelesen würden.

Eine andere Verwendungsmöglichkeit dieser Datentypen ist die Akkumulation und Integration von Daten aus mehreren Nachrichten.

Zugehörige Konzepte
ESQL-Knoten und Debugging
ESQL-Variablen
Benutzerdefinierte Eigenschaften in ESQL
Zugehörige Verweise
DECLARE-Anweisung
ESQL-Datentyp ROW
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ak35120_