BAL, MVS38J, TSO

CHKDSN in MVS38J

Overview

CHKDSN – Check for DSN Utility for MVS 3.8J TSO / ISPF / Hercules
(current version 1.0.01  2024-03-14)

Sometimes it is necessary to immediately (in real-time) determine if a dataset (DSN) exists, whether on the system catalog and VTOC or VTOC only. In other words, check for the presence of a cataloged or uncataloged DSN.

Under TSO, the SYSDSN function can be used for this purpose. However, SYSDSN can be used only for cataloged DSNs.

CHKDSN checks for existence of a cataloged DSN using the system catalog and cataloged volume. Additionally, CHKDSN will search the DSN for existence of a PDS member, if member name is provided as DSN(member).

Alternatively, CHKDSN can check for existence of a uncataloged DSN using the VTOC and specific volume parameter including the DSN search for existence of a PDS member, if member name is provided as DSN(member).

Qualified and non-qualified DSNs are supported under TSO. Non-qualified DSNs are prefixed with the TSO USERID.

Optionally, CHKDSN can be ‘forced’ to verify that volume serial numbers match between the system catalog and volume parameter for cataloged DSNs.

Lastly, CHKDSN can be used in MVS batch jobs. For example, a subsequent step may be bypassed if a specified dataset was not found using the set return code from CHKDSN.

Add CHKDSN to your MVS38J toolkit collection!

Version 1.0.01 update distribution package format. See Version History for more change information.

Command Line Syntax

*  +-----------------------------------------------------------------+
*  |CHKDSN DSN VOL(volser) MBR(member) QUIET CATLG                   |  
*  +-----------------------------------------------------------------+
*       
*                                                                               
*    where:
*
*    1) DSN   required, dataset as the FIRST positional parameter              
*             in the command line.  Dataset name is fully-qualified             
*             when enclosed in single quotes.  Dataset name without             
*             quotes will be prefixed with USERID.                              
*    
*             NOTE: Dataset name can contain a PDS member surrounded
*                   within '(' and ')' instead of specifying MBR 
*                   keyword.
*    
*    2) VOL   optional, target volume for uncataloged dataset name.
*             System catalog search is bypassed.                  
*
*    3) MBR   optional, PDS member name.
*
*    4) QUIET optional, suppress display of messages.                    
*
*    5) CATLG optional, force catalog search.            
*             Validate cataloged and requested VOL match (equal).
*             If not equal, the DSN or DSN(MBR) is considered not
*             found.
*
*

Return Codes

In addition to return codes, enhanced messages are displayed for TSO.

*  +------+----------------------------------------------------------+ 
*  |RETURN|                                                          | 
*  | CODE |  DESCRIPTION                                             | 
*  +------+----------------------------------------------------------+
*  |  00  |  DSN found                                               | 
*  +------+----------------------------------------------------------+ 
*  |  04  |  DSN not found                                           | 
*  +------+----------------------------------------------------------+ 
*  |  08  |  DSN not found in catalog                                | 
*  +------+----------------------------------------------------------+ 
*  |  12  |  DSN not found in VTOC                                   | 
*  +------+----------------------------------------------------------+ 
*  |  16  |  PDS member not found                                    | 
*  +------+----------------------------------------------------------+ 
*  | 4004-|  Parm not supplied                                       | 
*  | 4005 |                                                          | 
*  +------+----------------------------------------------------------+ 
*  | 4008-|  No variables found                                      | 
*  | 4010 |                                                          | 
*  +------+----------------------------------------------------------+ 
*  | 4041 |  RC=xxx PDS Allocate Error                               | 
*  +------+----------------------------------------------------------+ 
*  | 4042 |  RC=xxx PDS Open Error                                   | 
*  +------+----------------------------------------------------------+ 
*  | 4044 |  RC=xxx PDS Close Error                                  | 
*  +------+----------------------------------------------------------+ 
*  | 4045 |  RC=xxx PDS Free Error                                   | 
*  +------+----------------------------------------------------------+ 
*  | 4046 |  DSN not PDS (DSORG=PO) for MBR request                  | 
*  +------+----------------------------------------------------------+ 
*  | 4097 |  Program cannot link to IKJDAIR                          | 
*  +------+----------------------------------------------------------+ 
*  | 4098 |  Cannot load CHKDSNMS                                    |
*  +------+----------------------------------------------------------+
*
*

Sample Commands


