Navigation:  Datenzugriff auf SAP >

Belastung von SAP-Server und Netzwerk  

Print this Topic Previous pageReturn to chapter overviewNext page

+++   So können Sie Datras EPTL mit Datras Dynamic ABAP auf Ihrem SAP-System kostenlos testen (Anleitung, Download)   +++   Datras hat die Preise gesenkt   +++

 

s.a. "Wichtige Änderungen ab EPTL 4.0"

 

Bei großen Datenmengen entsteht bei Zugriff über den SAP-Funktionsbaustein RFC_READ_TABLE eine hohe Belastung des SAP-Servers und des Netzwerks.

How To Confirm

 

Problem:

SAP kann keinen permanenten Datenbank-Cursor halten, d.h. die Daten müssen mit einem RFC-Call extrahiert und transportiert werden.

 

Lösung:

Man exportiert die Daten nicht direkt aus dem SAP-System (wie im SAP-Baustein RFC_READ_TABLE), sondern speichert die Daten zuerst temporär in einer Datei auf dem SAP-Server. Danach holt man diese Datei paketweise via RFC vom SAP-Server zum Clienten, ersetzt also den in SAP nicht vorhanden permanenten Datenbank-Cursor durch einen immer vorhandenen File-Pointer.
Bei der Implementierung dieses Verfahren kann man gleichzeitig das 512-Byte Limit des SAP-Funktionsbausteins RFC_READ_TABLE schlachten, und auch einen asymmetrischen Prozess etablieren (Rock'n Roll) um den SAP-Server homogen auszulasten.

Die Datras-RFC-Extension und Datras-Dynamic-ABAP verwenden dieses Verfahren. Dadurch wird die Belastung des SAP-Servers und des Netzwerks erheblich vermindert, so dass die Belastung eigentlich quasi nicht mehr messbar ist. Somit kann man mit dem EPTL bedenkenlos Daten auch aus Produktiv-Systemen extrahieren.

 

 Wichtig:

Der SAP-Funktionsbaustein "RFC_READ_TABLE" besitzt zwar die Parameter "ROWCOUNT" und "ROWSKIP", mit denen man auch einen paketweisen Datenextrakt bewerkstelligen kann. Diese Ansatz löst jedoch das Problem nur scheinbar, da dann die unter SAP liegende Datenbank die Tabelle mehrfach lesen muss, also die Belastung vom SAP-Server nur auf den Datenbank-Server verschoben wird.
Das Verzeichnis auf dem SAP-Server für die temporären Dateien muss nicht und sollte auch nicht als Netzwerk-Ressource freigegeben werden, da es nur von den ABAPs auf dem SAP-Server benutzt wird. Die temporäre Speicherung der Daten auf dem Server stellt also kein Sicherheitsrisiko dar.
Natürlich kann man bei der Verwendung von Datras-Dynamic-ABAP durch ungeeignete SQL-Statements (z.B. unsinnige Order by Clauses) die Belastung auf dem SAP-Server bzw. dem Datenbank-Server unnötig erhöhen und damit einen Produktivbetrieb stören. Aber es gibt Spezialisten, die immer einen Weg finden, den SAP-Server zu überlasten, und gegen solche Spezialisten gibt es nur einen wirklich echten Schutz, nämlich diese erst gar nicht an die System zu lassen.
Beim asymmetrischen Prozess (Rock'n Roll) wird ein Funktionsaufruf der SAP-Funktion RFCCallReceive durch die zwei aufeinander folgenden Funktionsaufrufe RFCCall und RFCReceive ersetzt. Damit kann der SAP-Server schon das nächste Paket bereitstellen (also aus der temporären Datei lesen), während das EPTL noch das aktuelle Paket verarbeitet.