Show TOC

JDBC-Sender-Adapter konfigurierenLocate this document in the navigation structure

Verwendung

Sie konfigurieren den JDBC-Sender-Adapter, um damit Inhalte aus Datenbanken an den Integration Server oder an das PCK zu versenden.

Voraussetzungen
  • Für den definierten Kommunikationskanal muss genau eine Sendervereinbarung existieren.
  • Sie müssen in der Datenbanktabelle ein Kennzeichen einführen, das den Verarbeitungsstatus jedes Datensatzes im Adapter (verarbeitet/nicht verarbeitet) angibt.
  • Die UPDATE-Anweisung muss genau die Datensätze verändern, die durch die SELECT-Anweisung ausgewählt worden sind. Sowohl in der UPDATE-, als auch in der SELECT-Anweisung muss dieselbe WHERE-Klausel verwendet werden.

    (Siehe unten unter Verarbeitungsparameter definieren, SQL-Anweisung für Query und SQL-Anweisung für Update.)

    Tipp

    Das Beispiel zeigt die korrekte Angabe der SELECT- und UPDATE-Anweisung:

    SQL-Anweisung für Query: SELECT * FROM table WHERE processed = 0;

    SQL-Anweisung für Update UPDATE table SET processed = 1 WHERE processed = 0;

    processed ist das Kennzeichen in der Datenbank.

  • Eine korrekte Verarbeitung erfolgt nur dann, wenn die Isolationsstufe für die Transaktion auf
    repeatable_readserializable
    oder gesetzt ist.
Vorgehensweise
  1. Das Transportprotokoll heißt JBDC 2.0.
  2. Das Message-Protokoll heißt JDBC. Zusätzliche Werte können in zukünftigen Versionen für das Message-Protokoll hinzugefügt werden.
  3. Wählen Sie die Adapter Engine auf dem Integration Server aus oder wählen Sie eine dezentral installierte Adapter Engine aus.

    Diese Auswahl ist im PCK nicht möglich.

Datenbankverbindung definieren

  1. Wählen Sie das Register Verbindung.
  2. Geben Sie unter JDBC-Treiber die Java-Klasse des JDBC-Treibers ein.

    Der JDBC-Adapter muss die Klasse laden, um auf den Treiber zugreifen zu können.

  3. Geben Sie unter Verbindung die Adresse an, unter der über den JDBC-Treiber eine Datenbankverbindung geöffnet werden kann.
  4. Geben Sie unter Benutzername und Kennwort die Anmeldedaten für die zu lesende Datenbank ein.

    Die Eingaben zum JDBC-Treiber und zur Verbindung hängen vom jeweiligen JDBC-Treiber ab. Sie gehen aus den Unterlagen des Anbieters hervor.

