Show TOC Anfang des Inhaltsbereichs

FunktionsdokumentationKonfiguration von Systemressourcen für aRFC, tRFC, qRFC Dokument im Navigationsbaum lokalisieren

Verwendung

Eine Anwendung kann ihre Berechnungen und Datensammlungen parallelisieren, indem sie die verschiedenen Varianten der asynchronen RFCs verwendet. Dies kann auch indirekt geschehen, wie beim qRFC mit Ausgangs-Queue oder Eingangs-Queue. Auf dem Applikationsserver, auf dem der RFC ausgeführt wird, belegt jeder RFC-Aufruf einen Dialog-Workprozess.

Im folgenden werden die möglichen Konfigurationen des SAP-Systems beschrieben.

Integration

Achtung

Beachten Sie, dass die RFC-Aufrufe mit CALL FUNCTION in Workprozessen vom Typ DIALOG verarbeitet werden. Damit gilt die DIALOG-Begrenzung zur Verarbeitung eines Dialogschrittes (Standard: 300 Sekunden, System-Profil-Parameter rdisp/max_wprun_time) auch für diese RFC-Aufrufe. Denken Sie an diese Begrenzung, wenn Sie Ihre Datenpakete für die Parallelverarbeitung einteilen.

Die hier beschriebenen Konfigurationsmöglichkeiten gelten für folgende Arten von RFC.

Asynchroner RFC mit Lastverteilung (aRFC)

Mit diesem RFC-Typ können Sie parallele RFC-Aufrufe explizit programmieren. Die Ressourcen werden geprüft und so weit belegt, wie die eingestellten Quoten dies zulassen.

Das zugehörige ABAP-Sprachelement lautet

CALL FUNCTION Remotefunction STARTING NEW TASK Taskname DESTINATION IN GROUP Groupname

Mit diesem ABAP-Befehl weisen Sie das SAP-System an, den Funktionsbausteinaufruf parallel zu verarbeiten. Die Anweisung implementiert die Parallelverarbeitung, indem sie asynchrone RFC-Aufrufe an die Server absetzt, die in der für die Verarbeitung angegebenen RFC-Server-Gruppe Groupname verfügbar sind. Der Gruppenname DEFAULT bedeutet, dass alle verfügbaren Applikationsserver verwendet werden.

qRFC mit Ausgangs-Queue

Die qRFC LUWs werden mittels des Outbound-Schedulers ausgeführt. Der Outbound-Scheduler benutzt den parallelen RFC für die Verarbeitung der  Ausgangs-Queues. Hierzu müssen Sie die Destinationen mittels der Transaktion SMQS pflegen.

Der Outbound-Scheduler prüft dann die Ressourcen und führt seinerseits, wenn Ressourcen vorhanden sind, parallele RFCs aus. Sind keine Ressourcen vorhanden, wird auf den synchronen RFC ausgewichen.

qRFC mit Eingangs-Queue

Wird mit Eingangs-Queue gearbeitet, so übernimmt der Inbound-Scheduler die Verarbeitung der Eingangs-Queues. Hierzu müssen Sie die Queue-Namen, die über den Inbound-Scheduler verarbeitet werden sollen, mittels der Transaktion SMQR registrieren. 

Der Inbound-Scheduler prüft dann die Ressourcen und führt seinerseits, wenn Ressourcen vorhanden sind, parallele RFCs aus. Sind keine Ressourcen vorhanden, wartet der Scheduler, bis die Ressourcen verfügbar sind.

Weitere Informationen finden Sie unter StrukturlinkMonitor Transactional RFC and Queued RFC

tRFC und qRFC

Der transaktionale RFC und der qRFC benutzen die Ressourcenprüfung. Das zugehörige ABAP-Sprachelement lautet für beide RFC-Typen

CALL FUNCTION Remotefunction IN BACKGROUND TASK DESTINATION Destination