*  CHKDSN Command Examples:
*  ==================================================================
*
*    1) CHKDSN 'HERC01.TEST.CNTL'                                              
*       Check for dataset existence in catalog and VTOC.           
*
*    2) CHKDSN 'HERC01.TEST.CNTL' MBR(MYMBR)                                    
*       Check for dataset existence in catalog, VTOC and PDS       
*       membership.                                                 
*                                                                             
*    3) CHKDSN TEST.CNTL VOL(LKJ00)                                       
*       Check for dataset existence in VTOC on volume LKJ00.              
*       System catalog search is bypassed.                                
*       NOTE: DSN prefixed with USERID PREFIX due to no quotes       
*
*    4) CHKDSN TEST.CNTL(MEMBR0) VOL(LKJ00)              
*       Check for dataset existence in VTOC on volume LKJ00 and PDS      
*       membership.                                                 
*       System catalog search is bypassed.                                
*       NOTE: DSN prefixed with USERID PREFIX due to no quotes       
*
*    5) CHKDSN TEST.CNTL(MEMBR0) VOL(LKJ00) CATLG        
*       Check for dataset existence in VTOC on volume LKJ00 and PDS      
*       membership and cataloged volume matches VOL parameter
*       System catalog search is forced.                               
*       NOTE: DSN prefixed with USERID PREFIX due to no quotes       
*
*
*

Sample Batch Examples


*     CHKDSN can be executed in batch jobs using qualified dataset 
*  names only as user prefixes are not available in batch.  The return
*  code from CHKDSN can be used to control subsequent JOB step(s) 
*  processing based on dataset existence.

*
*    1) //STEP0001 EXEC  PGM=CHKDSN,
*       //  PARM='HERC01.TEST.CNTL' 
*       //STEP0002 EXEC  PGM=IEBCOPY,COND=(0,NE,STEP001),
*       //INPUT   DD  DSN=HERC01.TEST.CNTL,DISP=SHR
*       .
*       .
*       .
*
*       Check for dataset existence in catalog and VTOC.           
*       If DSN exists, execute STEP0002.          
*
*
*    2) //STEP0001 EXEC  PGM=CHKDSN,
*       //  PARM='HERC01.TEST.CNTL MBR(MYMBR)'
*
*       Check for dataset existence in catalog, VTOC and PDS       
*       membership.                                                 
*                                                                             
*                                                                             
*    3) //STEP0001 EXEC  PGM=CHKDSN,
*       //  PARM='HERC01.TEST.CNTL VOL(LKJ00)'
*                                                                             
*       Check for dataset existence in VTOC on volume LKJ00.              
*       System catalog search is bypassed.                                
*
*
*

Software Disclaimer

No guarantee; No warranty; Install / Use at your own risk.

This software is provided “AS IS” and without any expressed or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.

The author requests keeping authors name intact to any modified versions.

In addition, the author requests readers to submit any code modifications / enhancements and associated comments for consideration into a subsequent release (giving credit to contributors) thus, improving overall functionality benefiting the MVS 3.8J hobbyist public domain community.

Installing Software

After downloading the ZIP file, the approach for this installation procedure is to transfer the distribution content file (HET or XMI) from your personal computing device to MVS.

When the transfer completes, associated load JCL (HET, RECV370 or TSO RECEIVE) can also be transferred to MVS to load the distribution software.

Alternatively, the load JCL may be submitted from your device if a TCP/IP socket reader is setup on you device hosting Hercules / MVS 3.8J.

Continue the installation procedure using supplied JCL from the MVS CNTL data set under TSO per the readme.txt instructions.

The below README file includes a ZIP file content list, pre-installation requirements and installation steps.


CHKDSN for MVS 3.8J / Hercules                                              . 
==============================                                              .


Date: 03/18/2024  Release V1R0M01
      07/30/2020  Release V1R0M00  **INITIAL software distribution

*  Author:  Larry Belmontes Jr.
*           https://ShareABitofIT.net/CHKDSN-in-MVS38J
*           Copyright (C) 2020-2024  Larry Belmontes, Jr.


----------------------------------------------------------------------
|    CHKDSN       I n s t a l l a t i o n   R e f e r e n c e        |
----------------------------------------------------------------------

   The approach for this installation procedure is to transfer the
distribution content from your personal computing device to MVS with
minimal JCL and to continue the installation procedure using supplied
JCL from the MVS CNTL data set under TSO.

   Below are descriptions of ZIP file content, pre-installation
requirements (notes, credits) and installation steps.

Good luck and enjoy!
-Larry Belmontes



----------------------------------------------------------------------
|    CHKDSN       C h a n g e   H i s t o r y                        |
----------------------------------------------------------------------
*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  03/18/2024 1.0.01   - Updated distribution packaging
*                      - Updated pgm documentation
*
*  07/30/2020 1.0.00   - Initial version released to MVS 3.8J
*                        hobbyist public domain
*
*
======================================================================
* I. C o n t e n t   o f   Z I P   F i l e                           |
======================================================================

o  $INST00.JCL          Define Alias for HLQ in Master Catalog

