SAPFree referencePDF, Excel, Word exportSAP NetWeaver / BasisAll SAP HANA and Basis tools

SAP Work Process Types, SM50 Statuses and On Hold Reasons

This reference covers the SAP work process types (DIA, BTC, UPD, UP2, SPO, ENQ) with the profile parameters that set their counts, the statuses you see in SM50 and SM66, and the reasons shown for On Hold processes. It applies to SAP NetWeaver AS ABAP 7.x and ABAP Platform systems; dynamic work process parameters apply from kernel 7.40.

Download:
GroupCodeMeaningWhat it tells youAction
Work process type
DIA
Dialog work process, count set by rdisp/wp_no_dia
Serves dialog steps of users, RFC calls and HTTP requests
All DIA busy: check SM50 for long runners, SM66 across instances, add DIA or move load
Work process type
BTC
Background work process, count set by rdisp/wp_no_btc
Runs jobs scheduled in SM36 and transport import jobs
Jobs waiting in SM37 with status Released: check free BTC processes and operation modes (RZ04)
Work process type
UPD
Update work process (V1), count set by rdisp/wp_no_vb
Executes time-critical update modules after COMMIT WORK
Update errors or backlog: SM13 for cancelled or waiting updates
Work process type
UP2
Update work process (V2), count set by rdisp/wp_no_vb2
Executes non-critical V2 updates (statistics); if none configured, UPD processes do V2
Large V2 backlog in SM13: add UP2 or check failing statistics updates
Work process type
SPO
Spool work process, count set by rdisp/wp_no_spo
Formats output requests for printers
Output stuck: SP01 and SPAD; check the spool server of the output device
Work process type
ENQ
Enqueue work process, count set by rdisp/wp_no_enq
Manages SAP locks when the enqueue server runs inside an instance (classic installs); with standalone ENSA/ENSA2 in the ASCS there is no ENQ work process
Lock issues: SM12 for lock entries and SMENQ for enqueue statistics
Parameter
rdisp/wp_max_no
Kernel 7.40 and later: maximum number of work processes, including dynamic ones
Upper limit the dispatcher may start when dynamic work processes are used
Check in RZ11; size to memory and CPU, not just to peak users
Parameter
rdisp/configurable_wp_no
Kernel 7.40 and later: number of work processes that can be distributed across types
Total configured pool the type parameters draw from
Check in RZ11 together with the rdisp/wp_no_* values
Status
Running
The process is executing a request
Look at Time, Report, Action and Table columns to see what it is doing
Long runner: check the user and program, ST04 or ST05 for the SQL, cancel only with the owner's agreement
Status
Waiting
Idle and available for a new request
Free capacity of that type
None; few or no Waiting DIA during the day means a capacity problem
Status
On Hold
The process is reserved for one request and waits for something, shown in the Reason column
Read the Reason column (PRIV, RFC, CPIC, DEBUG, SLEEP, ADM)
See the reason rows below
Status
Stopped
The process has terminated and was not restarted
Check the Restart and Err columns; repeated errors point to kernel, memory or database problems
Read dev_w<n> trace and SM21; restart via SM50 or fix the cause
Reason
PRIV
Private mode: the user context exhausted extended memory and moved to heap memory, binding the process to that user
Memory-hungry transaction; the process cannot serve others until the dialog ends
Find the user and program; check abap/heap_area_dia and ztta/roll_extension in RZ11, and ST02 for extended memory
Reason
RFC
Waiting for an RFC call to return
Bottleneck may be in the called system or the network
Check the RFC destination in SM59, the gateway (SMGW) and the remote system's SM50
Reason
CPIC
Waiting on a CPI-C communication
Older interface or gateway conversation waiting for the partner
Check SMGW gateway connections and the partner program
Reason
DEBUG
The process is in the ABAP debugger
A developer or support user holds a dialog process (common in QA, a risk in production)
Identify the user; in production, debugging should be controlled and ended quickly
Reason
SLEEP
The program is waiting (for example WAIT UP TO statement)
Deliberate wait in the code, often polling
Check the program; frequent sleeps in DIA are a design issue
Reason
ADM
Administrative task of the dispatcher or work process
Usually short and internal
Only investigate if it persists; check dev_w<n> and SM21
Action
Action: cancel without core
SM50: select process > Process (Administration > Process in newer releases) > Cancel Without Core
Ends the request; the user session gets a short dump
Use first; check ST22 for the resulting dump
Action
Action: cancel with core
As above but writes a core file for SAP support analysis
Creates a core dump in the work directory
Only when SAP support asks; core files can be large
Action
Action: trace
SM50: select process > Process > Trace > Components or Display File
Raises the trace level of that process and shows dev_w<n> from /usr/sap/<SID>/<instance>/work
Reset the trace level after analysis

