Verwenden Sie den Datenbankknoten 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 so konfigurieren, dass gesteuert wird, ob die Datenbank sofort oder erst nach Beendigung des Nachrichtenflusses aktualisiert wird, und zu welchem Zeitpunkt die Aktualisierung entsprechend dem Gesamtabschluss-Status des Nachrichtenflusses festgeschrieben oder zurückgesetzt wird.
Obwohl Sie die Datenbank mit diesem Knoten aktualisieren können, können Sie die Nachricht selbst nicht aktualisieren.
Der Datenbankknoten wird in Workbench durch folgendes Symbol dargestellt:
Die nachfolgenden Beispiele erläutern die Verwendung dieses Knotens:
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 Datenbankknoten können Sie prüfen, ob ausreichend Monitore verfügbar sind und den Wert im Mengenfeld in der Datenbank verringern.
Wenn Sie eine Instanz des Datenbankknotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren. Klicken Sie mit der rechten Maustaste in der Editoransicht auf den Knoten, und wählen Sie die Option Eigenschaften aus. Daraufhin werden die grundlegenden Eigenschaften des Knotens angezeigt.
Alle verbindlichen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind dort mit einem Sternchen gekennzeichnet.
Konfigurieren Sie den Datenbankknoten wie folgt:
Auf z/OS-Systemen verwendet der Broker die vom Broker gestartete Task-ID oder die Benutzer-ID und das Kennwort, die im angepassten Datensatz <hlq>.SBIPPROC im mqsisetdbparms-Befehl 'JCL, BIPSDBP' angegeben wurden.
Wenn Sie ESQL-Anweisungen kodieren, die mit Tabellen interagieren, wird vorausgesetzt, dass diese Tabellen in dieser Datenbank existieren. Ist dies nicht der Fall, generiert der Broker zu Laufzeit einen Datenbankfehler.
Kodieren Sie die ESQL-Anweisungen zum Anpassen des Verhaltens des Datenbankknotens in einer ESQL-Datei, die mit dem Nachrichtenfluss verknüpft ist, in den Sie diese Instanz des Datenbankknotens eingeschlossen haben. Die ESQL-Datei, deren Name standardmäßig <Nachrichtenflussname>.esql lautet, enthält ESQL für jeden Knoten im Nachrichtenfluss, der sie erfordert. Jeder Code-Abschnitt, der zu einem bestimmten Knoten gehört, wird als Modul bezeichnet.
Wenn für diesen Nachrichtenfluss nicht bereits eine ESQL-Datei vorhanden ist, klicken Sie mit der rechten Maustaste auf den Datenbankknoten und wählen anschließend im Kontextmenü die Option ESQL öffnen. Daraufhin wird in der ESQL-Editoransicht eine neue ESQL-Datei erstellt und geöffnet.
Ist eine ESQL-Datei bereits vorhanden, klicken Sie neben der Eigenschaft Anweisung auf die Schaltfläche Durchsuchen. Daraufhin wird das Dialogfeld zur Modulauswahl geöffnet, in dem die in den ESQL-Dateien festgelegten, verfügbaren Datenbankknotenmodule aufgeführt werden, auf die dieser Nachrichtenfluss zugreifen kann (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 für Sie erstellt und im Editor angezeigt. Sind die Datei und das Modul bereits vorhanden, positioniert der Editor die Datei und markiert das richtige Modul.
Bei Bedarf können Sie die entsprechende ESQL-Datei im Ressourcennavigator öffnen und diesen Knoten in der Entwurfsansicht auswählen.
Wenn für diesen Knoten das Gerüst eines Moduls in einer neuen oder bereits bestehenden ESQL-Datei erstellt wird, besteht es aus folgender ESQL. 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 Ihre eigene ESQL zum Anpassen dieses Knotens hinter der BEGIN-Anweisung und vor RETURN TRUE hinzu.
Sie können eine ESQL-Datei auch über
erstellen.Sie können in diesem Modul alle ESQL-Anweisungen einschließlich SET, WHILE, DECLARE und IF verwenden. Allerdings gibt der Datenbankknoten (im Gegensatz zum Rechenknoten) die Nachricht, die er an seinem Eingabeterminal empfängt, unverändert an sein Ausgabeterminal weiter. Das bedeutet, dass Sie wie beim Filterknoten nur auf eine Nachricht in einem Datenbankknoten verweisen können.
Da Sie keine Komponente der Nachricht modifizieren können, kann die Zuordnungsanweisung (die SET-Anweisung, nicht die SET-Klausel der INSERT-Anweisung) nur temporären Variablen Werte zuordnen. Der Umfang dieser Aktionen, die Sie mit einer Zuordnungsanweisung vornehmen können, ist daher begrenzt.
Bei Bedarf können Sie die entsprechende ESQL-Datei im Ressourcennavigator öffnen und diesen Knoten in der Entwurfsansicht auswählen.
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 schwerwiegenden Fehlern.
Wenn Sie das Kästchen nicht aktivieren, behandelt der Knoten Warnungen als normale Rückkehrcodes und gibt keine Ausnahmebedingung aus. Die höchstwertige Warnung, die ausgegeben werden kann, lautet nicht gefunden. Sie kann in den meisten Fällen als normaler Rückkehrcode sicher bearbeitet werden.
Wenn Sie es inaktivieren, müssen Sie ESQL einschließen, um nach allen Datenbankfehlern zu suchen, die eventuell nach jedem Datenbankaufruf (mit SQLCODE und SQLSTATE) zurückgegeben werden. Trat ein Fehler auf, müssen Sie ihn im Nachrichtenfluss bearbeiten, um die Integrität des Brokers und der Datenbank zu gewährleisten: der Fehler wird ignoriert, wenn Sie ihn nicht über ihren eigenen Prozess bearbeiten, da Sie kein Aufrufen der Standardfehlerbehandlung durch den Broker ausgewählt haben. Beispiel: Sie können die ESQL-Anweisung THROW einschließen, um in diesem Knoten eine Ausnahmebedingung auszugeben, oder Sie generieren mit dem Ausnahmeknoten zu einem späteren Zeitpunkt Ihre eigene Ausnahmebedingung.
Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen und alle Änderungen zu verwerfen, die Sie an den Eigenschaften vorgenommen haben.
In der nachfolgenden Tabelle werden die Terminals des Datenbankknotens 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. |
Ausgangsterminal | 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. |
Ausgangsterminal1 | Das erste alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal2 | Das zweite alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal3 | Das dritte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
Ausgangsterminal4 | Das vierte alternative Ausgabeterminal, an das die umgewandelte Nachricht durch eine PROPAGATE-Anweisung geleitet werden kann. |
In der nachfolgenden Tabelle werden die Knoteneigenschaften beschrieben. Die Spalte M zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen im Eigenschaftendialog, ob Sie einen Wert eingeben müssen, wenn kein Standardwert definiert ist). Die Spalte C zeigt an, ob die Eigenschaft konfigurierbar ist (Sie können den Wert ändern, wenn Sie der BAR-Datei den Nachrichtenfluss hinzufügen, um ihn einzusetzen).
In der nachfolgenden Tabelle werden die grundlegenden Eigenschaften des Datenbankknotens beschrieben.
Eigenschaft | M | C | 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). | |
Anweisung | Ja | Nein | Datenbank | Der Name des Moduls in der ESQL-Datei, die die Anweisungen zum Ausführen gegen die Datenbank enthält. |
Transaktion | Ja | Nein | Automatisch | Der Transaktionsmodus für den Knoten. Dieser kann Automatisch oder Festschreiben lauten. |
Warnungen als Fehler behandeln | Ja | Nein | Nicht ausgewählt | SQL-Datenbankwarnungen als Fehler behandeln. Wenn Sie das Markierungsfeld aktivieren, wird der Vorgang ausgeführt. |
Ausnahmebedingung für Datenbankfehler ausgeben | Ja | Nein | Ausgewählt | Datenbankfehler führen dazu, dass der Broker eine Ausnahmebedingung auslöst. Wenn Sie das Markierungsfeld aktivieren, wird der Vorgang ausgeführt. |
In der nachfolgenden Tabelle werden die Beschreibungseigenschaften des Datenbankknotens beschrieben.
Eigenschaft | M | C | Standardwert | Beschreibung |
---|---|---|---|---|
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |