Every RFC call occupies a dialog work process on the application server. If parallel processing is used for the RFC (aRFC, qRFC, bgRFC), sufficient system resources must be available.
The various ways of configuring the SAP System are described below.
Note that RFC calls with CALL FUNCTION are processed in DIALOG work processes. The DIALOG limitation for processing a dialog step (default: 300 seconds, system profile parameter rdisp/max_wprun_time) thus also applies to these RFC calls. Remember to consider this restriction when dividing up your data packets for parallel processing.
You can use this RFC type to program parallel RFC calls. The resources are checked and assigned as far as the set quotas allow.
The required ABAP language element is:
CALL FUNCTION remote function STARTING NEW TASK task name DESTINATION IN GROUP group name
With this ABAP command, you are instructing the SAP system to process function module calls in parallel. The instruction implements parallel processing by sending asynchronous RFC calls to the appropriate servers. These are servers in the RFC server group Group Name specified as being available for processing requests. The group name DEFAULT means that all available application servers are being used.
The qRFC LUWs are executed using the outbound scheduler. The outbound scheduler uses parallel RFC to process the outbound queue. To allow this, you need to maintain the destinations in transaction SMQS.
The outbound scheduler then checks the resources and executes parallel RFCs if resources are available. If no resources are available, synchronous RFC is used instead.
If you are using the inbound queue, the inbound scheduler takes is responsible for processing the inbound queue. To allow this, you need to register the queue names to be processed using the inbound scheduler in transaction SMQR.
The inbound scheduler then checks the resources and executes parallel RFCs if resources are available. If no resources are available, the scheduler waits until resources become available.
For more information, see Monitor Transactional RFC and Queued RFC.
The transactional RFC and the qRFC use the resource check. The associated ABAP language elements for both RFC types is:
CALL FUNCTION Remote function IN BACKGROUND TASK DESTINATION destination
With a preceding additional function call (TRFC_SET_QIN_PROPERTIES or TRFC_SET_QUEUE_NAME) tRFC can be defined as qRFC.
This ABAP command flags a function module Remotefunction for asynchronous processing. The module is not executed immediately. The data transferred with EXPORTING or TABLESis placed in a database table. A COMMIT WORK then triggers the function module. There are various cases:
● The data is updated. If tRFC/qRFC has been triggered within the update, these are executed in parallel after the V1 update (within the update). If the tRFC/qRFC call is registered in the scheduler, the scheduler is simply triggered within the update. The execution of tRFC/qRFC takes place outside the update through the scheduler.
● The data is not updated. The tRFC/qRFC function modules started within the application LUW are executed in parallel as far as possible. If local system resources are exhausted, the tRFC/qRFC is serialized so as not to further increase resource utilization. However, this is not the case if the tRFC/qRFC function modules are processed in batch. If the tRFC/qRFC have been started in batch, they are always processed in parallel as in the update process, regardless of the system resource utilization.
No resource checks are run with RFC calls from the update process or batch, since these must always be processed in parallel to avoid deadlocks.
bgRFC is a newly developed RFC variant. With its characteristics type t (transactional) and type q (queued), it replaces tRFC and qRFC.
With both types, parallel processing is performed by the scheduler if enough dialog work processes are available.
This documentation is divided into the following sections:
● Describes which resources are relevant for the use of parallel RFCs, and how you can monitor the available resources system-wide.
● Displays the configuration parameters for RFC resources either dynamically or from settings in profile parameters.
● Describes how resources are checked in the system and explains the difference between local and remote checks (on a different server).
Provides information about determining the required number of work processes for bgRFC and maintaining the relevant parameters.
Note that the techniques for monitoring and controlling resources described in this document only apply to the RFC types mentioned above.
Even if you have correctly configured the quotas, your system may still become flooded with RFCs if these are not of the types mentioned (such as synchronous RFCs, qRFC, asynchronous RFCs without the suffix DESTINATION IN GROUP).
Known problems, their causes and solutions are described in the following section:
Detailed information about parallel processing is provided under:
SAP note 597583 (Performance Improvement Using RFC Parallelization) describes which RFC types and ABAP language elements are recommended for various purposes.