Skip to end of metadata
Go to start of metadata


This wiki describes the general operation process of the dynamic work processes.


Dynamic work processes can be used to modify (increase) the amount of defined work processes, based on application server load requirements. This includes restarting new work processes and closing them when no longer needed. 

Dynamic work processes can be created from types DIA and UPD (also UP2 in kernel versions 7.4x) during runtime, depending on the resources needs of the application server. This enables a kind of adaptive computing. These work processes will be started if the dispatcher notices that queue is under high load; or to solve deadlocks situations or bottlenecks.
In general, the Taskhandler tries to start a dynamic WP if the following conditions are fulfilled:

 - all WPs of a certain type are in HOLD state (inactive standby DIA WPs do not count) or
 - all priority queues for DIA WPs with prio normal/low are in use by DIA WPs in HOLD state.

Afterwards, once queue is no longer under high load or the bottleneck has been resolved, these dynamic work processes are not needed anymore. Therefore, they are ended by the dispatcher. Work processes can also be stopped after the maximum alive time for idle dynamic workproesses (rdisp/max_dynamic_wp_alive_time) has passed.

On the dispatcher trace file(dev_disp), we can track this scenario (different entries can be found depending on NW release): 

  DpWpDynCreate: created new work process W<nr>-12345                          or
  create new work process W<nr> (PID:12345 HANDLE:6789)

  DpSendLoadInfo: queue XXX now with high load, load/queue fill level = 84.184870 / 1.300000   
  DpUpdateStatusFile: state=YELLOW, reason=Length of high priority queue exceeds limit

  DpSendLoadInfo: queue UPD no longer with high load 
  DpWpCheck: dyn W<nr>, pid 12345 no longer needed, terminate now
  DpHdlDeadWp: W<nr>  (pid=12345) terminated automatically

This WP stoppage causes the SystemLog (transaction SM21) entries “Stop Workp” to be written:
<Date> <Time> <server>                              Q02 Stop Workp. <nr>, PID 12345

This's not an error, but an 'Information’ entry. So, this is a normal behavior with the dynamic work process start feature. 

All the work processes that are currently running on a system can be checked in the Process Overview (transaction SM50). In the Header Area, you can find how many work processes per each type are defined/being used at that moment.

How to analyze

A level 2 trace from the dispatcher will also show WPs status at the moment of the creation of the dynamic work processes, giving further reason for the root cause of its creation:

  DpHandleProcess: start dynamic W<nr>
  DpIWpSetNewStat: switched W<nr> from WP_SLOT_FREE    to WP_NEW
  DpIWpSetNewStat: info for DIA: new/wait/run/hold/standby/killed = 1/5/0/20/0/0 wps
  dwpath: C:\usr\sap\<SID>\<instance>\exe\disp+work.EXE
  create new work process W<nr> (PID:12345 HANDLE:6789)
  DpWpStartWp: created W<nr>

For troubleshooting purpose, you can use SAP performance monitoring -transaction /SDF/MON-, which allows to collect different types of system performance snapshots, providing information from CPU, memory, processes, users… It can be specified frequency and time-window when the snapshot should be collected. 

It can be helpful to maintain /SDF/MON scheduled, to match with the information coming from the Dispatcher trace file. See:
Display Snapshot Monitoring

Related Content

Related Documents

Dynamic work processes

Configure Dynamic Work Processes

Related SAP Notes/KBAs

The 720 and 721 kernel versions support the dynamic increase of the number of work processes at runtime. However, this function is not fully compatible with NW 7.00 and NW 7.01.
See section ‘5.6 Dynamic work processes’ from  Notes:
 1636252 -  Installing a 7.20 kernel in SAP Web AS 7.00/7.01/7.10/7.11
 1713986 - Installation of kernel 721 (EXT)

 See also:
 2001276 - Changed configuration as of 7.40 SP2
 1962145 - Dynamic work process starts and stop frequently
 2190597 - Work Process Configuration - Best Practices


  • No labels