Strobe Performance Profile for CICS/DBCTL Regions


This section shows a sample Strobe Performance Profile from a CICS/DBCTL environment. For information about Profiles produced in a DL/I or batch region, see Interpreting-Strobe-performance-profile-for-dependent-regions. For information about Profiles produced in an IMS control region or DL/I Separate Address Space, see Strobe-Performance-Profile-for-IMS-Supervisory-Regions.

If your installation has Strobe for CICS, and you have produced the CICS Performance Supplement, the transaction reports in the supplement contain all the CICS/DBCTL data. Otherwise, Strobe formats the data according to the standard transaction report format. For additional information on producing the CICS Performance Supplement, see Strobe-CICS-Performance-Supplement-reports.

In a CICS/DBCTL environment, attribution does the following:

  • Identifies the four-character transaction code of the CICS task associated with a DBCTL thread
  • Identifies the modules executing under the control of the threads (these modules implement DL/I services)
  • Reports the displacement within the application module that issued the DL/I service request

Analyzing the Reports from a CICS/DBCTL Environment

The Measurement Session Data report (see the following figure) describes the environment during a measurement session. When Strobe measures a job step executing in a CICS region, the report shows in the SUBSYSTEM field the version and release number of CICS, the region identifier DBC to show that this CICS region is connected to IMS DBCTL, and the IMS version and release number.

Measurement Session Data Report for CICS/CBCTL Region

image2023-2-15_17-7-25.png

Choosing Between the Execution and Wait Reports

How you analyze the performance of your CICS/DBCTL environment depends on the performance improvement opportunities exposed by the Strobe Performance Profile, and whether your primary focus is on the application programs or on the system-level modules.

For a summary of CPU and I/O resource consumption by task execution and file access activity, examine the Resource Demand Distribution report.

To reduce CPU time consumption, first determine what is using CPU time by examining the Resource Demand Distribution, Program Section Usage Summary, and Transaction Summary reports. If application programs consume most of the time, then analyze the Performance Profile as described in Using-the-Strobe-Application-Performance-Measurement-System. If system service modules consume most of the CPU time, determine your primary focus. If your focus is on IMS services for DL/I application programs, then analyze the DL/I CPU Summary and CPU Usage by DL/I Request reports. If your focus is on other system service routines, analyze the Attribution of CPU Execution reports.

The Resource Demand Distribution report (see the following figure) summarizes the use of CPU and I/O resources by the task execution and file access activities occurring in the measured job step. All percentages of resource use are based on total run time.

In this example, the CICS management TCBs (DFHKETCB and DFHKETCB1) used more than 4% of the CPU time and were responsible for most of the wait time. Each task DFSPAT00 through DFSPAT002 is a DBCTL thread. The report combines all other activity, including additional thread tasks, under OTHER. To determine which transactions were responsible for the most CPU usage, examine the transaction reports.

Resource Demand Distribution Report

New_RDD_report.png

Identifying Opportunities for Reducing CPU Usage in a CICS/DBCTL Region

The Program Section Usage Summary report (see the following figure) shows the activity of each program module and subsystem that was active during the measurement session.

In this example, more than 30% of the CPU time was spent executing IMS system service modules. To examine the IMS services for DL/I application programs, analyze the DL/I CPU Summary and CPU Usage by DL/I Request reports.

Program Section Usage Summary Report

image2021-2-8_10-39-52.png

The DL/I CPU Summary report (DL/I CPU Summary Report) identifies the total CPU time by the transaction, module, section, and PSB name that initiated the request for IMS DL/I services.

In this example, more than 22% of the CPU time was spent executing PSB STRIP110 of module DLICO21 and transaction DEC1. The CPU Usage by DL/I Request report (CPU Usage by DL/I Request Report) for PSB STRIP110 of module DLICO21 and transaction DEC1 will provide detail information for all DL/I requests.

DL/I CPU Summary Report

image2021-2-8_10-41-0.png

The CPU Usage by DL/I Request report (CPU Usage by DL/I Request Report) for transaction DEC1, module DLICO21, and PSB STRIP110 shows that more than 19% of the CPU time for PSB STRIP110 was executing a Get Hold Next (GHN) function call at program statement line number 215, and hexadecimal location +5D8. It also shows that the reference number is 3. If you look above at the detail line for reference number 3, you see that the PCB Type shows a Database retrieval using PCB LOANPCB and DBD STRIDLON to retrieve and hold an entry from the CUSTROOT segment within the STRIDLON database.

CPU Usage by DL/I Request Report

image2021-2-8_10-41-39.png

To provide the line number and procedure name for activity shown in module DLICO21, the map file for the module was included when creating the Strobe Performance Profile. Translator Output for Module DLICO21 shows the source code.

Examine the specified module logic, the DL/I call, and its parameter list for the most efficient way to access the data.

The translator output in the following figure reveals that line 215 is a call statement generated by the CICS translator in response to the EXEC DLI GET NEXT statement beginning on line 207. Because this statement is responsible for more than 19% of the CPU activity for the session, examine this statement to make sure that it is necessary within the context of the entire program.

Translator Output for Module DLICO21

image2021-2-8_10-42-36.png

Identifying CPU Usage by Transaction in a CICS/DBCTL Region

The CICS Performance Supplement includes the Transaction Summary report and the CPU Usage by Control Section reports.

The Transaction Summary report (see the following figure) shows the distribution of CPU time among transactions within the environment. Each transaction appearing in the report is described in more detail in the Transaction Usage by Control Section report.

In this example, transaction DEC1 is responsible for over 24% of the CPU time used by the environment.

Transaction Summary Report

image2021-2-8_10-43-41.png

The CPU Usage by Control Section report (CPU Usage by Control Section Report) shows the CPU time spent executing each CICS transaction. For transaction DEC1, this report indicates that most of the CPU time was spent in DL/I, IRLM, and VSAM modules rather than CICS modules. This pattern is typical for transactions that invoke DL/I services.

In this example, VSAM module IDA019L1 used the most CPU time (5.52%), while IMS module DFSREP00 used more than 4% and IRLM module DXRRLM10 used 3.52%. To determine what programs invoked these service modules, examine their Attribution of CPU Execution Time reports.

CPU Usage by Control Section Report

image2021-2-8_10-44-34.png

Attribution of CPU Execution Time

The Attribution of CPU Execution Time reports identify which system service routines were invoked by a specific module. These reports also indicate the location in the calling module that invoked the system service routine. (For a description of this report, see The Attribution of CPU Execution Time Report for IMS Environments.) In this example (Attribution of CPU Execution Time Reports), the statement at line 215 in module DLICO21 is responsible for a majority of the CPU time in all three supervisory routines. An examination of the code (Translator Output for Module DLICO21) shows the statement text.

In this example, the code was indexed before the Strobe Performance Profile was generated, and the text is a result of indexing output from the COBOL compiler.

Warning

Important

Indexing of COBOL programs can only be done using a DDIO file. For more information, refer to the Using-Strobe-to-measure-online-applications-and-batch-programs.

Attribution of CPU Execution Time Reports

image2021-2-8_10-46-16.png

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC AMI Strobe 21.01