Datenbankknoten (Database)

Zweck

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.

Mit angepassten Formen dieses Knotens können Sie Folgendes ausführen:
  • Werte in einer Datenbanktabelle aktualisieren (Datenaktualisierungsknoten)
  • Zeilen in eine Datenbanktabelle einfügen (Dateneinfügungsknoten)
  • Zeilen in einer Datenbanktabelle löschen (Datenlöschknoten)
  • Nachricht oder Teile der Nachricht in einem Data-Warehouse speichern (Warehouseknoten)

Der Datenbankknoten wird in Workbench durch folgendes Symbol dargestellt:

Symbol für Datenbankknoten

Diesen Knoten in einem Nachrichtenfluss verwenden

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.

Datenbankknoten konfigurieren

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:

  1. Geben Sie unter Datenquelle den Namen der entsprechenden Datenbank an, unter dem sie in dem System gespeichert ist, in dem dieser Nachrichtenfluss ausgeführt werden soll. 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.

    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.

  2. Geben Sie unter Anweisung das Modul in der ESQL-Datei an, das die ESQL-Anweisungen enthält, die in diesem Knoten ausgeführt werden sollen. Wenn der Modulname ein oder mehrere Leerzeichen enthalten soll, geben Sie ihn unter der Eigenschaft Anweisung in Anführungszeichen an.

    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 Datei > Neu > ESQL-Nachrichtenflussdatei 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.

  3. Wählen Sie im Dropdown-Menü die Einstellung Transaktion. Folgende Werte stehen zur Verfügung:
    • Automatisch (Standardwert). Der Nachrichtenfluss, dessen Teil der Datenbankknoten ist, wird festgeschrieben, wenn er erfolgreich ist. Das heißt dass die Aktionen, die Sie im ESQL-Modul definieren, ausgeführt werden und die Nachricht den Nachrichtenfluss weiter durchläuft. Wenn der Nachrichtenfluss fehl schlägt, wird er zurückgesetzt. Wenn Sie die Option Automatisch auswählen, hängt die Fähigkeit, die Aktionen des Datenbankknotens in der Datenbank festzuschreiben bzw. zurückzusetzen, vom Erfolg oder Scheitern des gesamten Nachrichtenflusses ab.
    • Festschreiben. Wenn Sie alle nicht festgeschriebenen Aktionen festschreiben möchten, die in diesem Nachrichtenfluss in der mit diesem Knoten verbundenen Datenbank ausgeführt werden, und zwar unabhängig von Erfolg oder Scheitern des gesamten Nachrichtenflusses, wählen Sie die Option Festschreiben. Die Datenbankänderungen werden festgeschrieben, selbst wenn der Nachrichtenfluss fehlschlägt.
  4. Wählen Sie im Eigenschaften-Dialognavigator die Option "Grundeinstellung", und aktivieren bzw. inaktivieren Sie anschließend die beiden Markierungsfeld:
    • Wenn Datenbankwarnmeldungen als Fehler behandelt werden und der Knoten die Ausgabenachricht an das Fehlerterminal weitergeben soll, aktivieren Sie das Kontrollkästchen Warnungen als Fehler behandeln. Das Markierungsfeld ist ursprünglich 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 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 der Broker bei Feststellung eines Datenbankfehlers eine Ausnahmebedingung generieren soll, aktivieren Sie das Kontrollkästchen Ausnahme für Datenbankfehler ausgeben. Das Markierungsfeld ist ursprünglich aktiviert.

      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.

  5. Wählen Sie im Eigenschaften-Dialognavigator die Option "Beschreibung", um ein kurze und/oder ausführliche Beschreibung einzugeben.
  6. Klicken Sie auf Übernehmen, um die Änderungen am Datenbankknoten vorzunehmen, ohne das Dialogfeld mit den Eigenschaften zu schließen. Klicken Sie auf OK, um die Änderungen zu übernehmen und das Dialogfeld mit den Eigenschaften zu schließen.

    Klicken Sie auf Abbrechen, um das Dialogfeld zu schließen und alle Änderungen zu verwerfen, die Sie an den Eigenschaften vorgenommen haben.

Terminals und Eigenschaften

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.
Anmerkung: Informationen zur Syntax der PROPAGATE-Anweisung finden Sie unter PROPAGATE-Anweisung.

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
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac04670_