Anfang des Inhaltsbereichs

Funktionsdokumentation JDBC-Sender-Adapter konfigurieren  Dokument im Navigationsbaum lokalisieren

Verwendung

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

Arbeitsweise des Adapters

      Sie müssen in der Datenbanktabelle ein Kennzeichen einführen, das den Verarbeitungsstatus jedes Datensatzes im Adapter (Datensatz ist verarbeitet/Datensatz ist nicht verarbeitet) angibt.

      Die UPDATE-Anweisung muss genau die Datensätze verändern, die durch die SELECT-Anweisung ausgewählt worden sind. Dies können Sie über eine identische WHERE-Klausel sicherstellen. (Siehe unten unter Verarbeitungsparameter, SQL-Anweisung für Query und SQL-Anweisung für Update.)

      Eine korrekte Verarbeitung erfolgt nur dann, wenn die Isolationsstufe für die Transaktion auf repeatable_read oder serializablegesetzt ist.

Beispiel

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.

Integration

Die Adapterkonfiguration ist Teil der Festlegung eines Kommunikationskanals im Integration Server oder im PCK und wird auf dem Registerblatt Parametervorgenommen. Zusätzlich zur Adapterkonfiguration können auf der Registerkarte Module im Modul-Prozessor  generische Module angegeben werden, die den Adapter mit Zusatzfunktionen ausstatten.

Bedingung für Sendervereinbarung

Der Adapter ermittelt gemäß seiner Konfiguration die Payload der XI-Message. Die Informationen des Message-Header werden dagegen aus der zum Kommunikationskanal gehörenden Sendervereinbarung ermittelt.

Für die Definition der Sendervereinbarung ergeben sich für den Adapter folgende Bedingungen:

      Es muss genau eine Sendervereinbarung für den hier definierten Kommunikationskanal geben.

      In der Sendervereinbarung müssen mindestens der Interface-Name und der Sender-Service qualifiziert sein. Alle anderen Felder sind entsprechend den allgemeinen Regeln zur Definition von Sendervereinbarungen optional.

Voraussetzungen

       1.      Sie haben einen Kommunikationskanal angelegt oder einen bestehenden Kommunikationskanal geöffnet.

       2.      Sie haben auf der Registerkarte Parameter den Adaptertyp JDBCausgewählt.

       3.      Sie haben den Adapter über den Auswahlknopf Sender als Sender-Adapter definiert.

Aktivitäten

Transport-Protokoll

Das Transport-Protokoll heißt JBDC 2.0.

Message-Protokoll

JDBC

In zukünftigen Versionen können weitere Werte hinzukommen.

Adapter-Engine

Wählen Sie die Adapter-Engine auf dem Integration Server oder eine dezentral installierte Adapter-Engine aus. Diese Auswahl ist im PCK nicht möglich.

Registerkarte Verbindung

Datenbankverbindung

Feld

Eingabe

JDBC-Treiber

Java-Klasse des JDBC-Treibers, die der JDBC-Adapter laden muss, um auf den Treiber zugreifen zu können.

Die Angabe variiert je nach JDBC-Treiber und muss aus den Unterlagen des jeweiligen Anbieters hervorgehen.

Verbindung

Adresse, unter der über den JDBC-Treiber eine Datenbankverbindung geöffnet werden kann.

Die Angabe variiert je nach JDBC-Treiber und muss aus den Unterlagen des jeweiligen Anbieters hervorgehen.

Benutzername

Benutzer für die zu lesende Datenbank.

Kennwort

Kennwort für die zu lesende Datenbank mit Bestätigung.

Registerkarte Verarbeitung

Geben Sie folgende Parameter an:

Parameter

Eingabe

Quality-of-Service

Gibt an, wie eine Message durch den Integration Server/das PCK verarbeitet werden soll.

Best Effort

(synchrone Verarbeitung)

Exactly Once

(asynchrone Verarbeitung)

Exactly Once In Order

(Asynchrone Verarbeitung mithilfe von Queues. Dies bedeutet die einmalige Ausführung unter Beibehaltung der Reihenfolge aufeinander folgender Nachrichten.)

Geben Sie den Queue-Namen an.

Poll-Intervall (Sek.)

Anzahl der Sekunden, die der Adapter warten soll, wenn keine Dateien zur Verarbeitung gefunden werden.

Poll-Intervall (mSek.)

Zusätzliche Wartezeit in Millisekunden.

Wenn Poll-Intervall (Sek.) auf Null gesetzt ist, lassen sich kurze, echtzeitnahe Verarbeitungszeiten erreichen.

Sind Poll-Intervall (Sek.) und Poll-Intervall (mSek.) auf Null gesetzt, so findet ein einmaliger Aufruf des Adapters statt.

Wiederholungsintervall (Sek.)

Anzahl der Sekunden, die der Adapter warten soll, bis eine fehlerhaft verarbeitete SQL-Anweisung erneut verarbeitet wird.

Hinweis

Falls keine Angabe erfolgt, dann wird der Wert unter Poll-Intervall (Sek.) genommen.

SQL-Anweisung für Query

Es gibt folgende Möglichkeiten:

      Geben Sie eine gültige SQL SELECT-Anweisung an, um die zu versendenden Daten aus der spezifizierten Datenbank auszuwählen.

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

Der Ausdruck muss der vom jeweiligen JDBC-Treiber unterstützten SQL-Variante entsprechen. Er kann auch Tabellen-JOINs enthalten.

Dokumentname

Dieser Dokumentname wird in der Message als Haupt-XML-Tag eingefügt. Der Vorgabewert ist resultset.

Dokumentnamensraum

Der Namensraum wird dem Dokumentnamen hinzugefügt.

Beispiel

Siehe das Beispiel unten.

SQL-Anweisung für Update

Es gibt folgende Möglichkeiten:

      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.

      Anstelle der SQL-Anweisung kann <TEST> eingegeben werden. Nach erfolgreichem Versenden der unter SQL-Anweisung für Query ermittelten Daten bleiben die Daten in der Datenbank unverändert.

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 ausführen

      Befehlszeile

Geben Sie einen Betriebssystembefehl an, der nach erfolgreichen Datenbankoperationen ausgeführt wird.

      Zeitüberschreitung (Sek.)

Geben Sie hier die maximale Laufzeit des auszuführenden Programms in Sekunden an. Nach Ablauf der Zeitspanne fährt der Adapter mit der Verarbeitung fort. Das ausführbare Programm läuft im Hintergrund weiter.

      Programm nach Zeitüberschreitung beenden

Setzen Sie das Kennzeichen, wenn der Adapter nach Ablauf der Zeitüberschreitung das auszuführende Programm abbrechen soll.

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

Hinweis

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

Registerkarte Erweitert

Adapterstatus

Setzen Sie den Adapter auf Aktiv, um ihn für den Message-Austausch einzusetzen.

Erweiterter Modus

Um zusätzliche Parameter für die Adapterkonfiguration anzugeben, setzen Sie das Kennzeichen Erweiterter Modus.

Isolationsstufe für Transaktion

Datenbanktransaktionen können in verschiedenen Abstufungen (Isolationsstufen) betrieben werden. Die Isolationsstufe legt fest, wie parallel laufende Transaktionen sich gegenseitig beeinflussen. 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

Die Isolationsstufe sollte nur bei Bedarf und nur so weit wie nötig reduziert werden. Es muss dann aber anderweitig sichergestellt werden, dass keine Dateninkonsistenzen in der Datenbank erzeugt werden können, d.h. in der Regel müssen parallele Zugriffe unterbunden werden.

Auto-Commit für Datenbank aktiviert (keine Transaktionssicherheit)

Setzen Sie das Kennzeichen, wenn die Transaktionsklammer, die der JDBC-Adapter benötigt, um die Datenkonsistenz in der Datenbank sicherzustellen, abgeschaltet werden soll.

Diese Option wird für JDBC-Treiber benötigt, die keine Transaktionen unterstützen. Es muss dann aber anderweitig sichergestellt werden, dass keine Dateninkonsistenzen in der Datenbank erzeugt werden können, d.h. in der Regel müssen parallele Zugriffe unterbunden werden.

Achtung

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

Nach Verarbeiten jeder Message Verbindung zur Datenbank aufheben

Setzen Sie das Kennzeichen, wenn vor jedem Poll-Intervall die Datenbank-Verbindung freigegeben und anschließend neu aufgebaut werden soll.

Leere Tags entfernen

Setzen Sie dieses Kennzeichen, wenn Sie leere Tags aus der Ergebnismenge des Sender-Adapters entfernen und so die Größe des XML-Dokuments reduzieren möchten.

Diese Grafik wird im zugehörigen Text erklärt

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>

Tabelle

Geben Sie die Parameternamen und -werte in der Tabelle an.

Hinweis

Zusätzliche Parameter werden über 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 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>

 

 

 

 

Ende des Inhaltsbereichs