Running the Program Threadsafe report
The threadsafe report can be run from the CICS IA Explorer plug-in or as a batch job using the sample CIUJTSQ2 that can be found in SCIUSAMP.CICS. The report runs the DB2® stored procedure CIUSPTSR.
The stored procedure gathers the data that is required
to generate the report from the following DB2 tables:
- 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
- CIU_SCAN_SUMMARY
CIU_CONNECTIONS
- 1 To obtain data for the CIU_PROGRAM_DETAIL and CIU_FILE_DETAIL you must select the DETAILED collection option when you are 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 job 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.
For more information about the threadsafe collection, see the "Creating a
scenario-based collection" topic in the CICS IA plug-in
help.