MCIT Technical Newsletter #12

Insuring Data Set Availability

 

        The daily batch cycle is becoming more complex every day with additional
     ftps and charge jobs.  This additional complexity makes scheduling to prevent
     file contention nearly impossible.  MVS's Dynamic allocation can be used to
     dramatically increase to probability that a data set or set of data sets will
     be available for use when required.  

        A program is available that will determine the availability of a data set
     or group of data sets, wait for their availability and pass a return code to
     indicate their (un)availability.  The program name is DR0475BA and it resides
     in the 'NPAPPL.BATCH.LOADLIB' link list data set.  

        DR0475BA has several keyword parameters to control is behavior.  A keyword
     parameter is a parameter of the form 'keyword=value'.  The table below specifies
     the keywords, their use and their default values.  All of the keywords are
     optional, but if no keywords are specified, the name of the data set(s) to
     insure availability of must be input via 'SYSIN DD'.  

     Keyword Value Meaning                                              Default
     ------- ----- ---------------------------------------------------- -------
     DISP=   *     Disposition of allocated data set(s)                 SHR
     FREE=   Y(es) Free immediately upon successful allocation          Yes
             N(o)  Hold data set until end of step
     CONT=   Y(es) Continue even if allocation fails                    No
             N(o)  Terminate step on 1st failure
     TIME=   #     Number of seconds to loop waiting for data set       60
     LOOP=   #     Number of loops to attempt to allocate data set      10
     DSN=    dsn   The data set name to attempt to allocate             none

             * as defind in IBM standard JCL (SHR,OLD,MOD,NEW)
             # numeric value 1 thru 65535 (unsigned binary halfword)

     Examples:   PARM='DISP=OLD,DSN=VPPMV.PROD.YISEGMD,TIME=5,LOOP=20'
                 PARM='DISP=SHR,FREE=YES,CONT=YES'
                 PARM='DSN=NPPM3.PROD.D.PMCNTROL' 
     
       If all specified data sets are successfully allocated with the required disp,
     the return code will be zero.  If any data set can not be allocated, the rc
     will be 4.

       To be effective, the data sets allocated by DR0475BA must be allocated as soon
     as possible by the next job step.  If the data sets are in separate steps, use
     individual executions of DR0475BA to insure availability before each step. 

       If multiple data sets are required, they must be input via SYSIN DD with the
     data set name beginning in column 1.  

     Examples:   //STEP01 EXEC PGM=DR0475BA,PARM='DISP=OLD'
                 //SYSOUT DD SYSOUT=*
                 //SYSIN  DD *
                 VPPMV.PROD.YICPIMD
                 VPPMV.PROD.YAAPMMD
                 VPPMV.PROD.YISEGMD
                 /*


       A sample production job using DR0475BA is PCCC$3C2.