Use ST05 to Analyze 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 business data 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 or analyze root causes.
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 values (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 investigates 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 (enqueues)
- … 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.
- Confirm that the test system is configured and customized correctly.
- Verify that the test system is not under high load from processes running concurrently with your analyses.
- Carefully define the business scenario to be tested by your application. It must adequately represent the application’s behavior in production.
- Provide a set of test data that is representative of productive data. Only then will the scenario execution resemble everyday use.
- 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). Without these pre-runs or warm-up runs, 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
In a sequence of individual posts, I cover the main features of
ST05, explain the necessary technical background, and share best practices for efficiently working with the tool.
- Basic Use
How do you work with the tool?
- Technical Background of Trace Recording and Analysis
What is the technology behind
ST05and how does it affect its behaviour?
- Trace Directory
How do you save and recover traces?
- Advanced Features of
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.
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.
I have published several articles in SAPinsider which are relevant to measuring and analyzing the performance of ABAP applications:
- Manfred Mensch:
Identifying Performance Problems in ABAP Applications: Analyze Statistics Records Using the Performance Monitor (Transaction STATS)
- Manfred Mensch:
Track Down the Root of Performance Problems with Transaction ST05
- Manfred Mensch:
Pinpoint Performance Bottlenecks Using ABAP Profiling: Analyze Your Application with Transaction SAT
The copyright to these three articles is with SAPinsider and they appear here with permission from the publisher.
There are two previous blog posts related to
ST05, based on an older SAP_BASIS release, but still useful:
- Siegfried Boes:
The SQL Trace (ST05) Quick and Easy
- Randolf Eilenberger:
Code Inspector Integration into SQL Trace of ST05
Refer to my blog posts on transactions
STATS_FE for measuring your application’s end-to-end response time and resource consumption: