
Sie konfigurieren den JDBC-Sender-Adapter, um damit Inhalte von Datenbanken an die Integration Engine zu verschicken.
Die Konfiguration besteht im Wesentlichen aus der Angabe
Dieser Treiber gehört nicht zum Lieferumfang des Adapters sondern muss vom Datenbankhersteller oder Drittanbietern geliefert werden.
Sie haben
Für den JDBC-Sender-Adapter besteht die Konfiguration aus vier funktionalen Teilbereichen:
Geben Sie den Namen der Klasse folgendermaßen an:
com.sap.aii.messaging.adapter.ModuleDB2XMB
Diese Angabe ist zwingend.
30
Diese Angabe ist zwingend. Fehlt die Angabe, wird die Konfiguration als XI 2.0 Adapter-Konfiguration interpretiert. Andere Werte sind nicht zulässig und werden als Fehler ausgegeben.
Geben Sie den Modus des JDBC-Sender-Adapters an. Der einzige erlaubt Wert ist
DB2XMB
In zukünftigen Versionen können weitere mögliche Werte dazukommen.
Der JDBC-Sender-Adapter bietet einen Dispatcher an, mit dem Sie Messages vor dem Verschicken konvertieren können. Die für den Dispatcher notwendigen Einstellungen werden anhand eines konkreten Beispiels erklärt.
Geben Sie die vollständige Adresse (URL) der Integration Engine ein, an die die Message geschickt werden soll:
http://IntegrationEngineHost:port/pipeline-arguments
Diese Angabe ist zwingend.
Die Adresse der Integration Engine kann auch dynamisch aus dem System Landscape Directory (SLD) ermittelt werden. Hierzu wird in der Konfiguration folgender Eintrag hinzugefügt:
XI.SLDConfiguration=SLDaccessor
XI.SenderServiceXI.TargetURL
XI.TargetURL=<fromSLD>
Damit der Zugriff funktioniert, muss der Dienst SLDaccessor für den Zugriff ins SLD konfiguriert sein, und die entsprechenden Einträge müssen im SLD gepflegt sein.
Ist der Integration Server nicht direkt, sondern über einen HTTP-Proxy-Server zu erreichen, müssen folgende Parameter gesetzt werden:
XI.proxyHost=< proxyHostname>
XI.proxyPort=< proxyPortnumber>
8080
Wurde für die angegebene URL (HTTP-Service) in der Integration Engine eine Authentifizierung spezifiziert, sind die folgenden Angaben zwingend:
Die Angaben müssen mit denen übereinstimmen, die Sie in der Transaktion SICF in der Integration Engine gemacht haben. Falls Sie keine oder eine ungültige Kombination von Benutzer und Passwort angeben, wird jeder Übertragungsversuch in die Integration Engine mit Transport Exception: http-Error 401 - Unauthorized scheitern.
Der Benutzer muss im Integration Server über die Berechtigungen der Gruppe SAP_XI_APPL_SERV_USER verfügen.
Informationen zur Konfiguration der SSL-Authentifizierung mit Zertifikat finden Sie unter: Zertifikatverwaltung , dort unter Adapter Engine als SSL-Client einrichten
Soll bei der Anmeldung ein anderer Mandant bzw. eine andere Sprache als die Default-Werte der Integration Engine verwendet werden, können Sie zusätzlich die folgenden Parameter setzen:
Die folgenden Adress-Argumente für das Sendersystem (also den JDBC-Adapter) sind zwingend. Sie dienen der Identifikation der Adapter-Konfiguration beim Routing und Mapping in der Pipeline der Integration Engine. Dort ist auch die Bedeutung der einzelnen Argumente beschrieben.
XI.SenderParty=<sender party name>
name>
namespace URI>
name>
XI.ReceiverParty=<receiver party name>
name>
XI.SenderServiceXI.InterfaceXI.InterfaceNamespace
QualityOfService>
Gibt an wie eine Message durch die Integration Engine verarbeitet werden soll. Erlaubte Werte sind:
BE
EO
EOIO
EOIO
QueueName>
Dieser Queue-Name wird in der Integration Engine verwendet, um Nachrichten in der Reihenfolge ihres Eingangs zu bearbeiten.
>
Geben Sie die Java-Klasse des JDBC-Treibers an, die der JDBC-Adapter laden muss, um auf den Treiber zugreifen zu können. Die genaue Angabe variiert je nach JDBC-Treiber und muss aus den Unterlagen des jeweiligen Anbieters hervorgehen. Die Angabe ist zwingend.
>
Geben Sie die Adresse an, unter der über den JDBC-Treiber eine Datenbankverbindung geöffnet werden kann. Das genaue Format der Adresse kann variieren und muss aus den Unterlagen des jeweiligen Anbieters hervorgehen. Die Angabe ist zwingend.
Anstelle der Datenbankanmeldung innerhalb der mit dem Parameter db.connectionURL spezifizierten Zeichenkette kann auch die Datenbankanmeldung mit Benutzer und Kennwort explizit angegeben werden. Dadurch wird im JDBC-Adapter anstelle des JDBC-Aufrufs getConnection(url) der Aufruf(url,user,password) ausgeführt, der von manchen Datenbanksystemen erwartet bzw. anders behandelt wird.
YESNO
>
Geben Sie entweder eine gültige SQL SELECT-Anweisung an zur Auswahl der zu verschickenden Daten aus der spezifizierten Datenbank, oder eine SQL EXECUTE-Anweisung zur Ausführung einer Stored Procedure, die genau eine SELECT-Anweisung enthält. Der Ausdruck muss nur der vom jeweiligen JDBC-Treiber unterstützten SQL-Variante entsprechen, kann also auch zum Beispiel Tabellen-JOINs enthalten. Die Angabe ist zwingend.
>
<TEST>
<TEST>
db.pollInterval
Im Modus Exactly Once erfolgt die Ausführung der unter db.processDBSQLStatement und db.confirmDBSQLStatement angegebenen Anweisungen sowie das Aufbereiten der Nachricht innerhalb einer Datenbanktransaktion. Das Versenden der Nachricht erfolgt anschließend. Die Nachricht wird hierbei temporär im Verzeichnis/Data der Adapter-Engine als Datei persistiert, bis das Versenden der Nachricht zum Integration Server erfolgreich war.
Ein hier spezifiziertes Betriebssystemkommando wird nach erfolgreichen Datenbankoperationen (Statements PROCESS und CONFIRM) ausgeführt. Der Vorschlagswert ist eine leere Zeichenkette (kein Kommando).
Geben Sie die Anzahl an Sekunden an, die der Adapter warten soll, bevor er das db.processDBSQLStatement erneut aufruft.
Die Angabe ist zwingend. Optional können Sie zusätzlich den folgenden Parameter angeben, um eine zusätzliche Wartezeit in Millisekunden anzugeben:
db.pollIntervalMsecs=
db.pollInterval
Der Vorschlagswert für diesen Parameter ist 0.
db.pollIntervaldb.pollIntervalMsecs
0ANGEHALTEN
Geben Sie die Anzahl an Sekunden an, die der Adapter warten soll, bis ein fehlerhaft verarbeitetes SQL-Statement erneut verarbeitet wird.
Als Voreinstellung wird der Wert von db.pollInterval übernommen. Ist dieser Wert 0 (findet also keine Wiederholung der Verarbeitung stattfindet), wird auch keine erneute Verarbeitung von fehlerhaft verarbeiteten SQL-Statements vorgenommen.
Ist db.retryInterval gleich 0, wird im Fehlerfall der Adapter beendet, auch wenn für db.pollInterval ein Wert größer 0 angegeben wurde. In diesem Fall verbleibt der Adapter zwar im Status GESTARTET muss aber über Anhalten/Starten bzw. Neu starten erneut gestartet werden, um eine erneute Verarbeitung zu initiieren.
db.logPollInterval=NO
db.logPollInterval=YES
Vor jedem Poll-Intervall wird die Datenbankverbindung freigegeben und anschließend neu aufgebaut.
Der Vorschlagswert ist NO .
Die Transaktionsklammer, die der JDBC-Adapter benötigt um konsistente Daten in der Datenbank sicherzustellen, kann mit diesem Parameter abgeschaltet werden. 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, das heißt, in der Regel müssen parallele Zugriffe unterbunden werden.
Der Vorschlagswert ist NO .
Dieser Parameter darf keinesfalls auf YES gesetzt werden, wenn der JDBC-Treiber Transaktionen unterstützt, das heißt, wenn im Normalbetrieb keine entsprechende Fehlermeldung erscheint.
Datenbanktransaktionen können in verschiedenen Abstufungen (Isolation Levels) betrieben werden. Der JDBC-Adapter verwendet standardmäßig die höchste Isolierungsstufe, um Datenbankinkonsistenzen durch parallele Datenbanktransaktionen zu vermeiden. Bei einigen JDBC-Treibern kann eine Reduzierung dieses Level notwendig sein, wenn der Treiber bzw. das Datenbankprodukt diesen Level nicht unterstützt. Eine Reduzierung des Level kann zu Lasten der Transaktionssicherheit und damit der Datenintegrität gehen und sollte nur wenn nötig angewendet werden. Die oben aufgeführten Werte entsprechen den folgenden JDBC-Konstanten:
Ist der Parameter nicht gesetzt, dann ist der Vorgabewert der angeschlossenen Datenbank wirksam.
Der Level sollte nur wenn nötig und nur so weit wie benötigt reduziert werden. Gegebenenfalls muss dann aber anderweitig sichergestellt werden, dass keine Dateninkonsistenzen in der Datenbank erzeugt werden können, das heißt, in der Regel müssen parallele Zugriffe unterbunden werden.
resultset
Wenn angegeben, wird der Namensraum an den Namen des Dokuments angehängt.
db.stopMode= 0|1
Der Vorschlagswert ist 0.
Die aus dem db.processDBSQLStatement erhaltene Tabelle wird in ein gültiges XML-Dokument konvertiert und in dieser Form an die Integration Engine geschickt. Das Dokument hat folgendes Aussehen:
<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>
Dieses Dokumentenformat kann dann durch die Integration Engine weiterverarbeitet werden.