*DECK JOBQTFS 
*CWEOR,00 
*WIDTH,80,0 
JOBQTFS 
TITLE(JOB) JOBQTFS - QTFS RELEASE DEFAULT JOB SKELETON. 
.*
.*
.*  THIS IS THE STARTUP JOB FOR QTFS. 
.*
.*    THIS RECORD MUST BE ADDED TO THE NAMSTRT FILE FOR QTFS
.*    TO BE STARTED WITH THE REST OF THE NETWORK. 
.*
.*    STATEMENTS OF THE FORM
.*               JOB(JOBQTFS,QS,SY,NS)
.*    MUST BE ADDED TO ALL PARAMETER RECORDS TO SELECT THIS RECORD
.*    TO BE PROCESSED BY NAMI AND SUBMITTED TO START QTFS.
.*
.*    THE PERMANENT FILES THAT QTFS DUMPS AND TRACES ARE WRITTEN TO 
.*    WILL BE COLLECTED BY THE COLLECTOR JOB ALONG WITH THE 
.*    REST OF THE THE NETWORK TRACES AND DUMPS. 
.*
.*
.*  PERMANENT FILES FOR RUN DATA ARE DEFINED AT JOB TERMINATION.
.*
.*       TFN       LFN       PFN       CONTENTS 
.*
.*       OUTPUT    QTFSOUT   QSD0FIL   OUTPUT FROM JOB (DMP,DMD,ETC). 
.*       ZZZZDMB   QTFSDMB   QSD2FIL   BINARY FIELD LENGTH DUMPS. 
.*                 QTFSLST   QSL0FIL   JOB DAYFILE. 
.*       ZZZZZSN   QSSTATS   QSS0FIL   AIP STATISTICS FILE. 
.*       ZZZZZDN   TRCLEV1             AIP TRACE FILE WRITTEN BY QTS. 
.*                 TRCLEV3   QST0FIL   PERMANENT AIP TRACE FILE.
.*
.*
.*
QTFS_CIN,T77777.   QTFS RELEASE DEFAULT JOB.
USER(UNM,PWM) 
CLASS(CT) 
NORERUN.
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
RETURN(OUTPUT)
.*
.*  SET UP THE ZZQTFS FILE. 
.*
COPYBR(INPUT,NEW,2) 
COPYBR(INPUT,SETID) 
BEGIN(,SETID,HID+B) 
WHILE(1,INTLKLP)
ATTACH(INTRLCK=ZXQTFS/NA,M=W) 
IF(.NOT.FILE(INTRLCK,AS),INTLKOK) 
DEFINE(INTRLCK=ZXQTFS/NA) 
IF(.NOT.FILE(INTRLCK,AS),INTLKOK) 
ENDW(INTLKLP) 
.*
ENDIF(INTLKOK)
GET(OLD=ZZQTFS/NA)
IF(FILE(OLD,AS),INIT) 
SKIPR(OLD,2)
COPYEI(OLD,NEW) 
RENAME(OLD=NEW) 
LIBEDIT(P=OLD,B=REP,N=NEW)
ELSE(INIT)
COPYBR(REP,NEW) 
ENDIF(INIT) 
REPLACE(NEW=ZZQTFS) 
ROUTE(NEW,DC=IN,OT=SYOT)
RETURN(INTRLCK) 
ROLLOUT(3)
NOEXIT. 
ATTACH(INTRLCK=ZXQTFS)
ONEXIT. 
IF(FILE(INTRLCK,AS))  PURGE(ZXQTFS/NA)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  QTFS 
.*
WHILE(1,LSTLOOP)
ATTACH(QTFSLST=QSL0FIL/NA,M=W)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
DEFINE(QTFSLST=QSL0FIL/NA)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(QTFSLST) 
NOTE(DFL,NR)/QSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,QTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  QTFS 
.EOR
.*
.*  THIS IS THE COMMON JOB PART OF THE ZZQTFS FILE. 
.*
QTFS,T77777.
CLASS(CT) 
NORERUN.
BEGIN(APPLHID,INPUT,HID+B)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  QTFS 
.*
USER(UNM,PWM) 
DISPLAY(DATE) 
DISPLAY(HID)
DISPLAY(OT) 
DISPLAY(SC) 
WHILE(1,LSTLOOP)
ATTACH(QTFSLST=QSL0FIL/NA,M=W)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
DEFINE(QTFSLST=QSL0FIL/NA)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(QTFSLST) 
NOTE(DFL,NR)/QSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,QTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  QTFS 
.EOR
.*
.*  THIS PROC SELECTS THE ACTUAL PROC TO EXECUTE BASED ON HID.
.*
.PROC,APPLHID*I,ID=(*S4(01234567)). 
.EX.BEGIN(QS_ID,INPUT)
.EOR
.*
.*  THIS PROC PUTS THE HOST ID IN THE APPL PROC, WHICH IS THE 
.*  LOWER PART OF THIS PROC.
.*
.PROC,SETID*I,ID=(*S4(01234567)). 
REVERT.  SETID
EXIT.  SETID
REVERT(ABORT)  SETID
.*
.DATA,REP 
.PROC,QS_ID.
SETJOB(QTFS_CIN)
.*
.*  ASSIGN NETWORK STATISTICS AND TRACE FILES.
.*
ASSIGN(MS,ZZZZZSN)
ASSIGN(MS,ZZZZZDN)
.*
.*  START QTFS. 
.*
QTFSN.
.*
.*  QTFS NORMAL TERMINATION - DO NOT SAVE RUN DATA ON PERMANENT FILES.
.*
SKIP(BAILOUT) 
.*
EXIT.  QTFS 
.*
.*
.*  QTFS FAILED - SAVE RUN DATA IF REQUIRED.
.*
.*
DISPLAY(EF) 
IF(EF.NE.SYE,BAILOUT) 
USER(UNM,PWM) 
SKIP(SAVFILS) 
.*
ENDIF(BAILOUT)
RETURN(OUTPUT)
SETJOB(DC=NO) 
EXIT.  QTFS 
.*
.*  SAVE RUN DATA IF AVAILABLE. 
.*
ENDIF(SAVFILS)
.*
REWIND(OUTPUT)
SKIPR(OUTPUT) 
IF(.NOT.FILE(OUTPUT,EOI),NOUTPUT) 
WHILE(1,OUTLOOP)
ATTACH(QTFSOUT=QSD0FIL/NA,M=W)
IF(.NOT.FILE(QTFSOUT,AS),GOTFILE) 
DEFINE(QTFSOUT=QSD0FIL/NA)
IF(.NOT.FILE(QTFSOUT,AS),GOTFILE) 
ENDW(OUTLOOP) 
.*
ENDIF(GOTFILE)
REWIND(OUTPUT)
SKIPEI(QTFSOUT) 
COPYEI(OUTPUT,QTFSOUT)
RETURN(OUTPUT,QTFSOUT)
ELSE(NOUTPUT) 
RETURN(OUTPUT)
ENDIF(NOUTPUT)
.*
IF(FILE(ZZZZDMB,AS),NOZZDMB)
WHILE(1,DMBLOOP)
ATTACH(QTFSDMB=QSD2FIL/NA,M=W)
IF(.NOT.FILE(QTFSDMB,AS),GOTFILE) 
DEFINE(QTFSDMB=QSD2FIL/NA)
IF(.NOT.FILE(QTFSDMB,AS),GOTFILE) 
ENDW(DMBLOOP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZDMB) 
SKIPEI(QTFSDMB) 
COPYEI(ZZZZDMB,QTFSDMB) 
RETURN(ZZZZDMB,QTFSDMB) 
ENDIF(NOZZDMB)
.*
REWIND(ZZZZZSN) 
SKIPR(ZZZZZSN)
IF(.NOT.FILE(ZZZZZSN,EOI),NOSTATS)
WHILE(1,STATSLP)
ATTACH(QSSTATS=QSS0FIL/NA,M=W)
IF(.NOT.FILE(QSSTATS,AS),GOTFILE) 
DEFINE(QSSTATS=QSS0FIL/NA)
IF(.NOT.FILE(QSSTATS,AS),GOTFILE) 
ENDW(STATSLP) 
.*
ENDIF(GOTFILE)
REWIND(ZZZZZSN) 
SKIPEI(QSSTATS) 
COPYEI(ZZZZZSN,QSSTATS) 
RETURN(ZZZZZSN,QSSTATS) 
ENDIF(NOSTATS)
.*
RENAME(TRCLEV1=ZZZZZDN) 
REWIND(TRCLEV1) 
SKIPR(TRCLEV1)
IF(.NOT.FILE(TRCLEV1,EOI),NOTRACE)
WHILE(1,TRCLP2) 
ATTACH(TRCLEV3=QST0FIL/NA,M=W)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
DEFINE(TRCLEV3=QST0FIL/NA)
IF(.NOT.FILE(TRCLEV3,AS),GOTFILE) 
ENDW(TRCLP2)
.*
ENDIF(GOTFILE)
SKIPEI(TRCLEV3) 
REWIND(TRCLEV1) 
COPYBF(TRCLEV1,TRCLEV3) 
BKSP(TRCLEV3) 
SKIPR(TRCLEV3)
IF(.NOT.FILE(TRCLEV3,EOF))  WRITEF(TRCLEV3) 
RETURN(TRCLEV1,TRCLEV3) 
ENDIF(NOTRACE)
.*
ENDIF(ABORTED)
USER(UNM,PWM) 
WHILE(1,LSTLOOP)
ATTACH(QTFSLST=QSL0FIL/NA,M=W)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
DEFINE(QTFSLST=QSL0FIL/NA)
IF(.NOT.FILE(QTFSLST,AS),GOTFILE) 
ENDW(LSTLOOP) 
.*
ENDIF(GOTFILE)
SKIPEI(QTFSLST) 
NOTE(DFL,NR)/QSDA_CIN 
DAYFILE(DFL)
PACK(DFL) 
COPYEI(DFL,QTFSLST) 
RETURN(QTFSLST) 
.*
SETJOB(DC=NO) 
EXIT.  QTFS 
*WIDTH
