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
  • Start of changeCIU_CONNECTIONSEnd of change
  •  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.
  1. 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.
  2. 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.

Start of changeFor more information about the threadsafe collection, see the "Creating a scenario-based collection" topic in the CICS IA plug-in help.End of change