Mit einem vorangehenden zusätzlichen Funktionsaufruf (TRFC_SET_QIN_PROPERTIES bzw. TRFC_SET_QUEUE_NAME) wird der tRFC als qRFC ausgeprägt.

Mit diesem ABAP-Befehl wird der Funktionsbaustein Remotefunction zur asynchronen Ausführung vorgemerkt. Er wird nicht sofort ausgeführt, sondern die mit EXPORTING bzw. TABLES übergebenen Daten werden in eine Datenbanktabelle gestellt. Ein COMMIT WORK löst dann die Verarbeitung des Funktionsbausteins aus. Folgende Fälle werden unterschieden:

·        Es liegt eine Verbuchung vor. Wurde innerhalb der Verbuchung tRFC/qRFC abgesetzt, werden diese nach der V1 Verbuchung (innerhalb der Verbuchung) parallel ausgeführt. Ist der tRFC/qRFC-Aufruf am Scheduler registriert, wird lediglich der Scheduler innerhalb der Verbuchung getriggert. Die Ausführung der tRFC/qRFC findet jedoch außerhalb der Verbuchung über den Scheduler statt.

      Es liegt keine Verbuchung vor. Dann werden die innerhalb der Anwendungs-LUW gestarteten tRFC/qRFC Funtionsbausteine soweit wie möglich parallel ausgeführt. Sind die lokalen Systemressourcen erschöpft, werden die tRFC/qRFC serialisiert, um die Ressourcenauslastung nicht weiter zu erhöhen. Dies ist jedoch nicht der Fall, falls es sich um eine Verarbeitung im Batch handelt. Wurden tRFC/qRFC im Batch angestartet, werden diese wie innerhalb der Verbuchung in jedem Fall immer parallel angestartet ungeachtet der Systemressourcen.

Achtung

Bei RFC-Aufrufen aus Verbuchung oder Batch finden keine Ressourcenprüfungen statt, da diese immer parallel abgearbeitet werden müssen (Vermeidung von Deadlocks).

Weiterführende Informationen

Details zum Einsatz von RFC und zur RFC-Programmierung finden Sie in der RFC-Dokumentation:

Parallelverarbeitung mit asynchronem RFC

StrukturlinkRFC-Gruppen für Parallelverarbeitungsjobs definieren

Hinweis

SAP-Hinweis 597583 (Performanceverbesserung durch RFC-Parallelisierung) beschreibt, welche RFC-Typen und damit ABAP-Sprachelemente für welchen Einsatzzweck empfohlen werden.

Funktionsumfang

Die vorliegende Dokumentation gliedert sich in folgende Abschnitte:

·        RFC-Ressourcen im Applikationsserver

Beschreibt, welche Ressourcen des Applikationsservers bei der Verwendung paralleler RFCs relevant sind und wie Sie die vorhandenen Ressourcen systemweit überwachen können.

·        Systemkonfiguration für parallele RFCs

Beschreibt, wie die RFC-Ressourcen manipuliert werden können: dynamisch oder mittels entsprechender Profilparameter.

·        Ressourcenermittlung für asynchronen und transaktionalen RFC

Beschreibt, wie die Ressourcenprüfung im System funktioniert; hierbei wird zwischen lokaler und entfernter Prüfung (auf einem anderen Server) unterschieden.

Einschränkungen

Achtung 

Beachten Sie, dass die Überwachung und Kontrolle der Ressourcen, wie sie in dieser Dokumentation beschrieben wird, nur für die oben erwähnten RFC-Arten gilt!

Wenn Sie die Quoten richtig konfiguriert haben, kann es trotzdem passieren, dass Ihr System von RFCs überflutet wird, wenn diese nicht von den erwähnten Typen sind (z.B. synchrone RFCs, asynchrone RFCs ohne den Zusatz DESTINATION IN GROUP…).

Bekannte Probleme, ihre Ursachen und Lösungen sind in folgendem Abschnitt beschrieben:

Probleme mit Ressourcenbelegung durch RFC

 

Ende des Inhaltsbereichs