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:
|
Parameter
Adapter | Hauptklasse des Adapters (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter.jdbc.JdbcIterator : Hauptklasse (Standard) |
JndiName | JNDI-Name der DataSource
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:
Spaltenname, die keine gültigen Elementnamen ( |
connectionURL | Verbindungs-URL für die JDBC-Datenbank
Mögliche Werte:
|
user | Benutzername zur Authentifizierung bei Verwendung des Parameters connectionURL |
password | Passwort zur Authentifizierung bei Verwendung des Parameters connectionURL |
CommitMode | Steuert, welche Variante für Commits verwendet werden soll Mögliche Werte:
|
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 Mögliche Werte:
|
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 Wenn die eingegebene Zahl kleiner |
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:
|
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.