An application can make calculations and collect data simultaneously by using the various types of asynchronous RFCs. This can also happen indirectly, as with the outbound or inbound queue in qRFC. Every RFC request occupies a dialog work process on the application server on which the RFC is executed.
The possible configurations of the SAP System are described below.
Caution
Note that RFC calls with CALL FUNCTION are processed in DIALOG work processes. The DIALOG restriction for processing a dialog step applies for this (standard: 300 seconds, system profile parameter rdisp/max_wprun_time) also for these RFC calls. Remember to consider this restriction when dividing up your data packets for parallel processing.
The configuration options described here are valid for the following RFC types.
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 the function module remote function for asynchronous processing. The module is not executed immediately. The data transferred with EXPORTING or TABLES is 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.
Caution
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.
This documentation is divided into the following sections:
RFC Resources in the Application Server
Describes which resources are relevant for the use of parallel RFCs, and how you can monitor the available resources system-wide.
Configuring the SAP System for Parallel RFCs
Describes how RFC resources can be manipulated: Dynamically or using profile parameters.
Determining Resources for Asynchronous and Transactional RFC
Describes how resources are checked in the system and explains the difference between local and remote checks (on a different server).
Caution
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).
You can find information about known problems, their causes, and solutions in Problems with RFC Resource Assignment.
Details about using and programming RFCs can be found in the RFC documentation:
SAP note 597583 (Performance Improvement Using RFC Parallelization) describes which RFC types and ABAP language elements are recommended for various purposes.