If you are removing an application from z/OS you might want to clear TPX from all occurrences of that application, too. Specifically that Application can occur in User Session Lists and in Profiles. Here is how you can get an overview of how often that application exist and how to remove it; both by using TPXBATCH Jobs.
When you remove an application definition from TPX you first delete it from the ACT-table. When this is done, that application still does exist in an unknown number of User-Session Lists and Profiles.
Here is what you can do.
1. Check for all occurrences of that application in User Session lists using the following TPXBATCH Job. It searches all user records for the Application ID which is stored in variable UENTAPPL. The example below searches for Application ID CICS18.
//jobcard
//*-------------------------------------------------
//* LIST ALL USERS HAVING A SPECIFIC SESSION DEFINED
//*-------------------------------------------------
//BATCH1 EXEC tpx,VNODE='*BATCH*'
//EXT DD UNIT=SYSDA,SPACE=(CYL,(1,1)),DISP=(MOD)
//RPT DD SYSOUT=*
//SYSIN DD *
EXTRACT GIVING(EXT) USER AND MATCHING SESSIONS (UENTAPPL(CICS18))
SET RTITLE1 ' USERID UENTUSER UENTAPPL'
SET RTITLE2 ' -------- -------- --------'
REPORT GIVING(RPT) USING(EXT)
((' &UIDXNAME' '&UENTUSER' '&UENTAPPL'))
//
The result of this Job is a list of all userids, their Session ID which refer to Application ID CICS18.
USERID UENTUSER UENTAPPL
-------- -------- --------
<userid>
TSO1 CICS18
<userid>
T1 CICS18
SYSADMIN
TSO5 CICS18
If you want to delete all these User Entries then change the SYSIN of the Batchjob to this:
//SYSIN DD *
EXTRACT GIVING(EXT) USER AND MATCHING SESSIONS (UENTAPPL(CICS18))
DELETE USERSESSION USING(EXT)
//
2. Check for all occurrences of that application defined in Profiles. With a slightly changed TPXBATCH job you can check for all occurrences of that application in Profile Session lists. It searches all profiles for Application ID CICS18which is stored in variable PENTAPPL.
//jobcard
//*-----------------------------------------------
//* LIST ALL PROFILE CONTAINING A SPECIFIC SESSION
//*-----------------------------------------------
//BATCH1 EXEC tpx,VNODE='*BATCH*'
//EXT DD UNIT=SYSDA,SPACE=(CYL,(1,1)),DISP=(MOD)
//RPT DD SYSOUT=*
//SYSIN DD *
EXTRACT GIVING(EXT) PROFILE AND MATCHING SESSIONS (PENTAPPL(CICS18))
SET RTITLE1 ' PROFILE PENTAPPL'
SET RTITLE2 ' -------- --------'
REPORT GIVING(RPT) USING(EXT)
((' &PIDXNAME' '&PENTAPPL'))
//
The result of this second TPXBATCH Job is a list of all profiles which contain the desired Application ID:
PROFILE PENTAPPL
-------- --------
<profile>
CICS18
<profile>
CICS18
If you want to delete all these Entries in the several Profiles then change the SYSIN of the Batchjob to this:
//SYSIN DD *
EXTRACT GIVING(EXT) PROFILE AND MATCHING SESSIONS (PENTAPPL(CICS18))
DELETE PROFILESESSION USING(EXT)
//