Lesson 2 of 5
Inside the application server
9 min
The application server instance is where ABAP programs run. Every SAP GUI transaction, every Fiori app's OData call and every background job is executed by processes inside an application server instance. Knowing those processes explains many things testers and administrators see: why a long report times out in dialog, why a document number appears before its accounting document, why a job waits.
Work process types
| Type | What it does | Typical example |
|---|---|---|
| Dialog | Executes interactive dialog steps for users and handles requests such as OData calls from Fiori apps | Maria saves a sales order |
| Background (batch) | Runs programs without user interaction as scheduled jobs | Nightly billing due list run; MRP run |
| Update | Writes database changes asynchronously after the dialog step commits; V1 updates are time-critical, V2 updates are less critical (such as statistics) | Posting the database records of a saved sales order |
| Spool | Formats and passes output to printers or other output channels | Printing delivery notes for shipping point 1710 |
| Enqueue | Manages the lock table when the lock service runs inside an application server; in modern systems it usually runs in central services instead | Not normally configured on Contoso's application servers |
Work process types. Counts per type are set in the instance profile by Basis.
Following one request
- User actionMaria saves a sales order in SAP GUI
- DispatcherRequest placed in the queue; a free dialog work process is chosen
- Dialog work processUser context rolled in; ABAP runs; locks set through the enqueue server; database read through the database interface
- CommitChanges bundled into an update request; order number returned to Maria
- Update work processDatabase changes written asynchronously; locks released
- Follow-onOutput may be sent to spool; jobs may pick the order up later
Two consequences matter for testing. First, because updates are asynchronous, a document number can be shown to the user before every database record is written. If an update fails, the user may have a number for a document that does not fully exist; administrators see these as failed update requests (transaction SM13). Second, dialog work processes are meant for short steps. A profile parameter limits how long a dialog step may run, which is why heavy reports and mass processing belong in background jobs.
Where administrators look
| Question | Where to look | What you see |
|---|---|---|
| What are the work processes on this instance doing? | Work process overview, transaction SM50 | Each work process, its type, status, program and user |
| What is running across all instances? | Global work process overview, transaction SM66 | Active work processes system-wide |
| Which locks are held? | Lock entries, transaction SM12 | Lock owner, object and time |
| Did updates fail? | Update requests, transaction SM13 | Pending and failed update requests |
| Did a job run? | Job overview, transaction SM37 | Job status, logs and spool output |
| Where is the printout? | Output controller, transaction SP01 | Spool requests and their status |
What would you do?
During a Contoso performance test, users report that saving sales orders hangs for 30 seconds at 9 a.m. SM50 shows every dialog work process busy with a long-running custom report started by several users. What is the best fix to propose?
- The dispatcher queues requests and hands them to work processes; ICM handles HTTP, the gateway handles RFC.
- Work process types: dialog, background, update, spool, and enqueue where the lock service runs in the instance.
- Updates are asynchronous: a document number can appear before all database changes are written.
- Heavy processing belongs in background jobs; dialog steps should be short.
Check your understanding · not graded
Lesson check
1. Which work process type executes scheduled background jobs?
2. Which component handles HTTP requests from Fiori apps?
3. Why might a user see an order number before all its database records exist?
4. Which transaction shows the work processes of the current instance?