Analyzing the Reports for a DL/I Batch Processing Region


The Measurement Session Data report for a DL/I batch processing application shows the identifier DLB in the SUBSYSTEM field and the name of the application in the IMS APPLICATION field (see the following figure).

Measurement Session Data Report for Batch Regions

image2023-2-15_17-3-22.png

Analyzing Batch DL/I Applications

To analyze a batch DL/I application’s CPU usage, begin with the Program Section Usage Summary report. To analyze the application’s wait time, begin with the Wait Time by Module report. Because the program’s EXEC TIME PERCENT in Measurement Session Data Report for Batch Regions was almost 17%, start by examining the CPU reports.

The Program Section Usage Summary report for a batch region (see the following figure) shows the activity of each program module that was active during the measurement session. If Strobe has obtained module mapping data, the report shows control sections within modules.

Program Section Usage Summary Report for Batch Regions

image2021-2-8_10-20-32.png

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

To determine which IMS system service modules were responsible for most of this activity, see the Program Usage by Procedure report (Program Usage by Procedure Report for Batch Regions) for pseudo-module .IMS.

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

In this example, more than 29% of the CPU time was spent executing PSB STRIL140 of module STRIL140. The CPU Usage by DL/I Request report for PSB STRIL140 of module STRIL140 provides detail information for all DL/I requests.

DL/I CPU Summary Report for Batch Regions

image2021-2-8_10-21-58.png

Identifying CPU Usage in Batch Regions

The CPU Usage by DL/I Request report (see the following figure) for module STRIL140 and PSB STRIL140 shows that more than 27% of the CPU time for PSB STRIL140 was spent executing a Get Hold Unique (GHU) function call at program statement line number 17, hexadecimal location +1CC. It also shows that the reference number is 1. The detail line for reference number 1 shows that the PCB Type shows a database retrieval using PCB LOANPCB and DBD STRIDLON to retrieve and hold a segment from the STRIDLON database. There is no SSA, meaning that this was an unqualified call.

CPU Usage by DL/I Request Report for Batch Regions

image2021-2-8_10-23-26.png

To provide line number and procedure name for activity shown in module STRIL140, the map file for the module was specified as an input file when the Strobe Performance Profile was created. Compiler Output for Module STRIL140 shows the source code for lines 17-19, which were responsible for all the detected activity. Examine the specified module logic, the DL/I call, and its parameter list for the most efficient way to access the database. For example, you can reduce the number of DL/I calls issued in the program by using SSAs to locate a particular segment. The following compiler output (see the following figure) shows the DL/I call within the application program that was referenced in the CPU Usage by DL/I Request and Wait by DL/I Request report examples.

Compiler Output for Module STRIL140

image2021-2-8_10-25-20.png

The Program Usage by Procedure report shows the actual names of all modules within the pseudo-modules. If control section mapping data was available, the report shows control sections within modules. The report also displays function descriptors for the control section or the module.

The example for pseudo-module .IMS in Program Usage by Procedure Report for Batch Regions shows that control section DFSDVSM0 in module DFSDVSM0 (a system service module controlling the database-VSAM interface) was responsible for more than 16% of the CPU activity used by IMS system services. To determine which modules invoked this service module, see the Attribution of CPU Execution Time reports.

Program Usage by Procedure Report for Batch Regions

image2021-2-8_10-26-32.png

Attribution of CPU Execution Time

The Attribution of CPU Execution Time reports in the following figure show that control section DFSDVSM0 of module DFSDVSM0 accounts for over 13% of the CPU time attributed to IMS supervisory modules, while control section DFSKBDP0 of module DFSKBDP0 accounts for almost 5% of the CPU time. Examine the code that calls these service routines to determine whether any performance improvement opportunities exist. (For a description of these reports, see The Attribution of CPU Execution Time Report for IMS Environments.)

Attribution of CPU Execution Time Reports for Batch Regions

image2021-2-8_10-27-33.png

Identifying Wait Time in Batch Regions

The Wait Time by Module report (see the following figure) shows all programs and subsystem service routines that were found to be in the wait state. If you specified the WAITLOC parameter when you created the Strobe Performance Profile, then the OFFSET column also shows the location of any wait within each module.

Wait Time by Module Report for Batch Regions

image2021-2-8_10-28-21.png

In this example, more than 67% of the wait time was spent waiting on the IMS system service modules, which can be attributed to database I/O activity or DL/I call services. To investigate wait time attributed to IMS services for DL/I calls within your application programs, analyze the DL/I Wait Summary Report for Batch Regions and Wait by DL/I Request Reports for Batch Regions. Almost all the IMS system wait time is assigned to the batch dispatching module DFSKBDP0. This concentration is normal for a batch IMS environment, because database I/O contributes heavily to wait time. To determine which modules invoked this service module, see the Attribution of CPU Wait Time report.

The DL/I Wait Summary Report for Batch Regions identifies the total wait time by the transaction, module, section, and PSB name that initiated the request for IMS DL/I services.

In this example, more than 58% of the wait time was spent waiting in PSB STRIL140 of module STRIL140. The Wait by DL/I Request report for PSB STRIL140 of module STRIL140 provides detail information for all DL/I requests.

DL/I Wait Summary Report for Batch Regions

image2021-2-8_10-29-9.png

The Wait by DL/I Request report for module STRIL140 and PSB STRIL140 (Wait by DL/I Request Report for Batch Regions) shows that more than 57% of the time waiting in PSB STRIL140 was for a Get Hold Unique (GHU) function call at program statement line number 17, hexadecimal location +1CC. It also shows that the reference number is 1. If you look at the detail line for reference number 1, you see that the PCB Type shows a database retrieval using PCB LOANPCB and DBD STRIDLON to retrieve and hold an entry from the STRIDLON database.

To provide the line number and the procedure name for activity shown in module STRIL140, the map dataset for the module was included when the Strobe Performance Profile was created. For certain languages, DDIO files are used to provide this indexing; other languages use map datasets. The map dataset is the repository for the information Strobeuses to relate addresses in the object module with procedures or statements in the source program. You can create a map dataset with Strobe/ISPF, or by using cataloged procedures. For more information on creating a map dataset, refer to the Using-Strobe-to-measure-online-applications-and-batch-programs. Compiler Output for Module STRIL140 shows the source code for lines 17-19, which were responsible for all the detected activity.

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

Wait by DL/I Request Report for Batch Regions

image2021-2-8_10-29-58.png

Attribution of CPU Wait Time

The Attribution of CPU Wait Time report (see the following figure) identifies the location in the calling module that invoked a system service routine. In this example, control section DFSKBDP0 of module DFSKBDP0 shows wait resulting from one DL/I request by module STRIL140. (For a description of this report, see The Attribution of CPU Execution Time Report for IMS Environments.) Note also that if the wait time is the result of I/O, the ddname is shown in the SECTION column under VIA.

Attribution of CPU Wait Time Report for Batch Regions

image2021-2-8_10-31-1.png

 

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

BMC AMI Strobe 21.01