SM50 shows the work processes of the instance you are logged on to; SM66 shows a global overview across all instances. With dynamic work processes (kernel 7.40 and later) the dispatcher can start and stop processes within rdisp/configurable_wp_no and rdisp/wp_max_no, so counts in SM50 can change during the day. Check every parameter and its default in RZ11 on your own release.

Recurring work process bottlenecks?

Send us an ST03 workload summary and your rdisp/wp_no_* values and we will return a reviewed sizing view.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it during an incident

Open SM50 on the instance users complain about, or SM66 for all instances. Count the dialog processes in status Waiting: if there are none, users wait in the dispatcher queue. Then group the busy ones: many Running with the same report points to one heavy program; many On Hold with reason RFC points to a slow called system; PRIV points to memory; DEBUG points to people. Filter this table by the code you see, read the action, and confirm with the follow-up transaction (ST22 for dumps, SM21 for the system log, SM13 for updates, SM37 for jobs). Cancel processes only after you know who owns the request.

Where the configuration lives

Work process counts are instance profile parameters, maintained in RZ10 and displayed in RZ11: rdisp/wp_no_dia, rdisp/wp_no_btc, rdisp/wp_no_vb, rdisp/wp_no_vb2, rdisp/wp_no_spo and rdisp/wp_no_enq. Operation modes (RZ04) can switch DIA and BTC counts between day and night without restart. From kernel 7.40, dynamic work processes add rdisp/configurable_wp_no and rdisp/wp_max_no, letting the dispatcher start extra processes under load. The enqueue work process exists only where the enqueue server runs inside an application instance; with a standalone enqueue server in the ASCS, there is none.

PRIV mode explained

A dialog work process normally switches between users: each user context lives in extended memory and is mapped in and out. When a user context needs more than the extended memory quota (ztta/roll_extension and related parameters), it allocates local heap memory, limited by abap/heap_area_dia. Heap memory belongs to the process, so the process is now bound to that user: status On Hold, reason PRIV. A few PRIV processes are normal for large reports; many at once can exhaust dialog capacity. Look at ST02 for extended memory usage and find the programs that drive it, usually unrestricted selections or large internal tables.

Common mistakes

Adding dialog processes when the real cause is RFC waits on another system just moves the queue. Cancelling a Running process that is in an update or a commit can leave half-finished business documents; check SM13 afterwards. Leaving trace levels raised after analysis fills the work directory. And judging capacity from one SM50 snapshot misses peaks: use the workload monitor (ST03) for history before changing counts.

Frequently Asked Questions

What are the work process types in SAP?

Dialog (DIA) for user and RFC requests, background (BTC) for jobs, update V1 (UPD) and V2 (UP2) for update modules, spool (SPO) for output formatting, and enqueue (ENQ) where the lock server runs in an application instance. Their counts are set by the rdisp/wp_no_* profile parameters.

What does PRIV mean in SM50?

PRIV means private mode: the user context used up its extended memory quota and allocated heap memory, which binds the work process to that user until the dialog step sequence ends. Check the program and user, ST02 extended memory, and parameters such as abap/heap_area_dia.

What is the difference between SM50 and SM66?

SM50 shows the work processes of the application server you are logged on to and lets you cancel or trace them. SM66 shows a global overview of active work processes across all instances of the system, which is the better first view in a multi-instance landscape.

Why does a work process show On Hold with reason RFC?

The process made an RFC call and is waiting for the reply. The cause is usually in the called system (busy work processes, long-running function module) or the connection. Check the destination in SM59, the gateway in SMGW and the work processes of the remote system.

If you want your Basis team to ask your SAP systems what is holding work processes right now, in plain English on your own servers, we can set that up.