Skip to main content
Skip table of contents

JDBC Iterator

Der Adapter stellt eine Verbindung zu einer JDBC-kompatiblen Datenbank her und führt ein oder mehrere Datenbank-Statements aus, die als Input-XML-Dokument mit adapterspezifischen Strukturen übergeben wurden. Der Iterator ruft die Daten blockweise ab und stellt diese auch blockweise zur Verarbeitung bereit. Dabei bleibt die Datenbankverbindung solange offen, bis alle Daten abgerufen wurden.

Voraussetzung ist eine im Applikations-Server bereitgestellte JDBC-DataSource, für welche die Verbindungs-URL, Zugangsdaten, Schema sowie Transaktionsverhaltensweisen etc. definiert wurden. Nähere Informationen zum Bereitstellen von JDBC-DataSources entnehmen Sie der Dokumentation Ihres Applikations-Servers.

Eigenschaften (Properties)

Operation

Bestimmt, welche Operation der Funktions-Adapter durchführt

Mögliche Werte:

  • Iterate: Datenmenge abhängig von dem im Parameter fetchSize angegebenen Wert aus der Datenbank auslesen und in einem Ergebnis-Dokument ausgeben
  • Clean: Iterator eines JDBC Iterators zurücksetzen, der dieselbe ID besitzt wie der gewünschte JDBC Iterator mit der Operation Iterate (siehe Parameter id)

Parameter

Adapter

Hauptklasse des Adapters (nicht verändern!)

Mögliche Werte: de.softproject.integration.adapter.jdbc.JdbcIterator : Hauptklasse (Standard)

JndiName

JNDI-Name der DataSource

(info) Wird die Verbindung über den JNDI-Namen hergestellt, darf der Parameter connectionURL nicht ausgefüllt werden. 

Mögliche Werte: Gültiger JNDI-Name (z. B. java:/DefaultDS )

ColumnCase

Steuert wie die Spaltennamen ins Ergebnis übernommen werden. Da Datenbanken unterschiedliches Verhalten betreffend der Groß-/Kleinschreibung von Spaltennamen haben, kann man hiermit die Weiterverarbeitung des Ergebnisses unabhängig vom Datenbankverhalten machen.

Mögliche Werte:

  • NO_CHANGE: Ändert die Spaltennamen nicht, d.h. die Schreibweise im Ergebnis ist exakt wie von der Datenbank geliefert (Standard)

  • TO_LOWER: Ändert die Spaltennamen auf Kleinbuchstaben
  • TO_UPPER: Ändert die Spaltennamen auf Großbuchstaben

Spaltenname, die keine gültigen Elementnamen (NCNAME)  darstellen, werden durch _<number> (e. g. _2 ) ersetzt, wo <number> der Index der Spalte ist.

connectionURL

Verbindungs-URL für die JDBC-Datenbank

(info) Wird die Verbindung über die Verbindungs-URL hergestellt, darf der Parameter JndiName nicht ausgefüllt werden. 

Mögliche Werte:

  • Die Art des Aufbaus hängt von der Datenbank ab, zu der eine Verbindung aufgebaut werden soll.
  • Beispiel für sqlite: jdbc:sqlite:C:/Temp/mydatabase.db
userBenutzername zur Authentifizierung bei Verwendung des Parameters connectionURL
passwordPasswort zur Authentifizierung bei Verwendung des Parameters connectionURL
CommitMode

Steuert, welche Variante für Commits verwendet werden soll

Mögliche Werte:

  • NONE: Keinen Commit durchführen

  • AUTO: Automatischer Commit gemäß JDBC-API (d. h. nach jedem Batch) (Standard)

  • STATEMENT: Explizites Commit nach jedem Statement (d. h. nach allen Batches für dieses Statement)

  • DOCUMENT: Am Ende des Dokuments (d. h. nach Ausführung aller Statements)

  • MANAGED: Adapter in Transaktionen nutzen (für extern verwaltete Transaktionen)

AddMetaDataForQueries

Steuert, ob Datenbank-Metadaten, siehe JDBC Metadata Explorer, zu jedem Result Set im Ergebnis-XML-Dokument des Adapters ausgegeben werden sollen, wenn der Adapter eine SQL-Abfrage ausführt (nicht der Fall bei UPDATE, DELETE etc.). Im Batch-Modus (StatementBatch, PreparedStatementBatch und CallableStatementBatch) ist dies ebenfalls nicht möglich.

Mögliche Werte:

  • ja: Dem Ergebnisdokument Datenbank-Metadaten hinzufügen

  • nein: Ergebnisdokument ohne Datenbank-Metadaten ausgeben (Standard)

fetchSize

Durch die Eingabe einer positiven ganzen Zahl lässt sich die Anzahl der Ergebnisse pro Abfrage beschränken. Sind Daten vorhanden, wird der Status 1 geliefert, ist das Ergebnis leer, wird der Status 0 ausgegeben.

Wenn die eingegebene Zahl kleiner 1 ist, werden alle Daten ausgegeben.

id

Eindeutige ID des JDBC Iterator-Bausteins innerhalb des Prozess-Kontextes bzw. der Prozess-Instanz (wenn Sie mehrere voneinander unabhängig iterierende JDBC Iteratoren in demselben Prozess-Kontext verwenden möchten);

Mögliche Werte:

  • 0 : Aktuelle Action-ID (Nummer des Prozess-Schritts des JDBC Iterators im aktuellen Prozess) als ID verwenden; Beachten Sie hierbei, dass ein JDBC Iteratorin einem Subprozess die gleiche Action-ID besitzen könnte (Standard)

  • Beliebige ganze Zahl außer 0, um den jeweiligen JDBC Iterator-Baustein innerhalb des Prozess-Kontextes eindeutig zu kennzeichnen; Empfehlung: einen Wert >1000 verwenden, um nicht zufällig eine bereits bestehende Action-ID zu verwenden.

Statuswerte

1

Die Abfrage hat Datensätze geliefert bzw. die Anweisung hat Datensätze geändert

Der Status 1 wird geliefert, wenn mehrere Abfragen bzw. Anweisungen im Dokument enthalten sind und mindestens eine Abfrage ein Ergebnis geliefert oder verändert hat. Der Adapter gibt diesen Status solange zurück, solange noch Datenblöcke zur Verarbeitung vorhanden sind.

0

Die Abfrage hat keine Ergebnisse geliefert oder die Anweisung hat keine Datensätze geändert

Der Status 0 wird geliefert, wenn mehrere Abfragen bzw. Anweisungen im Dokument enthalten sind und keine Abfrage ein Ergebnis geliefert oder verändert hat.

-1

Technischer Fehler: genauere Informationen zur Fehlerursache entnehmen Sie dem Server-Log

Input

Der JDBC Iterator erwartet spezifische Input-XML-Strukturen, die Datenbank-Statements enthalten. Diese Input-XML-Strukturen können über XSL-Mappings in Abhängigkeit von den verarbeiteten XML-Daten dynamisch generiert werden.

Falls Sie innerhalb der SQL-Anweisung oder für die Werte bzw. Daten der Tabellenspalten Zeichen verwenden, die in XML eine Bedeutung besitzen, maskieren Sie die SQL-Anweisung mit einem umgebenden CDATA -Block, z. B. <![CDATA[ UPDATE PROCESS SET X4_VERSION=4 WHERE X4_DURATION=100 ]]> oder <rowset><row><Name><!CDATA[ XML Zeichen “<“ in CDATA Element]]></Name></row></rowset>.

So wird sichergestellt, dass die Zeichen im CDATA-Element nicht als XML interpretiert werden, sondern als Daten für den Adapter.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.