The best method to see what modules are loaded is to use the CA SYSVIEW command CPROGRAM
, provided you have installed the CICS Monitor component in your CICS regions. This command can be run against a single region, or against all CICS regions, to show all the programs that have been defined or loaded to the CICS region, whether defined in the PPT or autoinstalled.
For a single CICS region, you would issue the commands:CICS regionSTCnameCPROGRAM
To see the list from all CICS regions, you would issue the command:CPROGRAM SYSTEM
Once in the relevant display, you could issue the commandSORT COUNT D
to display the program list by its descending use count.
Another useful way to look at the data is to change the format to DATASET
and resorting the screen information by the loadlib and program count. Here are the commands to use:SET FORMAT DATASETSORT DATASETNAME A COUNT D
If all your programs have a particular name, you could SORT PROGRAM
to arrange them in name order - there are many different possibilities here.
However you display or sort the data, there is a wealth of information on this screen, and here is a sample of the program data (there is CICS region memory information at the top I am not showing you):Cmd Jobname Program InUse Count Fetch Size RPL Library DatasetName ___ CICSWQA3 DCCO3PR 53 1 4440 14 DFHRPL CAIPROD.DBCICSSF.R151S0A.D181130.CAB1LOAD ___ . DCCO4PR 53 1 12808 14 DFHRPL CAIPROD.DBCICSSF.R151S0A.D181130.CAB1LOAD ___ . ABCPGX2R 38 1 24808 17 DFHRPL CAIMIST.CICSQA.ISDALP.LOADLIB ___ . ABCPGX2U 38 1 77696 17 DFHRPL CAIMIST.CICSQA.ISDALP.LOADLIB ___ . DFHPGADX 36 1 488 1 DFHRPL CICSSYS.CTS530.GA.CICS.RSU1809.SDFHLOAD ___ . GSVCEXIT 36 36 1 2808 21 DFHRPL CAIPROD.SYSVW.R150S4.CNM4BLOD ___ . @IAEIPAD 27 1 664 8 DFHRPL CAIMIST.CICS.CTS320.USER.LOADLIB ___ . T$UIPR 27 1 5320 17 DFHRPL CAIMIST.CICSQA.ISDALP.LOADLIB ___ . T$UIPU 27 1 6280 17 DFHRPL CAIMIST.CICSQA.ISDALP.LOADLIB
There is a lot more useful information if you scroll to the right: including CICS PPT settings, and if the program was autoinstalled, the groupname used. If you use a standard autoinstall configuration, you could SORT DEFGRP
and look for DFHPGADX, for example.
Another good use for this is in the scenario where a wrong version of the program is being used, and you suspect it is in another library in the DFHRPL concatenation. You can enter the DDL
line command next to the module in question, and it will show you the list of loadlibs belonging to the DD statement for that module (here, DFHRPL), and identify the loadlibs where that module is found. You can also use line commands to newcopy a module here or phase in a new copy - see PF1 for help on this function.
In summary, the CA SYSVIEW functions available from the CICS Monitor are highly useful, and if you have CA SYSVIEW but do not have the CICS Monitor installed, we would highly recommend you do so.
If you do not have CA SYSVIEW available for this region, you can also review the CICS region MSGLOG DD statement to see programs that are autoinstalled. Here is a sample of a few programs that have been installed:DFHPG0209 02/04/2019 14:02:12 CICSWQA2 COMMUSER PGX8 RESOURCE DEFINITION FOR ABCPGX8U HAS BEEN AUTOINSTALLED USING MODEL DFHPGAPG.DFHPG0209 02/04/2019 14:02:12 CICSWQA2 COMMUSER PGX8 RESOURCE DEFINITION FOR ABCPGX8R HAS BEEN AUTOINSTALLED USING MODEL DFHPGAPG.DFHPG0209 02/04/2019 14:02:51 CICSWQA2 COMMUSER ICX4 RESOURCE DEFINITION FOR ABCICX4U HAS BEEN AUTOINSTALLED USING MODEL DFHPGAPG.DFHPG0209 02/04/2019 14:02:51 CICSWQA2 COMMUSER ICX4 RESOURCE DEFINITION FOR ABCICX4U HAS BEEN AUTOINSTALLED USING MODEL DFHPGAPG.
Here, as in the CA SYSVIEW display, you can see the CA Ideal programs shown with the suffix U (for Updateable) and R (for ReEntrant) for those Ideal program components. For more information about the content of an Ideal module, refer to Knowledge Base article KB000115126
, titled "Is there a way to identify when an application load module was created by Ideal?
Another option to be explored is the CICS STAT transaction provided by IBM with the DFH0STAT program. This is able to be customized for your company's use, and you may have something in place with this functionality already. Here is a link to the IBM documentation
if you want to look into this; it might also have the ability to capture loaded program information.
Finally, you can use the CEMT I PROG() transaction to list all of the programs active in this region. However, if you have many programs defined or in use, scrolling through this list to capture all the program names could be very tedious.
These are the low-to-no impact ways to see what modules have been loaded in a CICS region. Of course, it goes without saying that all of this information is only valid within the context of the currently running region. To get best results, you will need a long-running sample or multiple iterations of the CICS region.
Beyond this, you might be able to set up CA Datacom/DB Accounting tables to capture counts or first use timestamps of programs, but Ithis could result in degraded performance if not set up correctly.