o  $INST01.JCL          Load CNTL data set from distribution tape

o  $RECVXMI.JCL         RECV370 Receive XMI SEQ to MVS PDSs

o  $RECVTSO.JCL         TSO Receive XMI SEQ to MVS PDSs

o  CHKDSN.V1R0M01.HET   Hercules Emulated Tape (HET) multi-file volume
   volser=VS1001        containing software distribution library.

o  CHKDSN.V1R0M01.XMI   XMIT file containing software distribution library.

o  DSCLAIMR.TXT         Disclaimer

o  PREREQS.TXT          Required user-mods

o  README.TXT           This File
   Note: See application web page for any updates to readme.txt





======================================================================
* II. P r e - i n s t a l l a t i o n   R e q u i r e m e n t s      |
======================================================================

o  The Master Catalog name for HLQ aliases.

o  The Master Catalog password may be required for some installation
   steps.

o  If loading via tape files, device 480 is utilized.

o  DATASET List after distribution library load for reference purposes:

   DATA-SET-NAME------------------------------- VOLUME ALTRK USTRK ORG FRMT % XT
   SHRABIT.CHKDSN.V1R0M01.ASM                   PUB006    10     4 PO  FB  40  1
   SHRABIT.CHKDSN.V1R0M01.CLIST                 PUB006     2     1 PO  FB  50  1
   SHRABIT.CHKDSN.V1R0M01.CNTL                  PUB006    20     4 PO  FB  20  1
   SHRABIT.CHKDSN.V1R0M01.HELP                  PUB006     2     1 PO  FB  50  1
   SHRABIT.CHKDSN.V1R0M01.ISPF                  PUB006     2     1 PO  FB  50  1
   SHRABIT.CHKDSN.V1R0M01.MACLIB                PUB006     2     1 PO  FB  50  1
   **END**    TOTALS:      38 TRKS ALLOC        12 TRKS USED       6 EXTENTS    


   Confirm the TOTAL track allocation is available on your device.

   Note: A different DASD device type (e.g. 3380) may yield different usage.

o  TSO user-id with sufficient access rights to update SYS2.CMDPROC,
   SYS2.CMDLIB, SYS2.HELP, SYS2.LINKLIB and/or ISPF libraries.

o  For installations with a security system (e.g. RAKF), you MAY need to
   insert additional JOB statement information.

   //         USER=???????,PASSWORD=????????

o  Names of ISPCLIB (Clist), ISPMLIB (Message), ISPLLIB (Load) and/or
   ISPPLIB (Panel) libraries.

o  Download ZIP file to your PC local drive.

o  Unzip the downloaded file into a temp directory on your PC device.

o  Install pre-requisite (if any) software and/or user modifications.

o  JCL from you local device (after unzip) may be edited using
   Notepad or nano (based on you host OS) and submitted via TCP/IP
   sockets reader if your system configuration supports this option.
   This option can replace some copy-paste tasks during installation.
   For more information on submitting JCL to MVS 3.8J, see
   
