Show TOC

JDBC-Empfänger-Adapter konfigurierenLocate this document in the navigation structure

Verwendung

Sie konfigurieren den JDBC-Empfänger-Adapter, um damit XML-Messages vom Integration Server oder vom PCK in Inhalte von Datenbanktabellen umzuwandeln.

Vorgehensweise
  1. Das Transportprotokoll heißt JBDC 2.0 .

  2. Wählen Sie das Message-Protokoll .

    • Wählen Sie XML SQL-Format , um Tabellenwerte in eine oder mehrere Tabellen einzufügen, zu ändern oder zu löschen.

      Sie können in der Datenbank vorhandene Stored Procedures mit Übergabeparametern aufrufen. In synchronen Abfragen können auch Ergebnisse von Datenbankabfragen bzw. Rückgabewerte von Stored Procedures übertragen werden.

    • Wählen Sie Nativer SQL-String , um in der Message-Payload eine beliebige SQL-Anweisung anzugeben, die unverändert an die Datenbank zur Verarbeitung übergeben wird.

    Abhängig vom gewählten Message-Protokoll erwartet der Adapter spezielle XML-Dokumentenformate in der Payload der XI-Nachricht.

    Weitere Informationen: XML-Dokumente für Message-Protokoll XML SQL-Format definieren

    XML-Dokument für Message-Protokoll Natives SQL-Format definieren

  3. 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.

1. Datenbankverbingung definieren

  1. Wählen Sie das Register Verbindung .

  2. Geben Sie die Java-Klasse des JDBC-Treibers unter JDBC-Treiber 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. Die Informationen sind in den Unterlagen des entsprechenden Anbieters enthalten.

2. Verarbeitungsparameter definieren

  1. Wählen Sie Registerkarte Verarbeitung .

  2. Geben Sie die maximale Anzahl der Messages an, die parallel vom Empfängerkanal verarbeitet werden sollen.

    Wenn Sie beispielsweise den Wert 2 eingeben, werden zwei Messages parallel verarbeitet. Der Standardwert lautet 1, was bedeutet, dass immer nur eine Message vom Empfängerkanal verarbeitet wird.

3. XML Schema-Interpreter für Message-Protokoll XML SQL-Format definieren

  1. Damit Bedingungen im Key-Tag des XML-Dokuments zwingend vorhanden sein müssen, wählen Sie Key-Tags erforderlich .

  2. Wählen Sie unter Interpretation von leeren String-Werten , wie leere Textfelder zu behandeln sind.

    • NULL-Wert

      Bei INSERT- und UPDATE-Anweisungen werden leere Felder wie NULL-Felder behandelt (nicht vorhanden) und nicht in die Datenbank eingefügt.

    • Leerer String

      Bei INSERT- und UPDATE-Anweisungen werden in die Spalten leere Texte eingefügt.

4. Behandlung von Exactly Once definieren

  1. Geben Sie an, wo die Persistenz für Exactly Once erfolgen soll.

    • Lokal

      Die Behandlung von Messages des Typs Exactly Once erfolgt über die Verwaltung von Statusinformationen für diese Messages im AS Java. Sämtliche Fehlerzustände des Adapters, auch extern eingeleitete Programmabbrüche werden korrekt behandelt.

      Erfolgt während eines Datenbank-Commit ein externer Programmabbruch, ist der Zustand der Message-Verarbeitung zunächst unklar, weil der Zustand der Message erst nach Abschluss des Datenbank-Commit geändert wird. Diese Situation wird bei einem Neustart der Anwendung erkannt.

      Geben Sie die Behandlung der abgebrochenen Message-Verarbeitung unter Konfliktauflösung an.

      Diese Angabe wirkt sich aber nur auf die Behandlung von Fehlern aus, die während einer wiederholten Bearbeitung von Nachrichten auftreten, deren erste Bearbeitung in dem oben beschriebenen unklaren Zustand verblieben war.

      • Fehler

        Tritt bei erneuter Bearbeitung ein Fehler auf, wird er als Fehler an das rufende System zurückgemeldet.

      • Wiederholen

        Mit dieser Einstellung kann die Bearbeitung für den Empfänger-Adapter erfolgreich abgeschlossen werden, wenn der Fehler auftritt, weil die Message beim ersten Mal bereits in der Datenbank gespeichert wurde und sich dort noch befindet. Die Datenbankschnittstelle wird dann den Fehler duplicate insert ausgeben, wenn mindestens ein Tabellenfeld als Primärschlüssel definiert ist. Ohne diese Einstellung wird der Adapter die Message immer wieder erneut verschicken, und der Fehler tritt immer wieder auf.

    • Datenbank

      Ist in der Datenbanktabelle kein Feld Primärschlüssel ausgewiesen, oder wurden die Daten von einer anderen Anwendung bereits weiterverarbeitet und anschließend gelöscht, kann die Nachricht auf diese Weise dupliziert werden, wenn die erste Verarbeitung genau nach dem Datenbank-Commit durch ein irreguläres Beenden des AS Java unterbrochen wurde.

      Diese Lücke kann nur geschlossen werden, wenn sich die Nachrichtenverarbeitung und die Verwaltung der Statusinformationen in der gleichen Datenbank befinden, so dass ein gemeinsamer Commit-Zyklus der Verarbeitungsschritte möglich wird.

      Hierzu muss in der Datenbank, in der die zu schreibende Tabelle liegt, eine zusätzliche Tabelle mit zwei Spalten angelegt werden. Zur Definition der Tabelle machen Sie folgende Angaben:

      • Datenbanktabellenname

        Geben Sie den Tabellennamen ein.

      • Schlüsselspaltenname

        Geben Sie den Namen der Spalte an, in die der Schlüssel eingetragen wird.

      • Wertspaltenname

        Geben Sie den Namen der Spalte ab, in die der Schlüsselwert eingetragen wird.

5. SQL-Syntax-Parameter definieren

  1. Geben Sie das Escape-Symbol für Apostroph an.

    Das Apostrophzeichen ( ' ) ist in der SQL-Syntax ein reserviertes Zeichen und wird durch ein Escape-Zeichen ersetzt, wenn es innerhalb von Wertezeichenketten vorkommt. Diese Ersatzzeichen können datenbankabhängig sein. Typisch sind \ oder " (Vorgabewert). Wird ein für die verwendete Datenbank ungültiges Zeichen verwendet, gibt der Adapter eine Fehlermeldung (SQL-Exception) zur SQL-Syntax aus, die von der Datenbank erzeugt wird.

  2. Geben Sie den Spaltennamenbegrenzer an.

    Abhängig von der Datenbank können Spaltennamen von einem speziellen Abgrenzungszeichen umschlossen sein, beispielsweise wenn Namen Sonderzeichen enthalten dürfen (z. B. ein ").

    Wenn Sie für die verwendete Datenbank ein ungültiges Zeichen verwenden, gibt der Adapter eine Fehlermeldung (SQL-Exception) zur SQL-Syntax aus, die von der Datenbank erzeugt wird.

6. 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 der 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.

7. Adapterstatus definieren

  1. Wählen Sie Registerkarte Erweitert .

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

8. Parameter im Erweiterten Modus definieren

  1. Um zusätzliche Parameter anzugeben, wählen Sie Erweiterter Modus .

  2. Geben Sie unter Anzahl Wiederholungen der Datenbanktransaktion bei SQL-Fehler an, wie oft im Fall einer SQL-Exception die Datenbankverbindung neu aufgebaut und der Zugriff wiederholt werden soll.

    Ist die Anzahl der Wiederholungsversuche überschritten, wird der letzte Zustand an den sendenden Integration Server oder das sendende PCK gemeldet. Im Fehlerfall wird die Message erst dann erneut weiterverarbeitet, wenn sie vom Integration Server/vom PCK erneut versendet wird.

  3. Um festzulegen, wie parallel laufende Transaktionen sich gegenseitig beeinflussen, wählen Sie die Isolationsstufe für Transaktionen .

    Datenbanktransaktionen können in verschiedenen Abstufungen (Isolation Levels) betrieben 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 Isolationsstufe 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.

  4. 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.

  5. 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 .

  6. Wenn SQL-Statements in einem Batch zusammengefasst werden sollen, dann wählen Sie Batch-Verarbeitung .

    Dies kann zu einer erheblichen Performance-Verbesserung führen. Es ist möglich, dass nicht jeder verfügbare JDBC-Treiber eine Batch-Verarbeitung unterstützt.

    Die Batch-Verarbeitung wird für folgende Anweisungen nicht unterstützt:

    • SELECT

    • UPDATE_INSERT

    • EXECUTE

    • SQL_QUERY

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

    Hinweis

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

  8. Geben Sie Datums- und Zeitformate für Stored-Procedures-Aufrufe an.

    Der Format-String entspricht dem der Java-Klasse java.text.SimpleDateFormat :

    Buchstabe

    Datums- oder Zeitkomponente

    Typ

    Beispiele

    G

    Epochenbezeichner

    Text

    G = AD

    y

    Jahr

    Jahr

    yyyy = 1996; yy = 96

    M

    Monat im Jahr

    Monat

    MMMM = Juli, MMM = Jul, MM = 07

    w

    Woche im Jahr

    Zahl

    27

    W

    Woche im Monat

    Zahl

    2

    D

    Tag im Jahr

    Zahl

    186

    d

    Tag im Monat

    Zahl

    10

    F

    Wochentag im Monat

    Zahl

    2

    E

    Tag in der Woche

    Text

    Dienstag; Di

    a

    Kennzeichen am/pm

    Text

    PM

    H

    Stunde am Tag (0-23)

    Zahl

    0

    k

    Stunde am Tag (1-24)

    Zahl

    24

    K

    Stunde am am/pm (0-11)

    Zahl

    0

    h

    Stunde am am/pm (1-12)

    Zahl

    12

    m

    Minute in der Stunde

    Zahl

    30

    s

    Sekunde in der Minute

    Zahl

    55

    S

    Millisekunde

    Zahl

    978

    z

    Zeitzone

    Allgemeine Zeitzone

    Pacific Standard Time; PST; GMT-08:00

    Z

    Zeitzone

    RFC 822-Zeitzone

    -0800

    Beispiel

    dd.MM.yyyy enspricht z.B. 10.07.2005

    hh.mm entspricht z.B. 09.12

    K:mm a entspricht z.B. 0:30 PM