This blog explains a use case where the user wants to find the flow of programs, links between programs used in a transaction and tells how to visualize using CICS IA.
Problem statement:
Consider a case where a user runs a transaction which calls multiple programs, which all are linked to one another. In this case the user needs to manually analyse to know the flow of programs and to find all the called programs of the transaction. Manually the main program of the transaction must be checked for the resources(Programs, maps, etc...) used by it followed by the sub-programs.
This manual analysis of larger program will be complicated and consumes more time.
Solution:
In this case CICS IA (CICS Interdependency Analyzer) tool can be used. CICS IA tool helps to identify the set of resources used by individual CICS applications (like transactions, commands, etc…) and their dependencies which helps in understanding the characteristics of an application.
Requirements of CICS IA:
To use CICS IA tool,
- The CICS IA for host must be installed in the z/OS environment.
- View the analyzed data in user friendly way and detailed manner the client side CICS IA plugin (Eclipse plugin) must be installed on top of z/OS explorer.
Viewing transaction tree structure in CICS IA:
Sample transaction for analysis:
Below are the sample programs and the transaction,
- Transaction - TREE
- Programs – TRANMUPM, USEPRGM1, USEPRGM2, USEPRGM3 and USEPRGM4
Flow of the transaction:
- Transaction “TREE” calls the main program “TRANMUPM”.
- The main program calls the “USEPRGM1”.
- “USEPRGM1” calls the “USEPRGM3”.
- “USEPRGM3” calls the “USEPRGM4”.
- “USEPRGM4” calls the “USEPRGM2”.
- “USEPRGM2” is the end program which contains the display statement which will display the message in CICS region once all the programs are run properly.
- Final output of running transaction “TREE” in CICS region;
Steps to collect interdependency data in CICS IA:
Step 1: Logon to the region.
Step 2: Configure CICS IA for dependency data collection.
Step 3: Start collector.
Step 4: Run the “TREE” transaction.
Step 5: Stop collector.
Step 6: Logoff.
Step 7: Logon TSO.
Step 8: Go to "CIUUPDB" job to collect interdependency data.
Step 9: Give a collectionID and submit it.
Step 10: Launch z/OS explorer.
Step 11: In host connection connect to interdependency connection with appropriate details. The appropriate region must be displayed.
Step 12: Click the collection id and set as current scope. Transactions, programs, etc.., which ran under the collection ID will be displayed.
Display of transaction tree structure for the user transaction:
Step 1: Right click on the “TREE” transaction and select the “Visualization” option.
The below “Resource Usage Visualization” screen will be displayed.
Step 2: To display tree structure right click the transaction and select “Show Connections” option.
Below tree structure of the “TREE” transaction will be displayed which shows the flow that the transaction.
The same steps can be followed for viewing tree of the program. Right click any one of the programs and select “Show Connections” option. Below shows the tree structure for the “USEPRGM3” program.
This tree structure makes it easier to understand the flow of complicated programs.
Example:
Advantages:
- Programs used by a transaction can be traced easily.
- View the programs or transactions that uses a given resource.
- View the flow of the programs.
- View resources used by an application or platform.
- Compare resources used by a transaction, program, or region.
To know more on analysis of CICS applications by CICS IA refer the below link:
https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/preethikashree-m/2022/04/01/cics-ia-for-analyzing-dependency-and-flow-of-cics