Show TOC

Konfiguration von Systemressourcen für aRFC, tRFC, qRFCLocate this document in the navigation structure

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 Monitor 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).

Funktionsumfang

Die vorliegende Dokumentation gliedert sich in folgende Abschnitte:

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…).

Informationen zu bekannten Problemen, ihren Ursachen und Lösungen finden Sie unter Probleme mit Ressourcenbelegung durch RFC.

Weitere Informationen

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