Submitting JCL to MVS 3.8J
o For more information on SHRABIT software distribution library, see
SHRABIT Distributions for MVS38J
o For more information on SHRABIT software installation, see
SHRABIT Installations for MVS38J
====================================================================== * III. I n s t a l l a t i o n S t e p s | ====================================================================== +--------------------------------------------------------------------+ | Step 1. Determine software installation source | +--------------------------------------------------------------------+ | HET or XMI ? | +--------------------------------------------------------------------+ a) Software can be installed from one of two sources, HET or XMI. - For tape installation (HET), proceed to STEP 3. **** or - For XMIT installation (XMI), proceed to next STEP. +--------------------------------------------------------------------+ | Step 2. Load distribution source from XMI file | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($RECVXMI) | | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($RECVTSO) | +--------------------------------------------------------------------+ ______________________________________________________________________ //RECV000A JOB (SYS),'Receive CHKDSN XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVXMI Receive Application XMI Files * //* * using RECV370 * //* -------------------------------------------------------* //RECV PROC HLQ='SHRABIT.CHKDSN',VRM=V1R0M01,TYP=XXXXXXXX, // DSPACE='(TRK,(10,05,40))',DDISP='(,CATLG,DELETE)', // DUNIT=DISK,DVOLSER=PUB006 <-- Review and Modify //* //RECV370 EXEC PGM=RECV370 //RECVLOG DD SYSOUT=* //XMITIN DD DISP=SHR,DSN=&&XMIPDS(&TYP) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&&SYSUT1, // UNIT=SYSALLDA,SPACE=(CYL,(10,05)),DISP=(,DELETE,DELETE) //SYSUT2 DD DSN=&HLQ..&VRM..&TYP,DISP=&DDISP, // UNIT=&DUNIT,SPACE=&DSPACE,VOL=SER=&DVOLSER //SYSIN DD DUMMY //SYSUDUMP DD SYSOUT=* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* RECV370 CHKDSN Software Distribution //* -------------------------------------------------------* //XMIPDS EXEC RECV,TYP=XMIPDS,DSPACE='(CYL,(10,05,10),RLSE)' //RECV370.XMITIN DD DISP=SHR,DSN=your.transfer.xmi <-- XMI File //RECV370.SYSUT2 DD DSN=&&XMIPDS,DISP=(,PASS), // UNIT=SYSDA,SPACE=&DSPACE //* //CNTL EXEC RECV,TYP=CNTL //RECV370.SYSUT2 DD DDNAME=&TYP //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,10,10)), // DISP=&DDISP //* //HELP EXEC RECV,TYP=HELP //RECV370.SYSUT2 DD DDNAME=&TYP //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP //* //CLIST EXEC RECV,TYP=CLIST //RECV370.SYSUT2 DD DDNAME=&TYP //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP //* //ISPF EXEC RECV,TYP=ISPF //RECV370.SYSUT2 DD DDNAME=&TYP //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,05,10)), // DISP=&DDISP //* //ASM EXEC RECV,TYP=ASM //RECV370.SYSUT2 DD DDNAME=&TYP //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP //* //MACLIB EXEC RECV,TYP=MACLIB //RECV370.SYSUT2 DD DDNAME=&TYP //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP // ______________________________________________________________________ Figure 1a: $RECVXMI.JCL ______________________________________________________________________ //RECV000B JOB (SYS),'TSO RECEIVE XMI', <-- Review and Modify // CLASS=A,MSGCLASS=X,REGION=0M, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * JOB: $RECVTSO TSO RECEIVE APPLICATION XMI FILES * //* * for CHKDSN software distribution * //* -------------------------------------------------------* //* //* This JOB executes two steps: //* //* 1) IDCAMS to ensure parent HLQ alias (SHRABIT) is //* defined on master catalog //* Note: Alias definition bypassed if alias already //* ----- defined. //* //* 2) Executes TSO in BATCH mode and issues //* TSO RECEIVE commands to load the XMI distribution //* library (an XMI SEQ dataset) to a temporary PDS. //* Each software PDS is loaded from before deleting //* temporary PDS. //* //* //* This JCL may be modified to suit your installation //* needs. //* //* The TSO RECEIVE commands use INdataset, DAtaset, VOL, //* and NOPRompt parms. //* //* //* -------------------------------------------------------* //* * * //* * PROC: PBTSO * //* * Batch TSO * //* * * //* -------------------------------------------------------* //PBTSO PROC //STEP01 EXEC PGM=IKJEFT01 //SYSPROC DD DISP=SHR,DSN=SYS2.CMDPROC //*STEPLIB DD DISP=SHR,DSN=SYS2.LINKLIB //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY Command Line Input //* // PEND //* //* -------------------------------------------------------* //* Ensure parent HLQ alias is declared //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* //* //* -------------------------------------------------------* //* TSO RECEIVE CHKDSN Software Distribution //* -------------------------------------------------------* //TSORCV EXEC PBTSO //* -------------------------------------------------------* //* Review and Modify the DSN of the transferred XMI <----- //* used in the TSO RECEIVE SYSTSIN DD. <----- //* -------------------------------------------------------* //STEP01.SYSTSIN DD * /* Modify 'SHRABIT.' with your parent HLQ, if different */ /* Modify 'your.transfer.xmi' with transferred XMI SEQ DSN */ /* Modify 'volser' with VOLSER on your system */ RECEIVE IN('your.transfer.xmi') - DA('SHRABIT.CHKDSN.V1R0M01.XMIPDS') - VOL(volser) NOPROMPT /* Receive CNTL */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(CNTL)') - DA('SHRABIT.CHKDSN.V1R0M01.CNTL') - VOL(volser) NOPROMPT /* Receive HELP */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(HELP)') - DA('SHRABIT.CHKDSN.V1R0M01.HELP') - VOL(volser) NOPROMPT /* Receive CLIST */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(CLIST)') - DA('SHRABIT.CHKDSN.V1R0M01.CLIST') - VOL(volser) NOPROMPT /* Receive ISPF */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(ISPF)') - DA('SHRABIT.CHKDSN.V1R0M01.ISPF') - VOL(volser) NOPROMPT /* Receive ASM */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(ASM)') - DA('SHRABIT.CHKDSN.V1R0M01.ASM') - VOL(volser) NOPROMPT /* Receive MACLIB */ RECEIVE IN('SHRABIT.CHKDSN.V1R0M01.XMIPDS(MACLIB)') - DA('SHRABIT.CHKDSN.V1R0M01.MACLIB') - VOL(volser) NOPROMPT /* Delete XMIPDS */ DELETE 'SHRABIT.CHKDSN.V1R0M01.XMIPDS' /* // ______________________________________________________________________ Figure 1b: $RECVTSO.JCL a) Transfer CHKDSN.V1R0M01.XMI to MVS using your 3270 emulator. Make note of the DSN assigned on MVS transfer. Use transfer IND$FILE options: NEW BLKSIZE=3200 LRECL=80 RECFM=FB - or - NEW BLKSIZE(3200) LRECL(80) RECFM(FB) Ensure the DSN on MVS exists with the correct DCB information: ORG=PS BLKSIZE=3200 LRECL=80 RECFM=FB b) If using RECV370 to load XMI, Copy and paste the $RECVXMI JCL to a PDS member, update JOB statement to conform to your installation standard. - or - If using TSO RECEIVE to load XMI, Copy and paste the $RECVTSO JCL to a PDS member, update JOB statement to conform to your installation standard. c) The first step ensures the HLQ alias is defined and the subsequent steps perform the XMI load. Review JCL and apply any modifications per your installation including the DSN assigned during the transfer above for the XMI file. d) Submit the job. e) Review job output for successful load of the following PDSs: SHRABIT.CHKDSN.V1R0M01.ASM SHRABIT.CHKDSN.V1R0M01.CLIST SHRABIT.CHKDSN.V1R0M01.CNTL SHRABIT.CHKDSN.V1R0M01.HELP SHRABIT.CHKDSN.V1R0M01.ISPF SHRABIT.CHKDSN.V1R0M01.MACLIB f) Subsequent installation steps will be submitted from members contained in the CNTL data set. g) Proceed to STEP 6. **** +--------------------------------------------------------------------+ | Step 3. Define Alias for HLQ SHRABIT in MVS User Catalog | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST00) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN00 JOB (SYS),'Def SHRABIT Alias', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN for MVS3.8J TSO / Hercules * //* * JOB: $INST00 Define Alias for parent HLQ SHRABIT * //* * Note: The master catalog password may be required * //* -------------------------------------------------------* //DEFALIAS EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * PARM GRAPHICS(CHAIN(SN)) LISTCAT ALIAS ENT(SHRABIT) /* Review and Modify catalog name below */ IF LASTCC NE 0 THEN - DEFINE ALIAS(NAME(SHRABIT) RELATE(SYS1.UCAT.MVS)) /* // ______________________________________________________________________ Figure 2: $INST00 JCL Note: This distribution is installed under the HLQ alias SHRABIT. $INST00 bypasses the DEFINE ALIAS action when the alias is already defined. a) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. b) Submit the job. c) Review job output for successful DEFINE ALIAS. Note: When $INST00 runs for the first time, Job step DEFALIAS returns RC=0004 due to LISTCAT ALIAS function completing with condition code of 4 and DEFINE ALIAS function completing with condition code of 0. Note: When $INST00 runs after the ALIAS is defined, Job step DEFALIAS returns RC=0000 due to LISTCAT ALIAS function completing with condition code of 0 and DEFINE ALIAS function being bypassed. +--------------------------------------------------------------------+ | Step 4. Load CNTL data set from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST01) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN01 JOB (SYS),'Install CNTL PDS', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN for MVS3.8J TSO / Hercules * //* * JOB: $INST01 Load CNTL PDS from distribution tape * //* * Note: Uses tape drive 480 * //* -------------------------------------------------------* //LOADCNTL PROC THLQ=CHKDSN,TVOLSER=VS1001, // HLQ='SHRABIT.CHKDSN',VRM=V1R0M01, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCNTL DD DSN=&THLQ..&VRM..CNTL.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(1,SL) //CNTL DD DSN=&HLQ..&VRM..CNTL,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(20,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //STEP001 EXEC LOADCNTL Load CNTL PDS //SYSIN DD * COPY INDD=INCNTL,OUTDD=CNTL // ______________________________________________________________________ Figure 3: $INST01 JCL a) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\CHKDSN.V1R0M00.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. b) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE c) Copy and paste the above JCL to a PDS member, update JOB statement to conform to your installation standard. Review JCL and apply any modifications per your installation. d) Submit the job. e) Review job output for successful load of the CNTL data set. f) Subsequent installation steps will be submitted from members contained in the CNTL data set. +--------------------------------------------------------------------+ | Step 5. Load Other data sets from distribution tape | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST02) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN02 JOB (SYS),'Install Other PDSs', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN for MVS3.8J TSO / Hercules * //* * JOB: $INST02 Load other PDS from distribution tape * //* * Tape Volume: File 1 - CNTL * //* * File 2 - CLIST * //* * File 3 - HELP * //* * File 4 - ISPF * //* * File 5 - ASM * //* * File 6 - MACLIB * //* * Note: Default TAPE=480, DASD=DISK on PUB006 * //* -------------------------------------------------------* //LOADOTHR PROC THLQ=CHKDSN,TVOLSER=VS1001, // HLQ='SHRABIT.CHKDSN',VRM=V1R0M01, // DDISP='(,CATLG,DELETE)', // TUNIT=480,DVOLSER=PUB006,DUNIT=DISK <-- Review and Modify //LOAD02 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=&THLQ..&VRM..CLIST.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(2,SL) //INHELP DD DSN=&THLQ..&VRM..HELP.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(3,SL) //INISPF DD DSN=&THLQ..&VRM..ISPF.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(4,SL) //INASM DD DSN=&THLQ..&VRM..ASM.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(5,SL) //INMACLIB DD DSN=&THLQ..&VRM..MACLIB.TAPE,UNIT=&TUNIT, // VOL=SER=&TVOLSER,DISP=OLD,LABEL=(6,SL) //CLIST DD DSN=&HLQ..&VRM..CLIST,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //HELP DD DSN=&HLQ..&VRM..HELP,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ISPF DD DSN=&HLQ..&VRM..ISPF,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,05,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //ASM DD DSN=&HLQ..&VRM..ASM,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(10,10,10)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //MACLIB DD DSN=&HLQ..&VRM..MACLIB,UNIT=&DUNIT,VOL=SER=&DVOLSER, // SPACE=(TRK,(02,02,02)), // DISP=&DDISP, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) // PEND //* //STEP001 EXEC LOADOTHR Load ALL other PDSs //SYSIN DD * COPY INDD=INCLIST,OUTDD=CLIST COPY INDD=INHELP,OUTDD=HELP COPY INDD=INISPF,OUTDD=ISPF COPY INDD=INASM,OUTDD=ASM COPY INDD=INMACLIB,OUTDD=MACLIB // ______________________________________________________________________ Figure 4: $INST02 JCL a) Member $INST02 installs remaining data sets from distribution tape. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Before submitting the above job, the distribution tape must be made available to MVS by issuing the following command from the Hercules console: DEVINIT 480 X:\dirname\CHKDSN.V1R0M01.HET READONLY=1 where X:\dirname is the complete path to the location of the Hercules Emulated Tape file. d) Issue the following command from the MVS console to vary device 480 online: V 480,ONLINE e) Submit the job. f) Review job output for successful loads. +--------------------------------------------------------------------+ | Step 6. FULL or UPGRADE Installation | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($UP1001) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN0U JOB (SYS),'Upgrade CHKDSN', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN in MVS3.8J TSO / Hercules * //* * * //* * JOB: $UP1001 Upgrade CHKDSN software * //* * Upgrade to release V1R0M01 from VxRxMxx * //* * * //* * Review JCL before submitting!! * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * No upgrades for V1R0M01 (consider INITIAL) * //* -------------------------------------------------------* //CHKDSN EXEC PGM=IEFBR14 //* // ______________________________________________________________________ Figure 5: $UP1001.JCL Upgrade from previous version to V1R0M01 a) If this is the INITIAL software distribution, proceed to STEP 7. b) This software may be installed in FULL or UPGRADE from a prior version. Note: If the installed software version is NOT the most recent ----- PREVIOUS version, perform a FULL install. Note: If the installed software version is customized, a manual ----- review and evaluation is suggested to properly incorporate customizations into this software distribution before proceeding with the installation. Refer to the $UPvrmm.JCL members for upgraded software components being installed. Note: $UPvrmm.JCL members exist in each software version. ----- For example, V1R3M00 software contains $UP1300.JCL to upgrade from previous V1R2M00 distribution. For example, V1R2M00 software contains $UP1200.JCL to upgrade from previous V1R1M00 distribution. c) If a FULL install of this software distribution is elected regardless of previous version installed on your system, proceed to STEP 7. d) If this is an UPGRADE from the PREVIOUS version, execute the below JCL based on current installed version: - V1R0M01 has no updates available! - V1000 is initial release, thus, no updates available! e) After upgrade is applied, proceed to validation, STEP 11. +--------------------------------------------------------------------+ | Step 7. Install TSO parts | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST03) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN03 JOB (SYS),'Install TSO Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST03 Install TSO parts * //* * * //* * Note: Duplicate members are over-written. * //* -------------------------------------------------------* //STEP001 EXEC PGM=IEBCOPY //SYSPRINT DD SYSOUT=* //INCLIST DD DSN=SHRABIT.CHKDSN.V1R0M01.CLIST,DISP=SHR //INHELP DD DSN=SHRABIT.CHKDSN.V1R0M01.HELP,DISP=SHR //OUTCLIST DD DSN=SYS2.CMDPROC,DISP=SHR //OUTHELP DD DSN=SYS2.HELP,DISP=SHR //SYSIN DD * COPY INDD=((INCLIST,R)),OUTDD=OUTCLIST SELECT MEMBER=NO#MBR# /*dummy entry no mbrs! */ COPY INDD=((INHELP,R)),OUTDD=OUTHELP SELECT MEMBER=CHKDSN /* // ______________________________________________________________________ Figure 6: $INST03 JCL a) Member $INST03 installs TSO component(s). Note: If no TSO components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 8. Install CHKDSN Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST04) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN04 JOB (SYS),'Install CHKDSN', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN for MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST04 Install CHKDSN Software * //* * * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * * //* * PROC: ASMLKED * //* * Assembler Link-Edit * //* * * //* -------------------------------------------------------* //ASML PROC HLQ=WHATHLQ,VRM=VXRXMXX, // MBR=WHOWHAT //* //ASM EXEC PGM=IFOX00, // PARM='NODECK,LOAD,RENT,TERM,XREF' //SYSGO DD DSN=&&LOADSET,DISP=(MOD,PASS),SPACE=(CYL,(1,1)), // UNIT=VIO,DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=800) //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=SYS1.AMODGEN,DISP=SHR // DD DSN=SYS2.MACLIB,DISP=SHR ** YREG ** // DD DDNAME=PVTMAC ** PVTMAC ** // DD DSN=&HLQ..&VRM..MACLIB,DISP=SHR * myMACLIB ** //PVTMAC DD DSN=SYS2.MACLIB,DISP=SHR * placeholder* //SYSTERM DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=NULLFILE //SYSUT1 DD UNIT=VIO,SPACE=(CYL,(6,1)) //SYSUT2 DD UNIT=VIO,SPACE=(CYL,(6,1)) //SYSUT3 DD UNIT=VIO,SPACE=(CYL,(6,1)) //SYSIN DD DSN=&HLQ..&VRM..ASM(&MBR),DISP=SHR <--INPUT //* //LKED EXEC PGM=IEWL,PARM='MAP,LIST,LET,RENT,XREF', // COND=(0,NE,ASM) //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE) // DD DDNAME=SYSIN //SYSLMOD DD DUMMY //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=VIO,SPACE=(CYL,(5,2)) //SYSIN DD DUMMY //* // PEND //* //* -------------------------------------------------------* //* * Assemble Link-Edit CHKDSN to SYS2.CMDLIB * //* -------------------------------------------------------* //CHKDSN EXEC ASML,HLQ='SHRABIT.CHKDSN',VRM=V1R0M01,MBR=CHKDSN, // PARM.LKED='MAP,LIST,LET,RENT,XREF' //LKED.SYSLMOD DD DISP=SHR, // DSN=SYS2.CMDLIB(&MBR) <--TARGET //* //* -------------------------------------------------------* //* * Assemble Link-Edit CHKDSNMS to SYS2.CMDLIB * //* -------------------------------------------------------* //CHKDSNMS EXEC ASML,HLQ='SHRABIT.CHKDSN',VRM=V1R0M01,MBR=CHKDSNMS, // PARM.LKED='MAP,LIST,LET,RENT,XREF' //LKED.SYSLMOD DD DISP=SHR, // DSN=SYS2.CMDLIB(&MBR) <--TARGET //* //* -------------------------------------------------------* //* * * //* * If SYSn.LINKLIB or SYSn.CMDLIB is updated * //* * * //* -------------------------------------------------------* //DBSTOP EXEC DBSTOP, // COND.IEFPROC=(0,NE) //DBSTART EXEC DBSTART, // COND.IEFPROC=(0,NE) // ______________________________________________________________________ Figure 7: $INST04 JCL a) Member $INST04 installs program(s). Note: If no components are included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 9. Install ISPF parts | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST05) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN05 JOB (SYS),'Install ISPF Parts', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN in MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST05 Install ISPF parts * //* * * //* * Note: Duplicate members are over-written. * //* * * //* * * //* * - Uses ISPF 2.2 product from Wally Mclaughlin * //* * - Install libraries marked... * //* * - Search for '<--TARGET' * //* * - Update install libraries per your * //* * installation standard * //* * * //* -------------------------------------------------------* //* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 8: $INST05 JCL a) Member $INST05 installs ISPF component(s). Note: If no ISPF components are included for this distribution, ----- RC = 4 is returned by the corresponding IEBCOPY step. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Review and update DD statements for ISPCLIB (clist), ISPMLIB (messages), and/or ISPPLIB (panel) library names. The DD statements are tagged with '<--TARGET'. d) Submit the job. e) Review job output for successful load(s). +--------------------------------------------------------------------+ | Step 10. Install Other Software | +--------------------------------------------------------------------+ | JCL Member: SHRABIT.CHKDSN.V1R0M01.CNTL($INST40) | +--------------------------------------------------------------------+ ______________________________________________________________________ //CHKDSN40 JOB (SYS),'Install Other Pgms', <-- Review and Modify // CLASS=A,MSGCLASS=X, <-- Review and Modify // MSGLEVEL=(1,1),NOTIFY=&SYSUID <-- Review and Modify //* -------------------------------------------------------* //* * CHKDSN in MVS3.8J TSO / Hercules * //* * * //* * JOB: $INST40 Install Other Software * //* * Install xxxxxx Programs * //* * * //* * * //* -------------------------------------------------------* //* //* -------------------------------------------------------* //* * IEFBR14 * //* -------------------------------------------------------* //DUMMY EXEC PGM=IEFBR14 //SYSPRINT DD SYSOUT=* //* // ______________________________________________________________________ Figure 9: $INST40 JCL a) Member $INST40 installs additional software. Note: If no other software is included for this distribution, ----- an IEFBR14 step is executed. b) Review and update JOB statement and other JCL to conform to your installation standard. c) Submit the job. d) Review job output for successful completion. +--------------------------------------------------------------------+ | Step 11. Validate CHKDSN | +--------------------------------------------------------------------+ a) From the TSO READY prompt, type the following command: READY TSO CHKDSN 'SYS1.MACLIB' b) The expected response: CHKDSN 0000 -SYS1.MACLIB on MVSRES *** Note: MVSRES may be a different volume on your system. c) Installation complete. Congratulations! +--------------------------------------------------------------------+ | Step 12. Done | +--------------------------------------------------------------------+ a) Congratulations! You completed the installation for CHKDSN. Enjoy using CHKDSN! +--------------------------------------------------------------------+ | Step 13. Incorporate CHKDSN into ISPF | +--------------------------------------------------------------------+ a) Not applicable. ====================================================================== * IV. S o f t w a r e I n v e n t o r y L i s t | ====================================================================== - SHRABIT.CHKDSN.V1R0M01.ASM $ . CHKDSN TSO CP CHKDSN program $ . CHKDSNMS TSO CP CHKDSNMS program (message processor) - SHRABIT.CHKDSN.V1R0M01.CLIST . README Dummy member, this is intentional - SHRABIT.CHKDSN.V1R0M01.CNTL # . $INST00 Define Alias for HLQ $ . $INST01 Load CNTL data set from distribution tape (HET) $ . $INST02 Load other data sets from distribution tape (HET) # . $INST03 Install TSO Parts # . $INST04 Install CHKDSN Software # . $INST05 Install ISPF Parts # . $INST40 Install Other Software # . $RECVTSO Receive XMI SEQ to MVS PDSs via TSO RECEIVE # . $RECVXMI Receive XMI SEQ to MVS PDSs via RECV370 # . $UP1001 Upgrade to V1R0M01 from VxRxMxx (no upgrades) $ . DSCLAIMR Disclaimer # . PREREQS Required User-mods $ . README Documentation and Installation instructions - SHRABIT.CHKDSN.V1R0M01.HELP . CHKDSN CHKDSN TSO HELP file - SHRABIT.CHKDSN.V1R0M01.ISPF . README Dummy member, this is intentional - SHRABIT.CHKDSN.V1R0M01.MACLIB . README Dummy member, this is intentional - After downloading any other required software, consult provided documentation including any configuration steps (if applicable) for software and HELP file installation. $ - Denotes modified software component for THIS DISTRIBUTION relative to prior DISTRIBUTION # - Denotes new software component for THIS DISTRIBUTION relative to prior DISTRIBUTION
  • Click here to download the zip file to your PC local drive.

Closing

Use CHKDSN on your MVS3.8J system in CLISTs to validate presence of cataloged and non-cataloged datasets real-time before invoking a major process or in your MVS JOBs to condition execution of subsequent job steps.

Please use the comment box below or the contact us link on the menu bar to communicate any suggestions, improvements, corrections or issues regarding this post.

Thank You.

Version History

*
*  MM/DD/CCYY Version  Change Description
*  ---------- -------  -----------------------------------------------
*  03/18/2024 1.0.01   - Updated distribution packaging
*                      - Updated pgm documentation
*
*  07/30/2020 1.0.00   - Initial version released to MVS 3.8J
*                        hobbyist public domain
*

Tagged ,

Leave a Reply

Your email address will not be published. Required fields are marked *


CAPTCHA Image
Reload Image

This site uses Akismet to reduce spam. Learn how your comment data is processed.