Skip to Content
Technical Articles
Author's profile photo Manfred Mensch

Use ST05 to Monitor the Communication of the ABAP Work Process with External Resources

In my previous blog posts Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS and Use Transaction STATS_FE to Analyze the Performance of your Web Application, I have put you as a software developer in charge of your business applications’ performance. Here, performance encompasses end-to-end response time and scalability, which is impacted by your application’s resource consumption. Users expect short response times and high throughput. To meet these non-functional requirements, you need tools to find root causes for poor performance.

With my transaction STATS_FE, you break down your applications’ end-to-end response times into three main contributors: front end, network, and back end. The ABAP back-end portion is covered by the ABAP kernel’s main statistics records. You display and evaluate them with my transaction STATS. There you might discover that an individual task in the back end is too slow or requires too many resources. Further, you might conclude that this is due to communication of the ABAP work process executing your applications’ ABAP code with external resources – most prominently the database, but also remote servers accessed via RFC or HTTP calls, or other entities engaged through appropriate interfaces. Beyond this conclusion the back-end statistics records cannot be very helpful. They are a monitoring mechanism and a measurement tool, thus do not contain sufficient detail to identify the root cause.

To pin down bottlenecks and to derive efficient optimization approaches, you need a dedicated analysis tool that captures and logs the communication across the boundaries of the ABAP work process. This is the purpose of the Performance Trace (SAP GUI transaction ST05), which not only registers the communication with external entities via the relevant interfaces, but also enriches the corresponding records with measurement data (e.g., duration, resource consumption, amount of transferred data). ST05 is the ABAP stack’s interface trace tool. It captures events during application execution that leave a work process to request data or services from external resources, or that enter a work process to perform services for external callers. The set of the ensuing records is a trace of your applications’ outgoing or incoming data transmissions.

ST05 is a tool for the analysis of individual applications and their single user runtime behaviour. It investigate applications with respect to the resources they request from outside of the work process, and is also applicable to services provided for remote clients. ST05 is not suitable for load or mass tests.

The  information obtained from ST05 helps you to fulfill the expectations of your software’s users or operators. It identifies hot spots in an application that may be due to …

  • … expensive SQL statements
  • … unnecessary accesses to the persistence layer
  • … long running SAP locks
  • … RFC or HTTP issues

In contrast to the statistics records, which are always and autonomously recorded by the ABAP kernel, the ABAP work process’ communications are traced only on demand. Otherwise the associated overhead may slow down applications in productive use too much.

As I have already emphasized in my blog post Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS, the value of your performance analysis depends on the quality of the underlying measurements. You need some preparation to ensure that the captured information accurately and reproducibly reflects the performance of the application. Only then can you derive reliable conclusions.

  1. Confirm that the test system is configured and customized correctly.
  2. Verify that the test system is not under high load from processes running concurrently with your analyses.
  3. Carefully define the business scenario to be tested by your application. It must adequately represent the application’s behavior in production.
  4. Provide a set of test data that is representative of your productive data. Only then will the scenario execution resemble everyday use.
  5. Execute the scenario a few times to fill the buffers and caches of all involved components (e.g., DB cache, application server’s table buffer, web browser cache). Otherwise, your recorded traces will not be reproducible, but will capture one-time or first-use effects like loading data into buffers and caches. This may lead you to incorrect diagnoses, or make it more difficult to identify the real issues. It is then much harder to draw reliable conclusions.

After this preparation, you activate the trace recording, then execute the application (this is the measurement run), and afterwards deactivate the trace recording. Next display the trace. The subsequent evaluation of the trace records will identify hot spots and bottlenecks of your application that are caused by the communications and associated data transmissions of the ABAP work process with external resources.

List of Blog Posts on ST05

In a sequence of individual posts, I plan to cover the main features of ST05, to explain the necessary technical background, and to share best practices for efficiently working with the tool.

  1. Basic Use
    How do you work with the tool?
  2. Technical Background of Trace Recording and Analysis
    What is the technology behind ST05 and how does it affect its behaviour?
  3. Trace Directory
    How do you save and recover traces?
  4. Advanced Features of ST05
    1. Activate Trace Recording with Filter
      How can you control the trace recording?
    2. Aggregate Trace Records
      How do you aggregate individual trace records to get a better overview?
    3. Analyze Individual Trace Records
      What can you learn about the processing of communication steps?

(The blog posts with links are already available, the others are in progress or planned. Please visit this blog post regularly and check for updates.)

Examples shown in these blog posts were recorded while running the transactional S/4HANA Fiori application F0997 (Audit Journal) from the Finance line of business in an internal test system. The test case displayed the changes for Company Code 1010 and Fiscal Year 2023.

Transaction ST05 is part of SAP_BASIS since decades. I am continuously improving it and in this series of blog posts I am presenting the tool’s state for SAP NetWeaver 7.58 as of early 2023. Depending on your system’s release, some of the features may not yet be available.


My SAPinsider article on transaction ST05:
Manfred Mensch:
Track Down the Root of Performance Problems with Transaction

Previous blog posts related to ST05:
Siegfried Boes:
The SQL Trace (ST05) Quick and Easy

Randolf Eilenberger:
Code Inspector Integration into SQL Trace of ST05

My blog posts on transactions STATS and STATS_FE:
Manfred Mensch:
Use Transaction STATS_FE to Analyze the Performance of your Web Application
Manfred Mensch:
Measure your Application’s Performance and Resource Consumption: Evaluate Statistics Records with Transaction STATS

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo Manfred Mensch
      Manfred Mensch
      Blog Post Author

      I have just now completed and published the next blog post in this series:
      Activate Trace Recording with Filter.

      It describes how you restrict trace recording to certain events and statements, which you have previously identified as critical for your applications' performance.