The threadsafe report can be executed from the IA Explorer
plug-in or as a batch job using sample CIUJTSQ2 that can be found
in SCIUSAMP.CICS. The report executes the DB2 stored procedure CIUSPTSR.
The stored procedure gathers the data required to generate the
report from the following DB2 table:
- CIU_CICS_DATA
- CIU_DB2_DATA
- CIU_MQ_DATA
- CIU_IMS_DATA
- CIU_REGION_INFO
- CIU_FILE_DETAIL 1
- CIU_PROGRAM_DETAIL 1
- CIU_THREADSAFE_CMD 2
- 1 To obtain data for the CIU_PROGRAM_DETAIL
and CIU_FILE_DETAIL you must select the DETAILED collection
option when configuring your collector options. For more information,
see Specifying region-specific options: API and SPI commands to be monitored.
- 2 To populate the CIU_THREADSAFE_CMD
table you must run the sample job SCIUSAMP.DB2(CIUTSLOD). This is
part of the installation and configuration of CICS IA.
Running the report
To run the
threadsafe report edit, review the options and run the CIUJTSQ2 job
found in SCIUSAMP.CICS.
The following options are available
as input parameters from the CIUOPTS DD card:
- COLLECTION_ID
- The collection ID that you want to run the report against. An
asterisk can be used for wildcard requests, for example, COLLECTION_ID=*
. The default is all the collection IDs.
- REGIONNAME
- The region from which programs are analyzed. Asterisks can be
used for wildcard request, for example, REGIONNAME=*.
The default is all the regions in a PROGRAM table.
- PROGRAMNAME
- The name of the program or programs that you want to analyze.
Asterisks can be used for wild card requests, for example, PROGRAMNAME=*ab*c .
The default is all the programs in PROGRAM table.
- CICSLEVEL
- The CICS® level for which
the threadsafe analysis is considered. The dDefault is the release
level of the region for the program.
Note: You can use the CICSLEVEL parameter
to run a report for a later level of CICS.
For example, if you have collected data on a CICS TS V4.1 system you can run the report as
if it was CICS TS V5.1 system.
This report shows you how many of your commands are now threadsafe
at this level.
- REPORT
- The type of report, for example, SUMMARY or DETAIL The default
is a DETAIL report.
- LINESPERPAGE
- The maximum number of lines that are written to the report before
a page break. The value can be 30 - 99999. The default is 60 lines
a page.

Analyzing the report
The report
assists in the following aspects of threadsafe analysis.
- The threadsafe status of the command. The status can be as follows:
- Threadsafe
- An EXEC CICS command that
does not cause a TCB swap.
- Non-Threadsafe
- An EXEC CICS command that
can cause a TCB swap.
- Indeterminate Threadsafe
- An EXEC CICS command where
it cannot be determined if the call causes a TCB swap.
- The report also informs you if you have any of the following types
of calls present.
- Dynamic call
- A call to another module at execution time. The call was not initiated
with an EXEC CICS command.
- Threadsafe Inhibitor call
- An EXEC CICS command that
can cause an unsafe affinity between transactions. You must investigate
the call to determine if it inhibits the program from being threadsafe.
These commands are, ADDRESS CWA, LOAD
HOLD, GETMAIN SHARED, and EXTRACT
EXIT.
- DB2® calls
- The calls to the CICS DB2 interface are threadsafe.
- IMS calls
- The calls to the CICS IMS™ interface are threadsafe from CICS TS V4.2 onwards.
- CPMS calls
- The calls to the CPMS interface are not threadsafe.
- MQ calls
- The calls to the CICS WebSphere
MQ interface are threadsafe from CICS TS
V3.2 onwards.
