Dynamic Work Processes

Dynamic work processes enable the work process configuration of the NetWeaver Application Server (AS ABAP) to be modified in accordance with the current specifications while the system is running. This includes restarting new work processes and closing work processes no longer needed.

Purpose

In older releases there was only the CCMS Operation Mode Switching that enabled the work process type to be changed while the system was running. Work processes of dialog type during the day could be assigned type batch at night time. This type switch was not dynamic (controlled by the system), and neither was it possible to start new processes while the system was running.

Dynamic work processes enable a kind of adaptive computing on the one hand, and on the other hand, enable the system to free itself from deadlocks. They can be seen as a supplement to operation mode switching.

Adaptive Computing

The earlier strategy for configuring an application server assumed fixed hardware conditions. The available hardware resources were distributed among the running applications and the profile parameters set accordingly. To activate new hardware resources, the server had to be restarted. The SAP configuration could be easily changed in the profile file.

The concept of adaptive computing is to let applications run on "virtual hosts", where resources can be changed while the system is running (for instance, a CPU can be added.) For this reason the application server must be able to change the fixed hardware conditions dynamically in order to:

  • Use the available hardware resources to full capacity

  • Release these resources when they are needed for other tasks

Once more CPUs have been added to a virtual server, the administrator can use these to full capacity by adding further work processes.

Deadlocks

The situation may arise where one work process needs a further work process in order to process a request. In particular when using RFC, dialog work processes reserve further dialog work processes. Deadlocks may occur when RFC cascades are used to parallelize the workload on a server. This problem cannot be solved with conventional configuration, but with dynamic work processes the dispatcher can recognize deadlocks and start further work processes.

Implementation

The procedure to make more work processes available is implemented in two stages:

  • Reserved (restricted) work processes: In addition to familiar work process types (dialog, background, spool, and so on), there is also the type reserved. The number of initial work processes (as with the other types also) is specified in the profile parameter rdisp/wp_no_restricted. No further reserved WPs can be created while the system is running.

    Reserved work processes are always of the dialog type. They are kept free in normal operation and not used until the system identifies a bottleneck and needs additional work processes to remove it.

  • Work processes started dynamically If the dynamic work processes are active (rdisp/dynamic_wp_check=TRUE), the system can start new work processes up to the limit specified in rdisp/wp_max_no in order to resolve deadlocks. Dynamic work processes can have different types (dialog, batch, update, and so on).

Standard Setting

No reserved work processes are configured in the standard setting (rdisp/no_restricted = 0), but up to two work processes can be started dynamically rdisp/max_wp_no=).

Recommendation Recommendation

This setting is appropriate if deadlocks are only expected in exceptional cases. If there are many applications transmitting a large number of RFCs, we recommend you configure additional dynamic work processes. To do this set the value to the sum of all configured work processes plus the required number of dynamic work processes (see example below).

End of the recommendation.
Configuration

Dynamic and reserved work processes are configured in profile parameters. All of the parameters described below are documented in detail in the system (transaction RZ11). The newly-added profile parameters are highlighted with an asterisk (*}.

Caution Caution

The maximum number of work processes is 600. This means the sum of all work process types plus the possible number of dynamic work processes. The parameter rdisp/wp_max_no is restricted to this sum.

End of the caution.
Profile Parameters for Work Process Configuration

Parameter Name

Meaning

Unit

Standard value

rdisp/wp_no_dia

Number of work processes of type dialog

Whole number (between 2 and 600)

2

rdisp/wp_no_btc

Number of work processes of type batch (background processing)

Whole number (between 0 and 600)

0

rdisp/wp_no_enq

Number of work processes of type enqueue (only on the enqueue instance >0)

Whole number (between 0 and 5)

0

rdisp/wp_no_vb

Number of work processes of type V1 update (time-critical)

Whole number (between 0 and 600)

0

rdisp/wp_no_vb2

Number of work processes of type V2 update (not time-critical)

Whole number (between 0 and 600)

0

rdisp/wp_no_spo

Number of work processes of type spool (print)

Whole number (between 0 and 600)

0

rdisp/wp_no_restricted*

Number of reserved work processes (see above)

Whole number (between 0 and 600)

0

rdisp/wp_max_no*

Maximum number of work processes including those created dynamically

Whole number between 2 and 600 (must be larger than the sum of all work process types), or DEFAULT

DEFAULT (Sum of all WPs + 2)

rdisp/dynamic_wp_check*

Activation of the check in the dispatcher, and if necessary of the starting of dynamic WPs (FALSE deactivates the capability of the server to create dynamic WPs)

Truth value

TRUE

rdisp/max_dynamic_wp_alive_time*

Lifespan of dynamic work processes: Dynamic work processes should be stopped once the bottleneck is removed. If you are not processing a request, the work processes are stopped after this time interval.

Seconds

300

rdisp/configurable_wp_no*

Number of configurable work processes for the Operation Mode Switching.

To enable the dispatcher to resolve deadlocks automatically, at least two work processes are reserved for this purpose in the DEFAULT setting.

Whole number between 0 and 600, or DEFAULT

DEFAULT (maximum number of WPs minus a quarter of all additional WPs (reserved and dynamic) but a maximum of wp_max_no - 2)

Overview

You can see all the work processes currently running in the process overview (transaction SM50, see also, Displaying and Managing Work Processes).

If you select  List  Configuration  and select the checkbox With Info Area, in the header area you can see how many dynamic work processes are possible and whether any are currently running.

Example Example

In the system the parameters have the following settings:

rdisp/wp_no_dia = 16

rdisp/wp_no_btc = 3

rdisp/wp_no_vb = 1

rdisp/wp_max_no = 30

Process overview (transaction SM50) could look like this.

This graphic is explained in the accompanying text.

End of the example.

The information shown means the following:

  • Total Number of Processes: Number of work processes currently running

  • Dialog: Number of configured work processes, number of dialog WPs currently free

  • Update, Background, etc. : Analogous information for the other configured WP types

  • Configurable: Value of parameter rdisp/configurable_wp_no: (here DEFAULT, so calculated according to the formula: maximum number of WPs - ((number of reserved WPs + number of dynamic WPs ) / 4): 38-(10/4) = 36 (rounded off)

  • Dynamic: maximum number of WPs – configured WPs: 30-20 = 10

  • Blockade Handling: Here you can see whether the dispatcher has created an additional work process for blockade handling (since the start or the last reset). You can see whether the process is still running in the Total Number of Processes. Choose  List  Reset  to reset the display. The number of dynamic/reserved processes will be set to zero and the line disappears from the display.

No comments:

topics