Analyzing a sample threadsafe report

Analyzing the sample output produced by a summary report and a detail report.

The threadsafe report consists of a header page and one or more pages of program data. The header page lists the report options used to create the report and provides definitions for some of the terms used in the report. The remaining pages report on each program that meets the criteria specified by the report options PROGRAMNAME and REGIONNAME.

Figure 1. Example threadsafe report, header page
CICS INTERDEPENDENCY ANALYZER VERSION 5.3.0                                                      2013/08/09:20.38.38    PAGE     1
THREADSAFE DETAIL LISTING FOR CICS TS    

 Report options:
   COLLECTION_ID=*                 REGIONNAME=*         PROGRAMNAME=*         CICSLEVEL=      REPORT=DETAIL   LINESPERPAGE=60



 Definitions of Terms:

   'Threadsafe' calls are EXEC CALLS commands that do not cause a TCB swap.

   'Non-Threadsafe' calls are EXEC CALLS commands that cause a TCB swap.

   'Indeterminate Threadsafe' calls are EXEC CALLS commands where it cannot be determined if the call causes a TCB swap.

   'Dynamic calls' are calls to modules at execution time. Programs that are called dynamically take on the same environment
                   as the calling program.

   'Threadsafe Inhibitor calls' are EXEC CICS commands that need to be investigated further because they may prevent you from
                                defining your program as threadsafe. These commands are: ADDRESS CWA, EXTRACT EXIT, GETMAIN SHARED,
                                and LOAD.
Figure 2. Example threadsafe report, main body
CICS INTERDEPENDENCY ANALYZER VERSION 5.3.0                                                      2013/08/09:20.38.38    PAGE     2
THREADSAFE DETAIL LISTING FOR CICS TS 4.2  

 COLLECTION_ID    APPLID   Program   Linkedit   Execution  Concurrency  APIST  Storage  CICS  LIB Dataset Name   RENT
                                       Date        Key                         Protect  Rel
 ---------------- -------- -------- ---------- ----------- ----------- ------- -------- ----- ----------------------------------

                   CMD  Function                 Type             Resource                          Offset   Program  Use     Thread-
                   Type                                                                                      Length   Count   safe
                   ---- ------------------------ ---------------- --------------------------------  -------- -------- ---------------
 
 _collid_         IYDZZ42A TSTPGM00 0001-01-01 USER        QUASIRENT   CICSAPI ACTIVE   0670  CICSIAD.V51.TEST.LOADLIB     1  
                   CICS DELETEQ                  TSQUEUE          IATSTQ01                              6D8     4460         1    Y
                   CICS INQUIRE                  PROGRAM          TSTPGM01                             151E     4460         1    N
                   CICS LINK                     PROGRAM          TSTPGM02                              A8C     4460         1    I
                   CICS LOAD                     PROGRAM          TSTPGM03                              79A     4460         1    Y*    2  
                   CICS LOAD                     PROGRAM          TSTPGM04                              7BE     4460         1    Y*
                   CICS SET                      JOURNAL          DFHJ03                                212     4460         1    N
                   CICS WAIT                     EVENT                                                  69A     4460        21    N
                   CICS WRITE                    JOURNAL          03                                    5A8     4460        83    Y
                   CICS WRITEQ                   TSQUEUE          IATSTQ1                               72C     4460        83    Y
   Total CICS calls:          9  Threadsafe:            5  Non-Threadsafe:                     3  Indeterminate Threadsafe:         1   3  

   Total CPSM calls:          0  Threadsafe:            0  Non-Threadsafe:                     0              
                                 DB2 calls:             0  MQ calls:                           0  IMS calls:                        0
                                 Dynamic Calls:         0  Threadsafe Inhibitor calls:         2

 1  For the detail and summary report, the programs requested by the report options PROGRAMNAME and REGIONNAME are listed. These program entries contain the following information:

APPLID
The application ID for the CICS® region from which the Collector captured the program information. This field matches the report criteria specified by the REGIONNAME report option.
Program
The name of the program for which the information is reported.
Linkedit Date
The linkedit date of the program.
Execution Key
The storage key of the program. Values are CICS, USER, and NOTAPPLIC.
Concurrency
Indicates the concurrency attribute of the installed program definition. Values are: QUASIRENT and THREADSAFE.
APIST
Indicates the API attribute of the installed program definition. Values are: CICSAPI and OPENAPI.
Storage Protect
Indicates if storage protection was active for the program. Values are: ACTIVE or INACTIVE.
CICS Rel
The CICS release number for the region in which the program is running.
LIB Dataset Name
The 44-character name of the data set from which the program was loaded into the CICS region.

 2  For the detail report, all of the commands that were collected by the Collector for each program are listed. These command entries contain the following information:

CMD Type
The type of command invoked by the program. Values are: CICS, CPSM, DB2®, IMS™, and MQ.
Function
The command function, as specified in the CIU_CICS_DATA table.
Type
The resource type such as TS, or Program, as specified in the CIU_CICS_DATA table.
Resource
The name of the resource that the command was acting upon, as specified in the CIU_CICS_DATA table.
Offset
The offset of the command from the start of the program module.
Program Length
The length of the program module. Used to help determine the program version.
Use Count
The number of times that the command was run.
Threadsafe
The threadsafe status of the command. Values are:
Y
The command is threadsafe.
Note: The asterisk (*) marks the threadsafe inhibitor call commands. These are commands that are potentially threadsafe, however you should investigate the command further because it might prevent a program from being threadsafe.
N
The command is not threadsafe.
I
The threadsafe status of the command in indeterminate. More investigation is needed to determine if the command is threadsafe.

 3  A summary of the types of commands issued by the program are listed after each program entry.

CICS calls
The number of EXEC CICS commands invoked by the program.
Threadsafe
The number of EXEC CICS commands invoked by the program that are threadsafe.
Non-Threadsafe
The number of EXEC CICS commands invoked by the program that are not threadsafe.
Indeterminate Threadsafe
The number of EXEC CICS commands invoked by the program that cannot be determined to be threadsafe or not.
CPSM calls
The number of EXEC CPSM commands invoked by the program.
Threadsafe
The number of EXEC CPSM commands invoked by the program that are threadsafe.
Non-Threadsafe
The number of EXEC CPSM commands invoked by the program that are not threadsafe.
DB2 calls
The number of DB2 commands invoked by the program.
MQ calls
The number of MQ commands invoked by the program.
IMS calls
The number of IMS commands invoked by the program.
Dynamic calls
The number of calls made to other modules by the program.
Threadsafe Inhibitor calls
The number of EXEC CICS commands invoked by the program for which you need to investigate the command further to determine if it prevents the program from being threadsafe.