MCIT Technical Newsletter #15

Waiting For An Event

        With an ever increasing number of FTPs required by MVS batch jobs, the problem of 'No File
     Available for FTP' is more critical than ever.  The ca scheduling system can not handle the  
     situation at all.  There is a program available to all batch jobs that will make the job 'SLEEP' 
     for a specified number of seconds before progressing to its next step.  Our experience has been
     that obtaining files from 'foreign' systems is very undependable.  We often have to contact a 
     support person to get a process started to make the required file available.      

        The program 'YWSLPBC' will accept a delay amount, in seconds,  and a time of day, in hours
     minutes and seconds, to control its operation.  By combining the delay with smart FTP checking
     (DL5691XP) and the MVS internal reader, the availability of files from foreign systems can be 
     less dependent on the time of day.  The time of day parameter will force an abend rather than
     a delay, once that time of day has been exceeded.  This will prevent a job from waiting forever
     for a file and to alert the MVS team while still on site of the file problem. 

        The job being controlled in this manner must be a 'stand alone job', meaning that it can not
     trigger subsequent jobs.   

        The normal steps for a job utilizing 'YWSLPBC' would have the first step executing 'YWSLPBC',
     the second step would set the delay parameter to an appropriate interval, the third attempts the
     FTP, the fourth executes 'DL5691XP'.  If the FTP was successful, the delay parameter should be set
     to 1 second and the balance of the job should be allowed to run.  If the FTP fails because of a
     'NO FILE' condition, simply run 'IEBGENER' to write the job to the internal reader for immediate 
     execution.  

     Sample JCL:

          //STEP1   EXEC PGM=YWSLPBC
          //SYSOUT   DD  SYSOUT=*
          //SYSIN    DD  DISP=SHR,DSN=NPPM3.PROD.D.jobname.DELAY
          //*
          //*                              * FORCE 1 HOUR DELAY, FAIL AFTER 2PM 
          //*
          //STEP2   EXEC PGM=IEBGENER
          //SYSUT1   DD  *
          3600,140000
          //SYSUT2   DD  DISP=OLD,DSN=NPPM3.PROD.D.jobname.DELAY
          //SYSOUT   DD  SYSOUT=*
          //SYSPRINT DD SYSOUT=*
          //* 
          //STEP3   EXEC PGM=FTP
                     .
                     . 
                     .
          //STEP4   EXEC PGM=DL5691XP 
                     .
                     .
                     .
          //*
          //* IF (STEP4.RC = 0) THEN            RESET DELAY TO 1 SECOND 
          //* 
          //STEP5   EXEC PGM=IEBGENER
          //SYSUT1   DD  *
          0001,140000
          //SYSUT2   DD  DISP=OLD,DSN=NPPM3.PROD.D.jobname.DELAY
                     .
                     .
                     .
          //*
          // ELSE
          //*
          //STEPxxx EXEC PGM=IEBGENER 
          //SYSUT1   DD  DISP=SHR,DSN=UCC7.EXEC.JCL(jobname)
          //SYSUT2   DD  SYSOUT=(*,INTRDR)
                     .
                     .
                     .
          //*
          //*                           NOTIFY MVS ON-CALL VIA TEAM PAGER
          //*
          //STEPyyy EXEC PGM=IEBGENER
          //SYSUT1   DD  * 
          PAGE  jobname FTP FAILED - NO FILE ON REMOTE SERVER WILL RETRY IN 1 HOUR.  
          //SYSUT2   DD  SUBSYS=(OPSS,OPSDSN,,mvsteam)
          //SYSIN    DD  DUMMY
          //SYSPRINT DD  SYSOUT=*   
          //*
          // ENDIF
          //