SapConnectionService
Der SAPConnectionService stellt Verbindungen zu SAP-Systemen über einen ähnlichen Mechanismus zur Verfügung, wie der DatabaseService. Das heißt, Verbindungen werden durch Aliase repräsentiert und aufrechterhalten, wenn sie eine gewisse Zeit ungenutzt bleiben.
Für den Betrieb ist der SAP-eigene JCo-Treiber notwendig, der per JNI funktioniert und daher nur auf einer eingeschränkten Anzahl von Plattformen lauffähig ist. Dies sind derzeit unter anderem die folgenden.
MS-Windows-Systeme ab Version 2000.
Linux.
Solaris.
Neben der reinen Verbindungshaltung, das den Integration Server als Client zu einem SAP-System definiert, ist es ebenso möglich ALE-Szenarien zu realisieren. Hierzu besteht die Möglichkeit, sogenannte RequestListener zu benennen, die auf eingehende Anfragen des angebundenen SAP-Systems reagieren und z. B. IDocs für die Weiterverarbeitung an nachfolgende Prozesse weiterreichen.
XML-Konfiguration
Wichtiger Hinweis: Die Verfügbarkeit eines Services hängt von der erworbenen Lizenz ab und davon, ob der Service innerhalb der Konfigurationsdatei ./etc/factory.xml der Service-Factory eingetragen wurde (Änderungen erfordern Server-Neustart!). Dort finden Sie auch die zuständige Konfigurationsdatei für einen Service, ansonsten können Sie die Konfigurationsdatei des Services auch direkt in der GUI des Services bearbeiten (Änderungen erfordern Service-Neustart!).
Folgendes XML-Fragment mit allen möglichen Basiseinstellungen kann für die Konfiguration des SAPConnectionServices verwendet werden.
<
Set
name
=
"idleTime"
>20000</
Set
>
<
Set
name
=
"rebuildConnectionOnRecycle"
type
=
"boolean"
>true</
Set
>
<
Set
name
=
"transactionJdoAlias"
>hub</
Set
>
<
Set
name
=
"transactionJdoServiceName"
>JDOService</
Set
>
Dabei haben die einzelnen Parameter die folgende Bedeutung.
idleTime |
Die Zeit in Millisekunden, die zwischen zwei Überprüfungen der Gültigkeit der Verbindungen im Pool gewartet werden soll. |
rebuildConnectionOnRecycle |
Ist dieser Wert auf true gesetzt, versucht der Service, Verbindungen sofort wieder aufzubauen, wenn diese als nicht mehr gültig verworfen wurden, sofern die Poolgröße die Initialgröße unterschreitet. Dieses Vorgehen macht in Verbindung mit der Verwendung eines RequestListeners Sinn, um sicherzustellen, dass immer eine Verbindung zum SAP-System vorhanden ist, über die Daten vom SAP-System zum Integration Server übertragen werden können. |
transactionJdoAlias |
Datenbank-Alias für die Speicherung und dem Nachvollziehen von Transaktions-IDs. Diese Funktionalität ist noch nicht aktiv. Jedoch besteht bereits die Möglichkeit, die entsprechenden Einstellungen vorzunehmen. |
transactionJdoServiceName |
Der Name des JDOServices für die Speicherung und das Nachvollziehen von Transaktions-IDs. Diese Funktionalität ist noch nicht aktiv. Jedoch besteht bereits die Möglichkeit, die entsprechenden Einstellungen vorzunehmen. |
Hinzufügen einer SAP-Verbindung
Folgendes XML-Fragment fügt eine neue SAP-Verbindung zum Pool des SAPConnectionServices hinzu.
<
call
name
=
"initPool"
>
<
Arg
>
<
New
class
=
"com.ebd.hub.services.sap.SapSettings"
>
<
Set
name
=
"alias"
>sap</
Set
>
<
Set
name
=
"client"
>100</
Set
>
<
Set
name
=
"host"
>127.0.0.1</
Set
>
<
Set
name
=
"language"
>DE</
Set
>
<
Set
name
=
"user"
>BCUSER</
Set
>
<
Set
name
=
"password"
>MINISAP</
Set
>
<
Set
name
=
"system"
>00</
Set
>
<
Set
name
=
"minSize"
>2</
Set
>
<
Set
name
=
"maxSize"
>10</
Set
>
<
Set
name
=
"allowGrowing"
>False</
Set
>
<
Set
name
=
"idleTime"
>300000</
Set
>
<
Set
name
=
"checkConnection"
>300000</
Set
>
<
Set
name
=
"numberRetries"
>5</
Set
>
<
Set
name
=
"retryWaitTime"
>10000</
Set
>
[Evtl. Einstellungen fuer hinzuzufuegende RequestServer]
</
New
>
</
Arg
>
[Evtl. Einstellungen fuer hinzuzufuegende RequestListener]
</
call
>
Dabei haben die einzelnen Parameter die folgende Bedeutung.
client |
Die Client-ID, mit der das SAP-System kontaktiert werden soll (z. B. 100). |
host |
Der Hostname des zu kontaktierenden SAP-Systems, bzw. der Connectstring, wenn die Verbindung über ein Gateway laufen soll. |
language |
Die zu verwendende Sprache. |
user |
Der Benutzername mit dem sich der SAPConnectionService beim SAP-System authentifizieren soll. |
password |
Das Passwort, mit dem sich der SAPConnectionService beim SAP-System authentifizieren soll. |
system |
Die System-ID, mit der das SAP-System kontaktiert werden soll (z. B. 00). |
minSize |
Die anfängliche Größe des Pools, der beim Starten des SAPConnectionServices aufgebaut werden soll. |
maxSize |
Die maximale Größe des Pools. Wird diese Einstellung weggelassen oder -1 angegeben, wird der Systemstandard verwendet. |
allowGrowing |
Wird dieser Punkt aktiviert, darf der SAPConnectionService neue Verbindungen zum SAP-System aufbauen, wenn zum Bedarfszeitpunkt keine freien Verbindungen zur Verfügung stehen. |
idleTime |
Zeit in Millisekunden, die eine Verbindung unbenutzt sein muss, bevor deren Gültigkeit vom SAPConnectionService überprüft wird. |
checkConnection |
Wird dieser Punkt ausgewählt, wird vor jedem Herausgeben der Verbindung überprüft, ob diese tatsächlich noch gültig ist. |
numberRetries |
Anzahl der Versuche eine Verbindung aufzubauen, bevor der Abbruch mit einer Fehlermeldung erfolgt. Achtung: Liegt der Fehler des Verbindungsaufbaus an fehlerhaften Benutzerdaten, kann dies schnell zur Sperrung des Benutzers führen. |
retryWaitTime |
Zeit, die zwischen zwei Verbindungsversuchen gewartet werden soll. |
Achtung: Bei älteren SAP-Systemen ist bei der Angabe des Passworts darauf zu achten, dass dies in Großbuchstaben erfolgen muss. Ist das nicht der Fall, wird der Versuch vom SAP-System abgelehnt und führt früher oder später zur Sperrung des Benutzers.
Hinzufügen eines RequestListeners
Folgendes XML-Fragment fügt einer SAP-Verbindung einen RequestListener hinzu, der auf eingehende Anfragen des angebundenen SAP-Systems reagiert.
<
Call
name
=
"addRequestListener"
>
<
Arg
>alias</
Arg
>
<
Arg
>
<
New
class
=
"klassenname"
>
</
New
>
</
Arg
>
</
Call
>
Dabei ist alias der SAP-Alias der Verbindung und klassenname der Name der Klasse, die als RequestListener fungieren soll.
Allgemeine Einstellungen
(1) Die Zeit in Millisekunden, die zwischen zwei Überprüfungen der Gültigkeit der Verbindungen im Pool gewartet werden soll.
(2) Wird dieser Punkt ausgewählt, wird vor jedem Herausgeben der Verbindung überprüft, ob diese tatsächlich noch gültig ist.
Verfügbare SAP-Verbindungen
(1) Liste der verfügbaren SAP-Verbindungen. Angezeigt werden der Alias, ob die Verbindung suspendiert ist (4), die Anzahl der Verbindungen im Pool, und die Gesamtanzahl der aktiven Verbindungen.
(2) Über das Kontextmenü können Verbindungen angezeigt (siehe nächsten Abschnitt), entfernt und hinzugefügt werden.
(3) Anzeige der Verbindungsinformationen (Attribute und Properties der Client-Verbindungen und des Request-Servers).
(4) Hier kann ein Alias suspendiert und die Suspendierung wieder aufgehoben werden. Der Status wird in (1) angezeigt. Eine Suspendierung bedeutet, dass alle Verbindungen zu diesem SAP-System beendet werden. Profile, die auf einen suspendierten SAP-Alias zugreifen wollen, enden mit Fehler und müssen gegebenenfalls später neu ausgeführt werden.
(5) Hiermit kann man RFC-Metadaten von einem angebundenen SAP-System abfragen. Das Ergebnis ist eine HTML-Seite, die alle Eingangs- und Ausgangsparameter enthält. Siehe auch Abschnitt SAP RFC.
Einstellungen SAP-Alias
(1) Name des Aliases. Der Name muss eindeutig sein.
(2) Die initiale Poolgröße.
(3) Die maximale Poolgröße.
(4) Zeit in Millisekunden, die eine Verbindung unbenutzt sein muss, bevor deren Gültigkeit vom SAPConnectionService überprüft wird.
(5) Anzahl der Versuche eine Verbindung aufzubauen, bevor der Abbruch mit einer Fehlermeldung erfolgt und Zeit in Millisekunden, die zwischen zwei Verbindungsversuchen gewartet werden soll.
(6) Trace-Level für Debugausgaben der JCO-Treiber (0 = keine Ausgabe) und Angabe für das Verzeichnis in das diese Tracemeldungen geschrieben werden sollen. Wenn ein Trace-Level >0 gewählt wird, muss ein Verzeichnis angegeben werden.
(7) Die Verbindungsparameter für die Client-Connection.
(8) Die Parameter für den Request-Server.