Verwenden Sie den Database-Knoten zur Interaktion mit einer Datenbank innerhalb der angegebenen ODBC-Datenquelle.
Die Art der Interaktion wird über ESQL-Anweisungen definiert, die die Daten der Eingabenachricht festlegen, sie nötigenfalls umwandeln (z. B. zwecks Berechnung) und das Ergebnis in eine Datenbanktabelle schreiben.
Sie können eine Eigenschaft festlegen, um zu steuern, ob die Datenbank sofort oder erst nach Beendigung des Nachrichtenflusses aktualisiert wird und zu welchem Zeitpunkt die Aktualisierung entsprechend dem Gesamtbeendigungsstatus des Nachrichtenflusses festgeschrieben oder zurückgesetzt wird.
Der Database-Knoten befindet sich im Ablagefach Datenbank der Palette und wird in der Workbench durch folgendes Symbol dargestellt:
Stellen Sie sich vor, Sie erhalten einen Auftrag über 20 Monitore. Wenn Sie genügend Monitore auf Lager haben, sollten Sie den Bestand Ihrer Warenbestandsdatenbank verringern. Mit dem Database-Knoten können Sie prüfen, ob ausreichend Monitore verfügbar sind, und den Wert im Mengenfeld in der Datenbank verringern.
Nachdem Sie eine Instanz des Database-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Knoteneigenschaften werden in der Eigenschaftenansicht angezeigt. Klicken Sie zum Anzeigen der Knoteneigenschaften im Eigenschaftendialog entweder doppelt auf den Knoten, oder klicken Sie mit der rechten Maustaste und anschließend auf Eigenschaften. (Durch Doppelklicken auf den Database-Knoten wird die ihm zugeordnete ESQL-Datei geöffnet.) Alle verbindlichen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind mit einem Sternchen gekennzeichnet.
In der folgenden Tabelle werden die Terminals des Database-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Eingangsterminal | Das Eingangsterminal, das eine Nachricht zur Verarbeitung durch einen Knoten annimmt |
Fehlerterminal | Das Ausgabeterminal, an das die Eingabenachricht geleitet wird, wenn während der Berechnung ein Fehler auftritt. Wenn Sie die Option Warnungen als Fehler behandeln ausgewählt haben, gibt der Knoten die Nachricht auch dann an dieses Terminal weiter, wenn die Verarbeitung erfolgreich beendet wird. |
Ausgabeterminal | Das Ausgabeterminal, an das die umgewandelte Nachricht bei erfolgreicher Verarbeitung im Knoten geleitet wird. Die umgewandelte Nachricht kann auch durch eine PROPAGATE-Anweisung an dieses Terminal geleitet werden. |
Ausgabeterminal1 | Das erste alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgabeterminal2 | Das zweite alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgabeterminal3 | Das dritte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgabeterminal4 | Das vierte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn einzusetzen).
In der folgenden Tabelle werden die Beschreibungseigenschaften des Database-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | Knotentyp Datenbankknoten | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |
In der folgenden Tabelle werden die grundlegenden Eigenschaften des Database-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Datenquelle | Nein | Ja | Der Name der ODBC-Datenquelle für die Datenbank mit den Tabellen, auf die Sie
in der mit diesem Knoten verknüpften ESQL-Datei verweisen (wie unter der Eigenschaft
Anweisung festgelegt). Dieser Name gibt den Namen der entsprechenden Datenbank an, unter dem sie in dem System, auf dem dieser Nachrichtenfluss ausgeführt werden soll, gespeichert ist. Der Broker stellt mit der Benutzer-ID und den Kennwortdaten, die Sie in den Befehlen mqsicreatebroker, mqsichangebroker oder mqsisetdbparms angegeben haben, eine Verbindung zu dieser Datenbank her.
|
|
Anweisung | Ja | Nein | Datenbank | Der Name des Moduls in der ESQL-Datei, welche die für die Datenbank zu
verwendenden Anweisungen enthält. Wenn der Modulname ein oder mehrere Leerzeichen enthalten soll, geben Sie ihn in Anführungszeichen an. Die ESQL-Datei, deren Name standardmäßig <Nachrichtenflussname>.esql lautet, enthält ESQL-Code für jeden Knoten im Nachrichtenfluss, der dies erfordert. Jeder Code-Abschnitt, der zu einem bestimmten Knoten gehört, wird als Modul bezeichnet. Wenn Sie ESQL-Anweisungen kodieren, die mit Tabellen interagieren, wird vorausgesetzt, dass diese Tabellen in dieser Datenbank existieren. Falls nicht, generiert der Broker zur Laufzeit einen Datenbankfehler. Kodieren Sie die ESQL-Anweisungen zum Anpassen des Verhaltens des Database-Knotens in einer ESQL-Datei, die mit dem Nachrichtenfluss verknüpft ist, in den Sie diese Instanz des Database-Knotens eingeschlossen haben. Wenn für diesen Nachrichtenfluss nicht bereits eine ESQL-Datei vorhanden ist, klicken Sie doppelt auf den Database-Knoten, oder klicken Sie mit der rechten Maustaste auf den Knoten, und klicken Sie dann im Kontextmenü auf ESQL öffnen, um in der ESQL-Editoransicht eine neue ESQL-Datei zu erstellen und zu öffnen. Wenn die ESQL-Datei bereits vorhanden ist, klicken Sie neben der Eigenschaft Anweisung auf Durchsuchen. Daraufhin wird das Dialogfenster 'Modulauswahl' angezeigt, in dem die verfügbaren Database-Knotenmodule aufgelistet werden, die in den ESQL-Dateien, auf die von diesem Nachrichtenfluss zugegriffen werden kann, definiert sind (ESQL-Dateien können in anderen, abhängigen Projekten definiert werden. Wählen Sie das entsprechende Modul aus, und klicken Sie auf OK. Wenn keine geeigneten Module zur Verfügung stehen, ist diese Liste leer. Falls das von Ihnen angegebene Modul nicht existiert, wird es automatisch erstellt und im Editor angezeigt. Wenn die Datei und das Modul bereits vorhanden sind, wird das richtige Modul im Editor hervorgehoben. Wenn für diesen Knoten das Gerüst eines Moduls in einer neuen oder bereits bestehenden ESQL-Datei erstellt wird, besteht es aus folgendem ESQL-Code. In diesem Beispiel wird der Standardname des Moduls verwendet: CREATE DATABASE MODULE <Nachrichtenflussname>_Database CREATE FUNCTION Main() RETURNS BOOLEAN BEGIN RETURN TRUE; END; END MODULE; Wenn Sie ein eigenes ESQL-Modul erstellen, müssen Sie genau dieses Gerüst erstellen. Sie können den Standardname aktualisieren. Achten Sie jedoch darauf, dass der von Ihnen angegebene Name mit dem Namen der entsprechenden Knoteneigenschaft Anweisung übereinstimmt. Fügen Sie zum Anpassen dieses Knotens eigenen ESQL-Code hinter der BEGIN-Anweisung und vor RETURN TRUE hinzu. Sie können in diesem Modul alle ESQL-Anweisungen einschließlich SET, WHILE, DECLARE und IF verwenden. Allerdings gibt der Database-Knoten (im Gegensatz zum Compute-Knoten) die Nachricht, die er an seinem Eingabeterminal empfängt, unverändert an sein Ausgabeterminal weiter. Deshalb können Sie wie beim Filter-Knoten nur auf eine Nachricht in einem Database-Knoten verweisen. |
Transaktion | Ja | Nein | Automatisch | Der Transaktionsmodus für den Knoten. Folgende Werte stehen zur Verfügung:
|
Warnungen als Fehler behandeln | Ja | Nein | Nicht ausgewählt | Wenn Datenbankwarnungen als Fehler behandelt werden sollen und der Knoten die
Ausgabenachricht an das Fehlerterminal weitergeben soll, aktivieren Sie
Warnungen als Fehler behandeln.
Das
Kontrollkästchen ist zu Beginn inaktiviert. Wenn Sie es aktivieren, behandelt der Knoten alle positiven Rückkehrcodes von der Datenbank als Fehler und generiert Ausnahmebedingungen auf dieselbe Art wie bei negativen oder schwer wiegenden Fehlern. Wenn Sie das Kontrollkästchen nicht aktivieren, behandelt der Knoten Warnungen als normale Rückkehrcodes und löst keine Ausnahmebedingungen aus. Die höchstwertige Warnung, die ausgegeben werden kann, lautet nicht gefunden. Sie kann in den meisten Fällen als typischer Rückkehrcode sicher bearbeitet werden. |
Ausnahmebedingung für Datenbankfehler ausgeben | Ja | Nein | Ausgewählt | Wenn der Broker bei Erkennung eines Datenbankfehlers eine Ausnahmebedingung generieren soll,
aktivieren Sie Ausnahme für Datenbankfehler
ausgeben. Das Kontrollkästchen ist zu Beginn aktiviert. Wenn Sie es inaktivieren, fügen Sie ESQL-Code ein, um nach allen Datenbankfehlern zu suchen, die eventuell nach jedem Datenbankaufruf (mit SQLCODE und SQLSTATE) zurückgegeben werden. Wenn ein Fehler auftrat, müssen Sie ihn im Nachrichtenfluss bearbeiten, um die Integrität des Brokers und der Datenbank zu gewährleisten. Wenn Sie den Fehler nicht über einen eigenen Prozess bearbeiten, wird er ignoriert, da Sie sich gegen die Verwendung der Standardfehlerbehandlung durch den Broker entschieden haben. Beispiel: Sie können die ESQL-Anweisung THROW einschließen, um in diesem Knoten eine Ausnahmebedingung auszugeben, oder Sie generieren mit dem Throw-Knoten zu einem späteren Zeitpunkt Ihre eigene Ausnahmebedingung. |