Verarbeitungsparameter definieren

  1. Wählen Sie die Registerkarte Verarbeitung.
  2. Geben Sie unter Quality-of-Service an, wie eine Message durch die Integration Engine / das PCK verarbeitet werden soll:

    Für Quality of Service Exactly Once In Ordergeben Sie den Queue-Namen ein.

    Siehe: Quality-of-Service

  3. Machen Sie folgende Angaben zum Poll-Intervall:
    • Poll-Intervall (Sek.): Anzahl der Sekunden, die der Adapter warten soll, wenn keine Dateien zur Verarbeitung gefunden werden.
    • Poll-Intervall (mSek.): Anzahl der Millisekunden, die der Adapter warten soll, wenn keine Dateien zur Verarbeitung gefunden werden.

      Wenn Poll-Intervall (Sek.) auf Null gesetzt ist, sind die Verarbeitungszeiten kurz und echtzeitnah.

      Wenn Sie Poll-Intervall (Sek.) und Poll-Intervall (mSek.) auf Null setzen, wird der Adapter einmal aufgerufen.

    • Wiederholungsintervall (Sek.): Anzahl der Sekunden, die der Adapter warten soll, bis eine fehlerhaft verarbeitete SQL-Anweisung erneut verarbeitet wird.

      Wird der Wert auf Null gesetzt, so wird der Adapter im Fehlerfall beendet, auch dann, wenn für Poll-Intervall (Sek.) ein Wert größer als Null angegeben ist.

      Wird kein Wert eingegeben, wird der Wert vonPoll-Intervall (Sek.)verwendet.

  4. Die Angabe unter SQL-Anweisung für Query muss der vom jeweiligen JDBC-Treiber unterstützten SQL-Variante entsprechen. Er kann auch Tabellen-JOINs enthalten.
    • Geben Sie eine gültige SQL-Anweisung ein, die nach dem erfolgreichen Versenden der unter SQL-Anweisung für Query ermittelten Daten an den Integration Server/an das PCK auf die Datenbank angewendet werden soll.

      Es muss sich um eine INSERT-, UPDATE- oder DELETE-Anweisung handeln.

    • Geben Sie eine SQL EXECUTE-Anweisung an, um eine Stored Procedure auszuführen, die genau eine SELECT-Anweisung enthält.
  5. Geben Sie den Dokumentnamen ein.

    Dieser Dokumentname wird in der Message als Haupt-XML-Tag eingefügt.

  6. Geben Sie den Dokumentnamensraum ein.

    Der Namensraum wird dem Dokumentnamen hinzugefügt.

  7. Geben Sie die SQL-Anweisung für Update ein.
    • Geben Sie eine gültige SQL-Anweisung ein, die nach dem erfolgreichen Versenden der unter SQL-Anweisung für Query ermittelten Daten an den Integration Server/an das PCK auf die Datenbank angewendet werden soll.

      Die SQL-Anweisung muss eine INSERT-, UPDATE- oder DELETE-Anweisung sein.

    • Wenn nach erfolgreichem Verschicken der unter SQL-Anweisung für Query ermittelten Daten die Daten in der Datenbank unverändert bleiben sollen, geben Sie <TEST> an.

      Diese Eingabe ist sinnvoll, wenn die Daten durch eine Eingabe unter SQL-Anweisung für Query definierte Stored Procedure nicht nur gelesen, sondern bereits verändert wurden.

Betriebssystembefehl definieren

  1. Geben Sie ein Betriebssystembefehl ein, das nach erfolgreichen Datenbankoperationen ausgeführt werden soll.
  2. Geben Sie unter Zeitüberschreitung (Sek.) die maximale Laufzeit des auszuführenden Programms in Sekunden an.

    Nach Ablauf dieser Zeitspanne fährt der Adapter mit der Verarbeitung fort. Das ausführbare Programm läuft im Hintergrund weiter.

  3. Wenn der Adapter nach Ablauf der Zeitüberschreitung das auszuführende Programm abbrechen soll, wählen Sie Programm nach Zeitüberschreitung beenden.

    Der Adapter schreibt die Ausgaben (STDOUT und STDERR) des Betriebssystembefehls in den System-Trace.

    Die Message-Verarbeitung erfolgt unabhängig davon, ob bei der Ausführung eines konfigurierten Betriebssystembefehls ein Fehler auftritt.

Adapterstatus definieren

  1. Wählen Sie die Registerkarte Erweitert.
  2. Setzen Sie den Adapter auf Aktiv, um ihn für den Message-Austausch einzusetzen.

