ISV Ecosystem - Group home

ISPF List and Log – Improved Access

  

For over 3 decades ISPF users have been using their ISPLIST and ISPLOG data created in ISPF dynamically allocated datasets, and they have had a non-intuitive path to view this data while the ISPF session is active. During this time storage administrators have had to manage these dynamically allocated datasets, which seem to proliferate like vermin in a trash dump, most with no reason to continue living.

This blog presents an option for every z/OS installation where ISPF is used, which is every z/OS installation.

The ISPF List and Log Viewer, a.k.a. ISPFLLV, is an open-source project that provides an improved and more intuitive method to access these datasets. The only hard pre-requisite is the SDSF REXX API and the ability of the user to view data under their UserID in the JES Spool using SDSF (Note that some other spool access products also support the SDSF REXX API so if your installation does not use SDSF you may still be able to use ISPFLLV).

ISPFLLV requires that the ISPLIST and ISPLOG DDs be allocated to SYSOUT prior to starting ISPF. This can be accomplished in the TSO LOGON Procedure JCL, or by a CLIST/EXEC that is invoked by the TSO Terminal Monitor Program (TMP) when the user logs into TSO.

For example:

//TSOPROC EXEC PGM=IKJEFT01,REGION=0M,DYNAMNBR=175,PARM='%TSOSETUP’

In this example the %TSOSETUP is a CLIST, or REXX Exec, which is found in the SYSPROC, or SYSEXEC, allocation in the TSO LOGON Procedure JCL. It can do all of your TSO and ISPF allocations, or only a subset of them. The author recommends using the SYSPROC allocation in your LOGON JCL so that you can allocate the SYSEXEC within the TSOSETUP code.

ISPFLLV also requires that two new commands be added to either the site ISPF commands table or to the primary ISPF commands table (i.e., ISPCMDS).

Once the requirements are met then the user can issue the VLIST command to view the data in the ISPLIST SYSOUT file, or VLOG to view the data in the ISPLOG SYSOUT file.

Notes:

  1. The VLIST command will not work until the user ‘prints’ something to the ISPLIST file.
  2. When exiting ISPF there will be TSO messages that the ISPLIST (if used) and ISPLOG were not able to be released (freed) as they were pre-allocated. This is normal and you should not be concerned.
  3. The files will remain in the JES spool until they are deleted using your installation’s spool cleanup process.

 

Installation

The installation is simple after acquiring a copy of the ISPFLLV package from GitHub and copying the ISPFLLV REXX code to a z/OS dataset.

Package sources

The best way to acquire a copy of the installation package is to use Git to make a local clone of the GitHub repository. If git is not an option, click the green Code button on the GitHub project home page and select “Download ZIP”.  Then unzip and upload to z/OS the ISPFLLV member in the ISPFLLV.PDS directory.

Enabling

To enable the ISPFLLV code requires the following:

  1. Copy the ISPFLLV REXX code into a member in one of the libraries in your SYSEXEC or SYSPROC set of libraries that are defined in your TSO LOGON Procedures.
  2. Update the ISPF Commands table, either the Site or the ISP commands table with:

  Verb  Trunc  Action

               Description

  VLIST     3  SELECT CMD(%ISPFLLV &ZPARM LIST)

               Display ISPLIST SYSOUT using SDSF REXX API

  VLOG      3  SELECT CMD(%ISPFLLV &ZPARM LOG)

               Display ISPLOG SYSOUT using SDSF REXX API

 

The Trunc value of 3 allows VLIST to be abbreviated as VLI, and VLOG as VLO.

Then update either the TSO LOGON Procedure JCL or the TSO TMP allocation CLIST/Rexx as follows:

PROC:

//ISPLIST  DD SYSOUT=*,DCB=(LRECL=121,BLKSIZE=121,RECFM=FA)

//ISPLOG   DD SYSOUT=*,DCB=(LRECL=125,BLKSIZE=129,DSORG=PS,RECFM=VA)


CLIST/Rexx

alloc f(isplist) sysout(a) hold lrecl(121) blksize(121) recfm(f a)

alloc f(isplog)  sysout(a) hold lrecl(125) blksize(129) recfm(v a)

 

Select a SYSOUT class that works for your installation. You can use an “OUTPUT=DUMMY” class if you would like the files automatically purged at logoff. To preserve output when using the dummy class, use one of the SDSF PRINT command family, e.g., XDC line command.

The allocation for both must be unblocked so that there will be no unwritten records in the output buffer when the user initiates the VLIST or VLOG commands.