Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
-
Upload
srinivas-rentala -
Category
Documents
-
view
217 -
download
0
Transcript of Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 1/17
PRINT FROM SAP HELP PORTAL
Document:Configuration o f System Resources for aRFC, tRFC, qRFC
URL:http://help.sap.com/erp2005_ehp_05/helpdata/en/35/fbadbfa53c4447950ca7d7cb1d82a3/content.htm
Date created:July 26, 2013
© 2013 SAP AG or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the expresspermission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and i ts distributors contain proprietary
software components of other software vendors. National product specifications m ay vary. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for
informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only
warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein
should be construed as constituting an additional warranty. SAP and other SAP products and services mentioned herein as well as thei r respective logos are trademarks or
registered trademarks of SAP AG in G ermany and other countries. Please see www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information
and notices.
Note
This PDF document contains the selected topic and its subtopics (max. 150) in the selected structure.Subtopics from other structures are not included.
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 1 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 2/17
Configuration of System Resources for aRFC, tRFC, qRFC
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.
Integration
Note that RFC calls with CALL FUNCTION are processed in DIALOG work p rocesses. The DIALOG restriction for processing a dialog step app lies 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 p rocess ing.
The configuration options described here are valid for the following RFC types.
Asynchronous RFC with Load Dis tribution (aRFC)
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 app lication servers are being used.
qRFC with Outbound Q ueue
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.
qRFC with Inbound Q ueue
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.
tRFC and qRFC
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 p rocessed 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 b e processed in parallel to avoid deadlocks.
Features
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 exp lains the difference between local and remote checks (on a different server).
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
Caution
Caution
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 2 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 3/17
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.
More Information
Details about using and programming RFCs can be found in the RFC documentation:
Parallel Processing with Asynchronous RFC
Defining RFC Groups for Parallel Processing Jobs
SAP note 597583 (Performance Improvement Using RFC Parallelization) describes which RFC types and ABAP language elements are recommended for
various purposes.
RFC Resources on the Application Server
The graphic below shows the SAP application server resources relevant for parallel RFC.
RFC Resources on the Application Server
Features
Resources can be assigned from the following areas:
Logging On to the SAP System
A total of rdisp/tm_max_no users can be simultaneously logged on to the server (using the GUI or RFC). If rdisp/rfc_max_login percent of the maximum number
of users are logged on, no more RFC logons can be accepted. An RFC user may occupy a maximum of rdisp/rfc_max_own_login percent of the login slots.
You can display a user overview in transactionSM04 (Displaying and Managing User Sessions).
RFC Requests in the Dialog Queue
The dialog queue of the dispatcher contains rdisp/elem_per_queue entries. A maximum of rdisp/rfc_max_queue percent of these may b e filled by RFC
requests.
You can display a server overview in transaction SM51 (Overview of SAP Application Servers).
Entries in the Communication Table
The communication table contains an entry for every CPIC communication for all parties involved. The table can contain a maximum of rdisp/max_comm_entries
entries. rdisp/rfc_max_comm_entries You can display a server overview in transactionSM51 (Overv iew of SAP Application Servers).
Dialog Work Processes
When the server is started, it has rdisp/wp_no_dia dialog work p rocesses. This number can, however, be changed while the server is running. One way todo this is to use operation mode switching. You can find out the current number of processes in the Process Overview (transaction SM50; see also Displaying and
Controlling Work Processes). Of the dialog work processes, the dispatcher keeps rdisp/rfc_min_wait_dia_wp free for “genuine”dialog requests (not RFC).
A user may occupy a maximum of rdisp/rfc_max_own_used_wp percent of dialog processes.
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 3 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 4/17
The same parameters are used to control the number of plug-in requests (HTTP or SMTP requests coming from the ICM) that can be processed at the same
time.
Process
The dispatcher checks whether it has free resources for each RFC request it receives. If it has, it assigns the request to a dialog work process, otherwise it puts
the request in the dispatcher queue. You can control the detail level of this check using parameter rdisp/rfc_check.
More Information
Transaction SARFC is used to monitor the resources on all servers in the SAP system.
For more information, see Monitoring RFC Resources on the Application Servers.
rdisp/rfc_check
In this parameter you can set the level of detail of the check made by the RFC server dispatcher. The dispatcher checks whether sufficient dialog work processes
are free for processing asynchronous RFC calls.
The number of available dialog work processes depends on the number of free dialog work processes and on the number of work processes that must be kept
free for the dialog application ( rdisp/rfc_min_wait_dia_wp ).
If no work process is free, the request is placed in the queue and processed later.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Work area Dispatcher/task handler
Unit Integer value
Standard value 1
Dynamically changeable Local and on all servers
Value Range and Syntax
The parameter can be set to a whole number between 0 and 3. The number specifies the level of the resource check. The values mean the following:
Value
(level)
Meaning
0 No check is made.
1 Start of al l asynchronous RFCs is moni tored.
2 In addition to level 1, all RFCs restarted from asynchronous RFC sessions are monitored. This includes synchronous RFCs.
So that applications that transmit a lot of RFCs can run at this level, the number of dialog processes used for RFCs may have to be increased.
(rdisp/rfc_min_wait_dia_wp may have to be reduced).
3 All RFCs (synchronous and asynchronous) are monitored.
SAP Recommendation
You must not set the value to 0.
Increase the value if you notice that your application server becomes flooded with RFCs and dialog mode is no longer possible, even though you have set
rdisp/rfc_min_wait_dia_wp .
More Information
Note the following documentation associated with this parameter:
RFC Resources in the Application Server
Monitoring RFC Resources on the Application Server
Problems with RFC Resource Assignment
Configuring the SAP System for Parallel RFCs
Note
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 4 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 5/17
Monitoring RFC Resources on the Application Server
You can monitor the RFC resources on all application servers and thus find out the load incurred by parallel RFCs on a server.
You can also dynamically change the various quotas on all servers. For more information, see Configuring RFC Quotas Dynamically.
Procedure
Call transaction SARFC in your system.
You then see a list of all SAP servers with information for each server, stating whether resources for asynchronous RFCs are available at the time you executedthe transaction (text Resources ok ) . If no resources are available, a short text explaining the reason is displayed.
Note that this list only represents the situation at the exact moment that you executed the transaction. Choose Refresh to update the display.
This is a list of the possible results of the resource check with return values and meanings.
Value Meaning
0 Resources are available on the server. The text Resources Ok is displayed.
1 The resource check is deactivated (parameter rdisp/rfc_use_quotas is set to 0).
The other return values indicate that the server currently has no available resources for asynchronous RFCs.
The server may have no resources for one of the following reasons:
The server is not running.
The server has been wrongly configured.
An unexpected error has occurred.
In these cases, the text appears on a red background. You can find out the exact cause of the problem (for example, where exactly the incorrect configuration
is located) by briefly activating and deactivating the trace for the server (see below). See the dispatcher trace file dev_disp of the server for the required
information.
The individual return values are desc ribed below. Each value has a text (appears on a yellow background).
2 The server has too few free dialog work processes.
3 The quota for the RFC communication channels is too small. Increase the parameter rdisp/rfc_max_comm_entries or change the value dynamically
(Configuring RFC Quotas Dynamically).
4 The quota for the RFC communication channels (rdisp/rfc_max_comm_entries) has reached its maximum.
5 The local queue for asynchronous RFC responses is full. This queue retains the responses to asynchronous RFCs until they are sent back to the
caller. You can increase the size of the queue by increasing the value of the parameter rdisp/max_arq.
6 The quota for a dialog work process occupied by an RFC user is too small. Increase the parameter rdisp/rfc_max_own_used_wp or change the
value dynamically (Configuring RFC Quotas Dynamically).
7 The quota for a dialog work process occupied by an RFC user (rdisp/rfc_max_own_used_wp ) has reached its maximum.
8 The quota for the RFC requests in the dialog queue is too small. Increase parameter rdisp/rfc_max_queue, or change the value dynamically
(Configuring RFC Quotas Dynamically).
9 The quota for the volume of RFC requests in the dialog queue (rdisp/rfc_max_queue) has reached its maximum.
10 An error occurred when the request queue length was being determined.
11 The quota for RFC logons to the server is too small. Increase the size of the value of the parameter rdisp/rfc_max_login.
12 The quota for the RFC logons to the server (rdisp/rfc_max_login) has been reached.
13 The quota for RFC logons to the server is too small. Increase the parameter rdisp/rfc_max_own_login, or change the value dynamically (Configuring
RFC Quotas Dynamically).
14 The quota for your own RFC logons to the server (rdisp/rfc_max_own_login) has been reached.
15 The server has been deactivated and cannot process any requests.
16 The server is being s topped.
17 The server has been s topped.
18 The server is being s tarted.
19 The server has just been started and is in the initialization phase.
20 The server is in an unknown state.
Activating the Trace
Choose Goto Activate Trace . The system then writes the detailed result of the check to the trace file of the dispatcher on the server in question. To read the
file, you have to log on to the server in question (open transaction SM51, double-click on the server name, then choose Process Trace Dispatcher Display
File ).
It may make sense to do this if, for example, a server constantly has too few resources, and you want to find out the exact cause.
Configuring RFC Resources
Section Configuring SAP System for Parallel RFCs describes how to configure your system.
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 5 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 6/17
Configuring the SAP System for Parallel RFCs
You can optimize the configuration of your SAP system for the purposes of working with parallel RFCs. This section describes the tools (profile parameters,
transactions, and so on) you use to do this.
Prerequisites
To use parallel RFCs effeciently, your system has to be configured accordingly and must meet the following prerequisites.
More dialog work processes than non-dialog work processes have to be configured on every server that is available for processing parallel RFCs.
The number of work processes of a specific type is determined with profile parameter
rdisp/wp_no_ <wptyp> with <wptyp> = dia, spo, upd, up2, btc
. This number is not, however, necessarily the most up-to-date number, as the work process types can be changed while the server is in operation (by means of
operation mode switching, for example). You can find out the number of different work processes in the Process Overview (transaction SM50; see also Displaying
and Controlling Work Processes).
Procedure
Set Profile Parameters
A range of profile parameters is available for resource distribution during the processing of parallel RFCs. These parameters are described in the following
sections:
rdisp/rfc_check
rdisp/rfc_use_quotas
rdisp/rfc_max_queue
rdisp/rfc_max_login
rdisp/rfc_max_own_login
rdisp/rfc_min_wait_dia_wp
rdisp/rfc_max_own_used_wp
rdisp/rfc_max_comm_entries
rdisp/rfc_max_wait_time
You can find more parameters in the RFC environment by opening transaction RZ11 and searching for rdisp/rfc*.
Note that the parameters rdisp/rfc* only apply to the above-mentioned RFC types, and not to any other types, such as synchronous RFC or
asynchronous RFC without a group.In other words, the parameters only apply to qRFC and parallel RFC.
The standard values for the quotas are restrictive, since you must assume that dialog users are also active in the system and they are given priority. You can set
the maximum resources for RFC users with the following settings:
rdisp/rfc_max_login = 100
rdisp/rfc_max_own_login = 100
rdisp/rfc_max_own_used_wp = 100
rdisp/rfc_max_comm_entries = 100
These can of course affect the response time for dialog users.
Dynamic Changes
As well as setting the parameters, you can also change the ARFC resources dynamically in the running system immediately before running the application that
uses a high volume of parallel RFCs.
To do this, use transaction SARFC, as described in section Dynamically Configuring RFC Quotas.
Note the following points when configuring the system:
The number of available resources in the system is a snapshot relating to the current workload in the system. No program can assume that these resources
will also be available long term.
If one of the quotas is exceeded, no resources are returned to the caller.
The calculated resources are not reserved for the caller. Thus it could happen that competing programs are calculating resources at the same time, and are
occupying more dialog work processes than has been set in the quota. A program therefore cannot assume that the resources calculated are actually also
available.
Dynamically Configuring RFC Quotas
Caution
Note
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 6 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 7/17
Report RSARFCLD is used to dynamically configure the RFC quotas on the server to which you are logged on.
Unlike parameter changes in the profile, these settings are lost when you next restart the computer.
Procedure
Call transaction SARFC.
You are then shown which servers are currently available in the system, and how the system is handling resources for asynchronous RFCs on the servers.
If you double-click on a server name, a dialog box appears in which you can change the values for your server.
If you have the necessary authorization, you can enter change mode and change the values.
The values that you set here overwrite (until the next restart) the values of the following parameters (in the same order):rdisp/rfc_use_quotas
rdisp/rfc_max_queue
rdisp/rfc_max_login
rdisp/rfc_max_own_login
rdisp/rfc_max_own_used_wp
rdisp/rfc_min_wait_dia_wp
rdisp/rfc_max_comm_entries
rdisp/rfc_max_wait_time
Choose (Save) to accept the new values.
Result
The quotas for RFC resources have now been reset.
Note that the settings you make using the report only apply to the instance to which you are currently logged on, and are lost when the instance is next
restarted. The parameter settings in the profile file then apply again.
rdisp/rfc_use_quotas
This parameter is used to activate the use of quotas for resource allocation.
If the parameter is set to 0, all other rdisp/rfc* parameter settings are irrelevant. In this situation, you cannot use parallel RFCs. The system acts as if all
resources were in use and always returns the same corresponding return value.
Prerequisites
Structure
Work area Dispatcher/task handler
Unit Integer value
Standard value 1
Dynamically changeable Local and on all servers
Value Range and Syntax
The following values are permitted:
0: Resource allocation deactivated
1: Resource allocation activated (default)
SAP Recommendation
Since when you are working with parallel RFCs, the parameter value 0 is not possible (see above), SAP recommends that you do not change the default setting
1.
Integration
Resource allocation is either carried out dynamically in RFC group maintenance, or in the profile using the following parameters:
rdisp/rfc_check
rdisp/rfc_max_queue
rdisp/rfc_max_login
rdisp/rfc_max_own_login
rdisp/rfc_min_wait_dia_wp
Caution
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 7 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 8/17
_ _ _ _
rdisp/rfc_max_own_used_wp
rdisp/rfc_max_comm_entries
rdisp/rfc_max_wait_time
If you do not want your changes to be permanent, you have the option of dynamically configuring RFC quotas. These changes are lost when the instance is
restarted.
rdisp/rfc_max_queue
This parameter specifies the contingent for the maximum number of outstanding requests in the dialog queue.
RFC is executed on the target server in a dialog work process. Therefore, if there is currently no free dialog work process, the request is placed in the dialog
queue of the dispatcher. You should ensure that the queue never becomes full.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas).
Structure
Work area Dispatcher/task handler
Unit Integer value between 0 and 100 (percentage)
Standard value 5
Dynamically changeable Local and on all servers
Value Range and Syntax
The value is given as a percentage of the entire dialog queue. In other words, it is dependent on the value currently set in the profile. The parameter
rdisp/elem_per_queue (default 2000) specifies the absolute number of requests in the queue.
SAP Recommendation
You should set this value quite small, as the dialog requests are also kept in this queue, and it is important that the queue does not become full.
You can monitor how full the dispatcher queues are in transaction SM51 (SM51 (Overview of SAP Application Servers) ( Goto Server Information
Queue Info ).
Example
If you retain the default setting of 2000, the dialog queue can accept a maximum of 2000 requests. If you set rdisp/rfc_max_queue to 1 and the queue
already contains 20 entries when a new RFC request comes in, the request is rejected.
rdisp/rfc_max_login
This parameter describes the contingent for the number of RFC users logged on to the SAP system. The parameter rdisp/tm_max_no specifies the absolute
number of logons to the SAP system.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Note
Note
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 8 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 9/17
Work area Dispatcher/task handler
Unit Integer value between 0 and 100 (percentage)
Standard value 90
Dynamically changeable Local and on all servers
Value Range and Syntax
This parameter therefore describes the percentage of possible logons which, once exceeded, causes any further RFC logons to the server to be rejected.
SAP Recommendation
To find out how many users are currently logged on to a server in the SAP system open the user list (transaction SM04, or see Displaying and Managing User
Sessions) The User List also displays whether each logon is a GUI or an RFC logon.
Example
Let us assume that rdisp/tm_max_no is set to 100, and rdisp/rfc_max_login to 90. Once there are 90 logons on the system (whether they are GUI or
RFC logons is not important), no more logons of the type RFC can be accepted. 10 more logons of the type GUI can, however, still be accepted. Once the
eleventh GUI logon attempt is made, the server returns the message Maximum number of terminals reached.
rdisp/tm_max_no
This parameter restricts the maximum number of users per ins tance.
You can thus restrict how many users can log onto an instance simultaneously. All types of logons are counted (with GUI, RFC, or HTTP).
You can see which users are logged on in transaction SM04 (Disp laying and Managing User Sessions).
Structure
Work area Dispatcher/task handler
Unit Integer value
Standard value 200
Dynamically changeable No
Value Range and Syntax
You can specify a number between 0 and 10000.
SAP Recommendation
If you should notice that the standard value 200 is too few, increase the value. At any rate you have to restart the instance, since the parameter affects the size of
the tm_adm structure of the dispatcher, and the shared memory is created when the instance is started.
rdisp/rfc_max_own_login
With this parameter you can set the cut-off value for the number of own logons in the SAP system. It is different from the parameter rdisp/rfc_max_login in that in
this case, it is the logons of one user only that may not exceed the quota.
This value is, therefore, a percentage of rdisp/tm_max_no. It restricts the logons of an (RFC) user and thus prevents a program from sending RFCs to such a
degree that other (RFC) users cannot log on to that server.
This parameter is valid only if the check is run locally. If the check is carried out on a remote server, the parameter is ignored and the next more restrictive
quota takes effect. You can find details of the different checks in Resource Determination for Asynchronous and transactional RFC.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 9 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 10/17
Work area Dispatcher/task handler
Unit Integer value (percent)
Standard value 25
Dynamically changeable Local and on all servers
Value Range and Syntax
Possible values are whole numbers between 1 and 100 (percent).
SAP Recommendation
Example
If you want to allow that one application is assigned the entire RFC resources of a server, you have to increase the parameter. You could increase it to the value of
rdisp/rfc_max_login, for example.
More Information
Note the following documentation associated with this parameter:
Dynamically Configuring RFC Quotas
RFC Resources in the Application Server
rdisp/rfc_min_wait_dia_wp
This parameter is used to reserve a number of dialog work processes for dialog mode. It specifies the number of dialog work processes that should be kept free
for dialog mode, thereby preventing that all processes are occupied by p arallel RFCs.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Work area Dispatcher/task handler
Unit Integer value
Standard value 1
Dynamically changeable Local and on all servers
Value Range and Syntax
You can set the parameter to values between 1 and the number of dialog work processes ( rdisp/wp_no_dia).
SAP Recommendation
If a sufficient number of dialog work processes has been configured, this value should be increased
It must be guaranteed that the value of parameter rdisp/rfc_min_wait_dia_wp is always smaller than rdisp/wp_no_dia, otherwise no RFC
requests can be processed.
Example
If 10 dialog work processes are configured for the instance ( rdisp/wp_no_dia = 10) and the parameter rdisp/rfc_min_wait_dia_wp = 3 is set,
parallel RFCs can occupy a maximum of 7 dialog work processes. Three dialog work processes always remain free for dialog mode.
Integration
The absolute number of dialog work processes is specified by p arameter rdisp/wp_no_dia.
The dispatcher controls the forwarding of RFC requests. The RFC request is only passed to a dialog work process if the defined number of free dialog work
processes is guaranteed. If it is not, the request is kept in the dispatcher queue for processing later.
More Information
Note the following documentation associated with this parameter:
Dynamically Configuring RFC Quotas
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 10 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 11/17
rdisp/rfc_max_own_used_wp
This parameter determines the contingent of dialog work processes that an RFC user may occupy simultaneously. The value is specified as a percentage of the
configured dialog work processes.
You can use this parameter to prevent a user (or an application that is sending RFCs) from occupying all the dialog work processes on the target server.
This parameter is effective only in dialog mode. If the report is running in the background or in update mode, it is ignored.
This parameter is valid only if the check is carried out on your local server (compare Determining Resources for Asynchronous and Transactional RFCs). If
the check is carried out on a remote server, the parameter is ignored and the next more restrictive quota takes effect.
The user name is not checked. This means, if one user logs on several times with the same name (name appears several times in transaction SM04,
Disp laying and Managing User Modes), each of these entries is valid as an individual user.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Work area Dispatcher/task handler
Unit Integer value (percent)
Standard value 75
Dynamically changeable Local and on all servers
Value Range and Syntax
Permitted values are whole numbers between 0 and 100.
Example
Let us assume that the parameter is set to the default value of 75, and you have 10 dialog work processes, of which 2 are reserved for dialog operation
(rdisp/rfc_min_wait_dia_wp ). The parameter then has the effect that an RFC application can occupy a maximum of 7 work processes at any one time. This
number represents the minimum number of work processes calculated from the work processes that are available for RFC (10-2=8) and the percentage defined
by the parameter (75% of 10 is 7.5, of which the whole number is 7).
If you want an RFC application to have all the resources on the target server, set this parameter to 100. Then, rdisp/rfc_min_wait_dia_wp is the last
restricting factor.
Integration
When the server is started, it has rdisp/wp_no_dia dialog work p rocesses. This number can, however, be changed while the server is running. One way to
do this is to use operation mode switching. You can find out the current number of processes in the Process Overview (transaction SM50; see also Displaying and
Controlling Work Processes).
Constraints
(optional) Who is authorized to make changes? Only spec ific operating systems/databases
More Information
Note the following documentation associated with this parameter:
Dynamically Configuring RFC Quotas
rdisp/rfc_max_comm_entries
The value specifies the percentage of communication entries that may be occupied by the user.
This guarantees that the communication table can still administrate other CPIC conversations.
If this value is exceeded, no more RFC requests can be accepted, so that the server does not become overloaded.
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 11 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 12/17
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Work area Dispatcher/task handler
Unit Integer value (percent)
Standard value 90
Dynamically changeable Local and on all servers
Value Range and Syntax
Permitted values are whole numbers between 0 and 100.
Integration
The parameter rdisp/max_comm_entries specifies the absolute number of communication entries.
More Information
Note the following documentation associated with this parameter:
RFC Resources in the Application Server
Dynamically Configuring RFC Quotas
rdisp/max_comm_entries
This parameter specifies the maximum number of communication entries on an application server.
This parameter allows you to control the number of RFC/CPIC connections on an application server.
Every RFC or CPIC communication with a partner program requires an entry. If the initiator and recipient of an RFC/CPIC program are running on the same
application server, two entries per communication are required.
Every communication entry requires 100 bytes of shared memory.
Prerequisites
Structure
Work area Dispatcher/task handler
Unit Integer value
Standard value 500
Dynamically changeable No
Value Range and Syntax
Permitted values are whole numbers between 0 and 8192.
Integration
If a lot of RFC balancing accumulates on one application server and the value of parameter rdisp/max_comm_entries has been increased to accommodate
this, we recommend you set r rdisp/max_arq to the same value.
More Information
Note the following documentation associated with this parameter:
rdisp/rfc_max_comm_entries
Note
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 12 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 13/17
rdisp/max_arq
This parameter determines the maximum number of asynchronous requests that can be kept in the local work process queue.
The value should only be changed after consultation with SAP.
Structure
Work area Dispatcher
Unit Integer value
Standard value 500
Dynamically changeable Local and on all servers
Integration
If a lot of RFC balancing accumulates on one application server and the value of parameter rdisp/max_comm_entries has been increased to accommodate this,
we recommend you set rdisp/max_arq to the same value.
Background
AA A SAP work process can contain diverse messages:
Requests from a SAP-GUI
Requests from an ABAP program (RFC requests)
Requests from other WPs/application servers (messages)
Results of outstanding calls (enqueues, RFCs)
The procedure is always that a message leads to the work p rocess being activated. The work process p erforms an ac tion, possibly sends a result back and then
waits for a new message.
There are also cases where while one message is being processed, other messages are sent and depending on the circumstances, it may take a while before
they can be dealt with. Examples of this are enqueue and establishing RFC connections. Particularly with asynchronous RFC, the RFC replies can be sent at any
time you want.
As the work process cannot, however, process every type of message in every s ituation, each WP context has a local queue. Here messages that cannot be
immediately processed are stored temporarily. Parameter rdisp/max_arq defines the size of this local queue.
rdisp/rfc_max_wait_time
This parameter determines the maximum period of time in seconds that the system waits after a load check. The wait time is calculated based on the amount of
available resources. The fewer resources that are available, the longer the wait time.
You can increase the wait time if you suspect that a resource bottleneck is about to occur, and if you cannot resolve the bottleneck and are prepared to accept a
longer wait time.
Prerequisites
The RFC resource check is active (see rdisp/rfc_use_quotas = 1).
Structure
Work area Dispatcher/task handler
Unit Integer value (seconds)
Standard value 15
Dynamically changeable Local and on all servers
Value Range and Syntax
Possible values are whole numbers between 1 and 120 (seconds).
More Information
Note the following documentation associated with this parameter:Dynamically Configuring RFC Quotas
Caution
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 13 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 14/17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 15/17
1. Initially the maximum resources are set to 10,000.
resources = 10,000
2. Check the communication channels : Are there still sufficient entries in the communications table? The entries are displayed in transaction SM51, Goto
Server Info Comm. Table .
1. Calculates:
quota=(rdisp/max_comm_entries*rdisp/rfc_max_comm_entries) / 100
(Only the whole number counts, numbers after the decimal point are ignored.) If the quota is 0, the reason =
TH_ARFC_RES_LOCAL_LOW_MAX_COMM_ENTRIES, and the return value = 2 (NEVER_GET_RESOURCES) is set.
2. The system determines the number of communication channels in use, sets the quota to this value, and checks whether the maximum quota has been
exceeded.
3. If the quota has been exceeded (count>quota), no resources are returned, the reason = TH_ARFC_RES_LOCAL_MAX_COMM_ENTRIES is set, and the
return value=0 is set.
4. Otherwise, the resources are calculated afresh (and may be reduced).
new_resources=min(quota–count, resources)
and reason = TH_ARFC_RES_OK, and return value = 0 is set.
3. The number of asynchronous r ead requests: The work process can only buffer a limited number of asynchronous messages. The profile parameter
rdisp/max_arq (default value=200) determines the exact number. This value cannot be dynamically changed.
1. quota = max(rdisp/max_arq – act_size – 20, 0 )
In addition to the queue entries currently occupied a buffer of 20 is deducted.
2. count = asyn_rfcs (number of asynchronous RFCs)
3. If the quota has been exceeded (count > quota), no resources are returned, and the reason = TH_ARFC_RES_LOCAL_ARFCQUEUE and the return
value=0 returned.
4. Otherwise, the resources are calculated afresh, and the reason = TH_ARFC_RES_OK, and return value = 0 s et.
More Information
Detailed Check
Detailed Check
This check can be done in the Dispatcher or in the work process: If the local application server is to be checked, this is done in the work process; if a different
server is to be checked, it is done in the Dispatcher of the server to be checked. This means that a free dialog work process is not needed to process the request.
The caller’s time is thus not wasted, as the caller does not have to wait for a free work process.
Process
The procedure is as follows:
1. The number of maximum available resources is d etermined: Number of dialog work processes (dia_wps) – number of dialog work processes that are to
remain free for the dialog user (wait_dia_wps).
The profile parameter rdisp/rfc_min_wait_dia_wp performs this calculation.
If the number of dialog work processes is smaller than the number of work processes that have to stay free, the number is then set to wait_dia_wp =
dia_wps – 1.
2. The system also checks whether resource identification is active at all.
If resource identification is not active (not allowed), the return value = 2 and the reason = TH_ARFC_RES_NOT_ACTIVATED.
3. The system checks whether there are free work processes available to accept requests.
1. The number of free work p rocesses is calculated (waiting_wps).
2. If waiting_wps <= wait_dia_wps, no resources are returned and the reason = TH_ARFC_RES_WAITING_DIAWP and the return value=0.
3. The resources are calculated again.
First of all the number of work processes occupied with active RFCs is calculated. (function DpGetExtCheckedResourcesCnt). This number isdeducted from the maximum number of processes available:
dia_wps-wait_dia_wps–DpGetExtCheckedResourcesCnt()
Take this value and compare it to the number of currently free dialog work processes. Whichever is the lower of the two values equals the number of
resources available.
resources=min(waiting_wps,(dia_wps–wait_dia_wps-DpGetExtCheckedResourcesCnt()))
4. Check the communication channels : If there are still sufficient entries in the communication table (display in SM51 Goto Server Information
Comm.Table )
1. quota = (rdisp/max_comm_entries * rdisp/rfc_max_comm_entries) / 100
(Only the whole number counts, numbers after the decimal point are ignored.)
If the quota is 0, the reason = TH_ARFC_RES_LOW_MAX_COMM_ENTRIES, and the return value 2 (NEVER_GET_RESOURCES) is set.
2. The system determines the number of communication channels in use, and checks whether the maximum quota has been exceeded.
3. If the quota has been exceeded (count>quota), no resources are returned, the reason TH_ARFC_RES_MAX_COMM_ENTRIES is set, and the return
value 0 is set.
4. Otherwise, the resources are calculated afresh (and may be reduced).
new_resources = min(quota – count, resources) and reason = TH_ARFC_RES_OK, and return value 0 is set.
5. Check the occupied work processes : Is the user already occupy ing too many work processes? (disp lay in SM50)
1. quota = (dia_wps * rdisp/rfc_max_own_used_wp) / 100
(Only the whole number counts, numbers after the decimal point are ignored.)
If the quota is 0, the reason = TH_ARFC_RES_LOW_OWN_USED_WP, and the return value = 2 (NEVER_GET_RESOURCES) is set.
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 15 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 16/17
2. The system determines the number of communication channels in use, and checks whether the maximum quota has been exceeded.
3. If the quota has been exceeded (count>quota), no resources are returned, the reason = TH_ARFC_RES_OWN_USED_WP is set, and the return value=0
is set.
4. Otherwise, the resources are calculated afresh (and may be reduced).
new_resources = min(quota – count, resources) and reason = TH_ARFC_RES_OK, and return value 0 is set.
6. Check the Dispatcher queue (dialog q ueue of Dispatcher)
Since each RFC is connected to an entry in the dialog queue, the system checks whether there is sufficient space in the dialog queue for new entries.
(Display in SM51 Goto Server Information Information Queue Info , profile parameter rdisp/elem_per_queue, default=2000). The latest queue
information is then read.
1. If an error occurs, the reason TH_ARFC_RES_REQQUEUE_ERROR and the return value=2 are set. Otherwise:
que_max = maximum number of entries in the queue
count = current number of entries in the queue
2. quota = (que_max * rdisp/rfc_max_queue) / 100
(Only the whole number counts, numbers after the decimal point are ignored.)
If the quota is 0, the reason = TH_ARFC_RES_LOW_REQQUEUE, and the return value = 2 (NEVER_GET_RESOURCES) is set.
3. If the quota has been exceeded (count>quota), no resources are returned, the reason = TH_ARFC_RES_REQQUEUE is set, and the return value=0 is
set.
7. Logons
Sinces every RFC is linked to a logon in the target system, the system checks whether any further logons can be carried out (display in transaction SM04,
profile parameter rdisp/tm_max_no, default=200).
1. quota = (rdisp/tm_max_no * rdisp/rfc_max_login) / 100
(Only the whole number counts, numbers after the decimal point are ignored.)
If the quota is 0, the reason = TH_ARFC_RES_LOW_LOGIN, and the return value = 2 (NEVER_GET_RESOURCES) is set.
count = number of logons
2. If the quota has been exceeded (count>quota), no resources are returned, the reason = TH_ARFC_RES_LOGIN is set, and the return value=0 is set.
3. Otherwise, the resources are calculated afresh (and may be reduced).
new_resources = min(quota – count, resources) and reason = TH_ARFC_RES_OK, and return value=0 is set.
8. Own logons
Sinces every RFC is linked to a logon in the target system, the system checks whether any further logons can be carried out. The amount of own logons is
restricted (display in SM04, profile parameter rdisp/tm_max_no, default=200), so that any one user cannot log on to the system too many times.
1. quota = (rdisp/tm_max_no * rdisp/rfc_max_own_login) / 100
(Only the whole number counts, numbers after the decimal point are ignored.)
If the quota is 0, the reason = TH_ARFC_RES_LOW_OWN_LOGIN, and the return value = 2 (NEVER_GET_RESOURCES) is set.
count = number of logons
2. If the quota has been exceeded (count>quota), no resources are returned, the reason = TH_ARFC_RES_OWN_LOGIN is set, and the return value=0 is
set.
Otherwise, the resources are calculated afresh (and may be reduced).
9. Server status
So that the server can process an RFC request, it must be ready for use. The normal status of the server is Active. If the server has a different status, noresources are returned and the reason is set accordingly.
For more information: SAP Appli cation Server States
TH_ARFC_RES_SERVER_HIBERNATE: the server is deactivated (in SM51 or SMMS; this ensures that the server does not get any more requests –such as
updates – from other servers).
TH_ARFC_RES_SERVER_SHUTDOWN, the server is shutting down
TH_ARFC_RES_SERVER_STOP: the server was stopped (after being shut down)
TH_ARFC_RES_SERVER_STARTING: the server is in the starting-up phase and is not yet operational.
TH_ARFC_RES_SERVER_INIT: the server is being initialized (before starting-up p hase).
TH_ARFC_RES_SERVER_UNKNOWN: the server is in an unknown phase (should not happen).
More Information
Trigger Resource Check as RFC Client
Trigger Resource Check as RFC Client
In transaction SM59 you can trigger from the server the resource check for an RFC destination. This delays the transmission of RFC calls.
Before the function module is executed the system checks whether the destination system has sufficient resources. If it hasn’t, the execution of the function module
is delayed for a specified time.
The algorithm is the same as in the Detailed Check.
Procedure
1. In transaction SM59 select the required RFC destination and double-click on it. Then choose Edit aRFC Options .
2. Choose Load Check Active.
You can select either a static or a dynamic check.
Static check after n calls : Standard value n =10 is preset, but you can change this.
After n asynchronous calls, the current system load of the remote system is evaluated.
PUBLIC© 2013 SAP AG or an SAP affiliate company. All rights reserved.
Page 16 of 17
8/13/2019 Erp2005 Ehp 05 en 35 Fbadbfa53c4447950ca7d7cb1d82a3 Content
http://slidepdf.com/reader/full/erp2005-ehp-05-en-35-fbadbfa53c4447950ca7d7cb1d82a3-content 17/17
Dynamic check: First of all the number of available resources for this destination is determined. If these resources are occupied by asynchronous calls,
the next load check is carried out.
Result
This check on the client system ensures that requests do not accumulate in the dispatcher queue on the RFC server.
More Information
Problems with RFC Resource Assignment
Problems with RFC Resource Assignment
Process
You have defined your parameters so that resource bottle necks will not arise. Your applications make RFC calls of the permitted types only. Yet you have
realized that more work processes than allowed are occupied with RFC calls.
This can happen in the following circumstances:
An asynchronous RFC transmits a synchronous RFC
The asynchronous RFC transmits one or more synchronous RFC calls in the destination system. For these the profile parameters are only valid if
rdisp/rfc_check is set to 3 in the target system.
SAPLARFC occupies all work processes
In the Work Process Overview of an instance (transaction SM50), you can see that many dialog work processes are occupied with the program SAPLARFC.
You might also see update or batch processes with the status stopped RFC.
This is b ecause in transaction SMQS as many tRFCs were started at the same time as the parameter settings allow and this has resulted in the user contexts
losing their rollability. This situation arises for instance when mass data is processed.
See SAP note 726148 for more information and possible solutions.
More Information
Limit Values for Resource Allocation for Asynchronous RFC