Zusätzliche Parameter im Erweiterten Modus definieren

  1. Um zusätzliche Parameter für die Adapterkonfiguration anzugeben, wählen Sie Erweiterter Modus.
  2. Um festzulegen, wie parallel laufende Transaktionen sich gegenseitig beeinflussen sollen, wählen Sie die Isolationsstufe für Transaktionen.

    Datenbanktransaktionen können in verschiedenen Abstufungen (Isolation-Levels) ausgeführt werden. Die zur Auswahl stehenden Optionen entsprechen den JDBC-Konstanten:

    • Standard (Standardeinstellung der jeweiligen Datenbank)
    • Keine
    • read_uncommited(schwächste Einstellung)
    • read_committed
    • repeatable_read
    • serializable (stärkste Einstellung)
      Achtung

      Reduzieren Sie die Sicherheitsstufe nur, wenn erforderlich, und auch nur so weit wie nötig. Stellen Sie anderweitig sicher, dass keine Dateninkonsistenzen in der Datenbank erzeugt werden können, d.h. in der Regel durch die Vermeidung paralleler Zugriffe.

  3. Unterstützt der JDBC-Treiber keine Transaktionen, schalten Sie die Transaktionsklammer ab. Wählen Sie hierzu Auto-Commit für Datenbank aktiviert (keine Transaktionsbearbeitung). Die Transaktionsklammer stellt die Datenkonsistenz sicher. Unterstützt der JDBC-Treiber keine Transaktionen, müssen Sie die Konsistenz der Daten in der Datenbank anderweitig sicherstellen. In der Regel müssen Sie hierzu parallele Zugriffe unterbinden.
    Achtung

    Setzen Sie dieses Kennzeichen nicht, wenn der JDBC-Treiber Transaktionen unterstützt, d. h. keine entsprechende Fehlermeldung im Normalbetrieb auftritt.

  4. Wenn vor jedem Poll-Intervall die Datenbankverbindung freigegeben und anschließend neu aufgebaut werden soll, wählen Sie Nach Verarbeiten jeder Message Verbindung zur Datenbank aufheben.
  5. Wenn Sie die leeren Tags aus dem Resultset des Sender Adapters entfernen möchten, wählen Sie Leere Kennzeichen entfernen. Dies unterstützt Sie dabei, die Größe von XML-Dokumenten zu reduzieren.
    Tipp

    Ist das Kennzeichen nicht gesetzt, sieht die Ergebnismenge folgendermaßen aus:

    <resultset>

    <row>

    <column-name1>column-value</column-name1>

    <column-name2></column-name2>

    <column-name3>column-value</ column-name3>

    <column-name4></column-name4>

    </row>

    <row>

    <column-name1>column-value</column-name1>

    <column-name2></column-name2>

    </row>

    </resultset>

    Ist das Kennzeichen gesetzt, sieht die Ergebnismenge folgendermaßen aus:

    <resultset>

    <row>

    <column-name1>column-value</column-name1>

    <column-name3>column-value</column-name3>

    </row>

    <row>

    <column-name1>column-value</column-name1>

    </row>

    </resultset>

  6. Geben Sie zusätzliche Parameternamen und Parameterwerte in der Tabelle an.

    Aufgrund von sehr großen Messages kann es zu Speicherplatzproblemen kommen, die zu Fehlern im JEE-Server-Knoten führen können.

    Folgende Parameter können Sie in der Tabelle setzen, um die Größe von Messages zu begrenzen:

    • msgLimit : Mit diesem Parameter wird die Funktion für die maximale Message-Größe für den JDBC-Adapter aktiviert. Wenn dieser Parameter auf true steht, verarbeitet der JDBC-Adapter keine Messages, die größer sind als die Werte, die in maxMsgSize und maxRowSize angegeben sind. Ist msgLimit auf true gesetzt, dann sind die Parameter maxMsgSize und maxRowSize obligatorisch.
    • maxMsgSize: Mit diesem Parameter wird die Message-Größe auf einen optimalen Wert begrenzt. Der JDBC-Adapter verarbeitet keine Messages zur Laufzeit, die größer sind als der Wert, der in maxMsgSize angegeben ist. Der Wert des Parameters wird in KB angegeben.

      Weitere Informationen zur Konfiguration der maximalen Message-Größe finden Sie im SAP-Hinweis 1253826.

    • maxRowSize: Mit diesem Parameter wird die maximale Zeilengröße angegeben. Er dient zur Berechnung der maximalen Anzahl an Zeilen, die in einem Intervall über den Kanal geschickt werden können. Der Wert des Parameters wird in KB angegeben.

      Weitere Informationen zur Konfiguration der maximalen Zeilengröße finden Sie im SAP-Hinweis 1253826.

    • maxLimitErrorInterval : Mit diesem Parameter wird ein spezielles Intervall festgelegt, um das nächste Poll-Intervall im Fehlerfall zu ändern, wenn die maximale Message-Größe für das aktuelle Intervall erreicht wird. Dadurch wird die Systemlast verringert. Der Parameterwert wird in Sekunden angegeben.
      Hinweis

      Zusätzliche Parameter werden in SAP-Hinweis 801367 veröffentlicht.

Beispiel

Das System setzt die Tabelle, die aus der SQL-Anweisung für die Query resultiert, in ein gültiges XML-Dokument um und sendet es an die Integration Engine/das PCK. Das Dokument sieht folgendermaßen aus:

<resultset>

<row>

<column-name1>column-value</column-name1>

<column-name2>column-value</column-name2>

<column-name3>column-value</column-name3>

</row>

<row>

<column-name1>column-value</column-name1>

<column-name2>column-value</column-name2>

<column-name3>column-value</column-name3>

</row>

</resultset>