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.
CICS INTERDEPENDENCY ANALYZER VERSION 6.3.0 2025/12/18:20.56.43 PAGE 1
Program Dynamic Analysis - 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 HOLD.
CICS INTERDEPENDENCY ANALYZER VERSION 6.3.0 2025/01/10:19.02.01 PAGE 2
Program Dynamic Analysis - THREADSAFE DETAIL LISTING FOR CICS TS 6.1
COLLECTION_ID APPLID Program Execution Concurrency APIST Storage CICS LIB Dataset Name RENT
Key Protect Rel
---------------- -------- -------- ----------- ----------- ------- -------- ----- --------------------------------- -----
CMD Function Type Resource Offset Program Use Thread-
Type Length Count safe
---- ------------------------ ---------------- -------------------------------- -------- -------- ---------------
-collid_ C62C1C01 PROG0001 USER QUASIRENT CICSAPI ACTIVE 0740 CICSIAD.LOAD.PDSE ? ❶
CICS ADDRESS CWA 2B0 2068 1 Y* ❷
CICS CANCEL REQID REQST112 40E 2068 1 N
CICS COLLECT STATISTICS RECORD 83C 2068 1 N
CICS CREATE TDQUEUE TDQ1 928 2068 1 N
CICS DEQUEUE ENQNAME TESTPPP... 21E 2068 1 I
CICS DISABLE EXIT PGM2 67A 2068 1 N
CICS DISCARD MQCONN 8D6 2068 1 Y
CICS ENABLE GWA24 EXIT 5FC 2068 1 N
CICS ENQUEUE ENQNAME TESTPPP... 1DC 2068 1 I
CICS EXTRACT EXIT AFFINITY 640 2068 1 N*
CICS FREEMAIN STORAGE ADDR 3B2 2068 1 Y
CICS GETMAIN SHARED STORAGE ADDR 36A 2068 1 Y*
CICS INQUIRE PROGRAM PGM2 448 2068 1 Y
CICS LOAD HOLD PROGRAM PGM2 2F2 2068 1 Y*
CICS PERFORM SSL REBUILD 57A 2068 1 Y
CICS RELEASE PROGRAM PGM2 320 2068 1 Y
CICS RESYNC ENTRYNAME ENTRY001 86A 2068 1 Y
CICS SEND TEXT SEND TEXT 980 2068 1 N
CICS WAIT EVENT 8A4 2068 1 N
CICS WRITEQ AUX TSQUEUE HELLO123 276 2068 1 N
Total CICS calls: 20 Threadsafe: 9 Non-Threadsafe: 9 Indeterminate Threadsafe: 2 ❸
Total CPSM calls: 0 Threadsafe: 0 Non-Threadsafe: 0
DB2 calls: 0 MQ calls: 0 IMS calls: 0
Dynamic Calls: 0 Threadsafe Inhibitor calls: 4
affn_col C62C1C01 AFFINITY USER QUASIRENT CICSAPI ACTIVE 0740 CICSIAD.LOAD.PDSE ?
CICS ADDRESS CWA 2B0 2038 1 Y*
CICS COLLECT STATISTICS RECORD 7E6 2038 1 N
CICS CREATE TDQUEUE AFFI 8D2 2038 1 N
CICS DISABLE EXIT PGM2 624 2038 1 N
CICS DISCARD MQCONN 880 2038 1 Y
CICS ENABLE GWA24 EXIT 5A6 2038 1 N
CICS EXTRACT EXIT AFFINITY 5EA 2038 1 N*
CICS FREEMAIN STORAGE ADDR 91A 2038 1 Y
CICS GETMAIN SHARED STORAGE ADDR 36A 2038 1 Y*
CICS INQUIRE PROGRAM PGM2 3D6 2038 1 Y
CICS LOAD PROGRAM PGM2 2F2 2038 1 Y
CICS RELEASE PROGRAM PGM2 320 2038 1 Y
CICS RESYNC ENTRYNAME ENTRYNAM 814 2038 1 Y
CICS SEND TEXT SEND TEXT 972 2038 1 N
CICS WAIT EVENT 84E 2038 1 N
CICS WRITEQ AUX TSQUEUE HELLO123 276 2038 1 N
❶ 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.
- 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.
❷ 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.
❸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.