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


images/download/attachments/189461567/Services_38-version-1-modificationdate-1737966557843-api-v2.png


(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


images/download/attachments/189461567/Services_39-version-1-modificationdate-1737966557834-api-v2.png

images/download/thumbnails/189461567/Services_40-version-1-modificationdate-1737966557832-api-v2.png


(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


images/download/attachments/189461567/Services_45-version-1-modificationdate-1737966557841-api-v2.png

images/download/attachments/189461567/Services_46-version-1-modificationdate-1737966557839-api-v2.png

images/download/attachments/189461567/Services_47-version-1-modificationdate-1737966557836-api-v2.png


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

Monitoring


Siehe Abschnitt Monitoring-Webseite.