Verschiedene Prozesse können es erfordern, dass eine große Anzahl Folgeprozesse erstellt werden müssen. Beispielsweise wird es durch die Anpassung von Stammdaten erforderlich, eine sehr große Menge abhängige Stammdaten anzupassen. Im Fall einer Verarbeitung mittels bgRFC können ungeeignete Einstellungen dazu führen, dass es zu signifikanten Performance-Problemen kommt, welche das Potential haben, Antwortzeiten des Systems spürbar zu verlängern oder das Prozesse mit Timeouts abbrechen. Dieser Effekt kann auftreten, wenn die Anzahl der Folgeprozesse ähnlich groß ist wie die Anzahl der freien Workprozesse oder diese Anzahl übersteigt. Um die beschriebenen Effekte zu vermeiden, ist es unbedingt erforderlich, durch die SAP BASIS geeignete Einstellungen für die Verarbeitung von bgRFC Queues zu wählen. Da diese Einstellungen stark in das grundsätzliche Verhalten des Systems eingreifen, sollten die Einstellungen stets durch die SAP Basis durchgeführt werden. Die Einstellungen zu den Folgeprozessen können auch selbst eingestellt werden. Der nachfolgende Text erläutert die verschiedenen Möglichkeiten:

Transaktion RZ10

In dieser Transaktion unter Grundeinstellungen kann zunächst festgelegt werden, wie viele Prozesse das System zur Verfügung stellt. Diese Einstellungen müssen auf jeden Fall bei den bgRFC Einstellungen berücksichtigt werden. Bspw. dürfen durch die bgRFC Einstellungen nicht mehr Prozesse genutzt werden als das System zur Verfügung stellt. Das nachfolgende Bild zeigt diese Einstellungen für die Workprozesse, wo beispielsweise maximal 6 Hintergrundprozesse und 10 Dialogprozesse eingestellt sind:

image-20240604-075531.png

Transaktion RZ10 (Systemparameter) / RZ11 (Profilparameter)

In der Transaktion RZ10 unter Erweiterte Pflege wie auch in der Transaktion RZ11 kann der Parameter rdisp/rfc_max_own_used_wp eingestellt werden. DIeser Parameter regelt, wie hoch die absolute Anzahl der Workprozesse ist, welche via RFC genutzt werden können.

image-20240604-075544.png

Transaktion RZ12 (RFC Servergruppe)

In dieser Transaktion kann eine dedizierte Servergruppe für die Verarbeitung von bgRFC Prozessen erstellt werden. Hier kann bspw. ein bestimmter Applikationsserver angegeben werden, so dass die Performance für die Benutzter nicht beeinträchtigt wird.  Auch lässt sich hier einstellen, wie viel Prozent der Workprozesse maximal von dieser Servergruppe genutzt werden kann.

image-20240604-075557.png

Transaktion SBGRFCCONF

In dieser Transaktion gibt es die beiden Parameter "Scheduler Anzahl" und "Anzahl offener Verbindungen" auf der Ebene des Applikations-Servers und auf Ebene der Destinationen. Die beiden Parameter haben die folgende Bedeutung:

Parameter Scheduler Anzahl

Der Parameter kann auf die Werte -1, 0 oder >0 gesetzt werden. Gemäß der Beschreibung bedeutet "-1", dasss die Anzahl der Scheduler methodisch bestimmt wird, aber hoch sein kann. Die Einstellung "0" bedeutet, dass die Destination nicht für bgRFC genutzt werden kann. Daher kann diese Einstellung nicht für FUP-Anwendungen gewählt werden. Ein Wert größer als 0 legt die maximale Anzahl der Scheduler fest.

Parameter Anzahl offener Verbindungen

Dieser Parameter steuert, wie viele Prozesse zu einer Destination gestartet werden dürfen. Wenn es also mehrere Destinationen gibt, welche für bgRFC-Anwendungen genutzt werden, kann die Summe der möglichen Prozesse über alle Destinationen die maximal zulässige Anzahl der Prozesse überschreiten. In diesem Fall sollte der o.g. Parameter genutzt werden.

Registerkarte "Scheduler: Applikations Server"

Die beiden Parameter sind auf dieser Registerkarte für Outbound und Inbound Destinationen einstellbar:

image-20240604-075614.png

Registerkarte "Scheduler: Destination"

Die beiden Parameter sind auf dieser Registerkarte je Destination einstellbar:

image-20240604-075625.png

Wenn keine Einträgen gemacht sind gelten automatisch die Default Werte (im Screenshot dargestellt) . Mit dem Parameter Open Connection wird gesteuert wieviele Dialog Prozesse von dieser Destination belegt werden.

Registerkarte "Inbound Destination"

Falls eine Inbound-Destination für bgRFC genutzt wird, kann für jede Destination eine Servergruppe zugewiesen werden. Somit können bspw. die bgRFC-Prozesse auf einem dedizierten Server verarbeitet werden, ohne die Performance für die Benutzter zu beeinträchtigen.

image-20240604-075638.png

Transaktion FUP Customizing

In der QPPD Customizing-Transaktion /SCT/QP_CUST unter Grundeinstellungen können die Folgeprozesse eingestellt werden:

image-20240604-075650.png

Im Teildialog "Folgeprozesse" können die Namenspräfixe für die Queuenamen eingestellt werden. Durch eine geeignete Wahl dieser Präfixe bzw. durch eine Implementierung des ABAP-Interfaces /SCT/QP_IF_FUP~DO_CHANGE_QUEUE_NAME zur Anpassung des Queuenamens, können Folgeprozesse in Queues gruppiert werden. Durch diese Gruppierung erhöht sich also die Anzahl der Units pro Queue, aber die Queue-Anzahl wird reduziert. Da immer nur eine Unit pro Queue verarbeitet wird, verringert sich also auch die Anzahl der maximal genutzten Prozesse. 

Ebenfalls ist durch die Nutzung dieser Gruppierung eine Art Priorisierung möglich: Units mit einer niedrigeren Priorität werden in einer gemeinsamen Queue prozessiert und Units mit einer höheren Priorität werden in neuen Queues prozessiert. Da beispielsweise 10 Prozesse parallel ausgeführt werden dürfen, stehen 10 - 1 = 9 freie Prozesse für höher-priorisierte Units zur Verfügung, welche sofort verarbeitet werden können.

image-20240604-075700.png