Entering content frameComponent documentation Configuring System Resources for Parallel RFC, tRFC, and qRFC Locate the document in its SAP Library structure

Use

An application can parallelize its calculations and data collections by using parallel RFCs. This can also happen indirectly, as with the inbound queue in qRFC. Every RFC request occupies a dialog work process on the application server on which the RFC is executed.

This section describes how to configure your system to use parallel RFCs.

Integration

The following RFC types use the resource checks described in this documentation.

Asynchronous RFC with Load Distribution

You can use this RFC type for explicitly program parallel RFC calls. The resources are checked and assigned as far as the set quotas allow.

The required ABAP language element is as follows:

CALL FUNCTION <func> STARTING NEW TASK <task> DESTINATION IN GROUP <group>

With this ABAP command, you are telling the SAP system to process function module calls in parallel. The command implements parallel processing by sending asynchronous RFC calls to the appropriate servers. These are servers in the RFC server group group that is specified as being available for processing of requests. The group name DEFAULT means that all available application servers are being used.

qRFC with Outbound Queue

The qRFC LUWs are executed using the outbound scheduler. The outbound scheduler uses parallel RFC for processing the outbound queue. For this to be possible, you have to maintain the destinations using 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.

qRFC with Inbound Queue

If you are using the inbound queue, the inbound scheduler takes over the processing of the inbound queue. For this to be possible, you have to register the queue names that are to be processed using the inbound scheduler. To do this, use 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 Structure linkMonitor Transactional RFC and Queued RFC.

Transactional RFC

Transactional RFC uses resource checking only. It does not use parallel RFCs.

The required ABAP language element is as follows:

CALL FUNCTION <func> DESTINATION <dest> IN BACKGROUND TASK

This ABAP command marks the function module func for asynchronous processing. The module is not executed immediately, though. The data transferred with EXPORTING or TABLES is placed in a database table, and a COMMIT WORK then causes the function module to be processed in another work process.

Caution

Note that RFC calls with CALL FUNCTION are processed in work processes of the type DIALOG. Therefore, the DIALOG limitation for processing a dialog step (default: 300 seconds, system profile parameter rdisp/max_wprun_time) also applies to these RFC calls. Remember to take this limitation into consideration when you are dividing up your data packages for parallel processing.

See also the following sections:

Structure linkParallel Processing with Asynchronous RFC

Structure linkDefining RFC Groups for Parallel Processing Jobs

Features

The documentation on using parallel RFCs is divided into the following sections.

RFC Resources on the Application Server describes which resources are relevant for the use of parallel RFCs, and how you can monitor the available resources system-wide.

System Configuration for Parallel RFCs describes how you can manipulate RFC resources, either dynamically or using corresponding profile parameters.

Calculating Resources for Asynchronous and Transactional RFC describes how resource checking in the system works. Both local checking and remote checking (that is, checking on another server) are described.

Constraints

Caution Caution 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 correct types (such as synchronous RFCs, qRFC without inbound queue, asynchronous RFCs without the added DESTINATION IN GROUP …).

 

 

Leaving content frame