$! $! REQUE.COM - 17-Oct-1997 by David J. Dachtera $! $! Requeue a batch job with all of the original parameters and $! qualifiers. $! $!------------------------------------------------------------------------------ $ DEBUG = 0 $! DEBUG = 1 $ SAY := WRITE SYS$OUTPUT $ IF P1 .EQS. "" THEN GOTO DSP_USAGE $ FGQE = "F$GETQUI(""DISPLAY_ENTRY""," $ WCFC = ",,""WILDCARD,FREEZE_CONTEXT"")" $ DFLT = F$ENVIRON( "DEFAULT" ) $ ENT = F$GETQUI("DISPLAY_ENTRY","ENTRY_NUMBER",P1,"WILDCARD,FREEZE_CONTEXT") $ IF ENT .NES. P1 THEN GOTO BAD_ENTRY $! FDT = F$FILE( FSP, "CDT" ) $ LPD = 'FGQE'"JOB_LOG_DELETE"'WCFC' $ LPS = 'FGQE'"JOB_LOG_SPOOL"'WCFC' $ LPQ = 'FGQE'"LOG_QUEUE"'WCFC' $ JNU = 'FGQE'"JOB_NOTIFY"'WCFC' $ JQN = 'FGQE'"QUEUE_NAME"'WCFC' $ JCI = 'FGQE'"CLI"'WCFC' $ JCL = 'FGQE'"CPU_LIMIT"'WCFC' $ JER = 'FGQE'"JOB_ERROR_RETENTION"'WCFC' $ JJN = 'FGQE'"JOB_NAME"'WCFC' $ JNO = 'FGQE'"NOTE"'WCFC' $ JPR = 'FGQE'"PRIORITY"'WCFC' $ JRE = 'FGQE'"JOB_RETENTION"'WCFC' $ JRQ = 'FGQE'"RESTART_QUEUE_NAME"'WCFC' $ JRS = 'FGQE'"JOB_RESTART"'WCFC' $ JRT = 'FGQE'"JOB_RETENTION_TIME"'WCFC' $ JUN = 'FGQE'"USERNAME"'WCFC' $ JAT = 'FGQE'"AFTER_TIME"'WCFC' $ JHD = 'FGQE'"JOB_HOLDING"'WCFC' $ JTR = 'FGQE'"JOB_TIMED_RELEASE"'WCFC' $ JP1 = 'FGQE'"PARAMETER_1"'WCFC' $ JP2 = 'FGQE'"PARAMETER_2"'WCFC' $ JP3 = 'FGQE'"PARAMETER_3"'WCFC' $ JP4 = 'FGQE'"PARAMETER_4"'WCFC' $ JP5 = 'FGQE'"PARAMETER_5"'WCFC' $ JP6 = 'FGQE'"PARAMETER_6"'WCFC' $ JP7 = 'FGQE'"PARAMETER_7"'WCFC' $ JP8 = 'FGQE'"PARAMETER_8"'WCFC' $ JWD = 'FGQE'"JOB_WSDEFAULT"'WCFC' $ JWE = 'FGQE'"JOB_WSEXTENT"'WCFC' $ JWQ = 'FGQE'"JOB_WSQUOTA"'WCFC' $ LSP = 'FGQE'"LOG_SPECIFICATION"'WCFC' $ lqn = 'FGQE'"log_queue"'WCFC' $ got_lqn = 0 $ if lqn .nes. "" then - $ got_lqn = ((f$trnlnm( lqn ) .nes. "") .or. - (f$getqui("display_queue","queue_name",lqn,) .nes. "")) $ WSD = 'FGQE'"WSDEFAULT"'WCFC' $ WSE = 'FGQE'"WSEXTENT"'WCFC' $ WSQ = 'FGQE'"WSQUOTA"'WCFC' $ FSP = F$GETQUI("DISPLAY_FILE","FILE_SPECIFICATION"'WCFC' $ ON WARNING THEN GOTO ERR_EXIT $ JFS := $FSP_LOOP: $ FDD = F$GETQUI("DISPLAY_FILE","FILE_DELETE"'WCFC' $! $ OPEN/READ/ERROR=ERR_EXIT PRC &FSP ! If we can OPEN it, we can SUBMIT it. $ CLOSE PRC ! Close it. $ IF JFS .NES. "" THEN JFS := 'JFS', $ JFS := 'JFS''F$ELEM( 0, ";", FSP )' $ IF FDD THEN JFS := 'JFS'/DELETE $ FSP = F$GETQUI("DISPLAY_FILE","FILE_SPECIFICATION",,"WILDCARD") $ IF FSP .NES. "" THEN GOTO FSP_LOOP $EXIT_FSP_LOOP: $! $! Compare the job's username to the current process's username. $! If they differ, we'll need CMKRNL privilege to do the SUBMIT. $ USN = F$EDIT( F$GETJPI( 0, "USERNAME" ), "TRIM" ) $ IF (JUN .NES. USN) .AND. (.NOT. F$PRIV( "CMKRNL" )) THEN - $ EXIT %X00042802 $! $! O.k. We've got all the information and privilege we should need. $! We'll leave the error trap set to blow 'em out if ANYthing goes $! wrong... $ AFTR_QUAL := $ IF JTR THEN AFTR_QUAL = "/AFTER=""''JAT'""" $ CLI_QUAL := $ IF JCI .NES. "" THEN CLI_QUAL := /CLI='JCI' $ CPU_QUAL := $ IF F$EDIT( JCL, "TRIM" ) .NES. "0 00:00:00.00" THEN - $ CPU_QUAL := /CPU_LIMIT="''JCL'" $! DEL_QUAL := $! IF FDD THEN DEL_QUAL := /DELETE $ HOLD_QUAL := $ IF JHD THEN HOLD_QUAL := /HOLD $ KEEP_QUAL := $ IF .NOT. LPD THEN KEEP_QUAL := /KEEP $ LOG_QUAL := $ IF LSP .NES. "" THEN LOG_QUAL := /LOG='LSP' $ NAME_QUAL := /NAME='JJN' $ NOTE_QUAL := $ IF JNO .NES. "" THEN NOTE_QUAL = "/NOTE=""''JNO'""" $ NTFY_QUAL := $ IF JNU THEN NTFY_QUAL := /NOTIFY $ PARM_QUAL = "/PARAM=(" + - """''JP1'"",""''JP2'"",""''JP3'"",""''JP4'""," + - """''JP5'"",""''JP6'"",""''JP7'"",""''JP8'"")" $ PRINT_QUAL := /NOPRINT $ IF LPS .and. got_lqn THEN PRINT_QUAL := /PRINT='lqn' $ IF LPQ .NES. "" THEN PRINT_QUAL := /PRINT='LPQ' $ REST_QUAL := $ IF JRS THEN REST_QUAL := /RESTART!='JRQ' $ RETN_QUAL := $ IF JRE $ THEN $ RETN_QUAL = "/RETAIN=""''JRT'""" $ IF JRT .EQS. "17-NOV-1858 00:00:00.00" THEN - $ RETN_QUAL := /RETAIN=ALWAYS $ IF JER THEN - $ RETN_QUAL := /RETAIN=ERROR $ ENDIF $ USER_QUAL := $ IF JUN .NES. USN THEN USER_QUAL := /USER='JUN' $ WSDF_QUAL := $ IF JWD THEN WSDF_QUAL := /WSDEF='WSD' $ WSQO_QUAL := $ IF JWQ THEN WSQO_QUAL := /WSQUO='WSQ' $ WSXT_QUAL := $ IF JWE THEN WSXT_QUAL := /WSEXT='WSE' $ CMD = "SUBMITX/QUEUE=" + JQN + " " + JFS + AFTR_QUAL + CLI_QUAL + - CPU_QUAL + HOLD_QUAL + KEEP_QUAL + LOG_QUAL + NAME_QUAL + - NOTE_QUAL + NTFY_QUAL + PARM_QUAL + PRINT_QUAL + REST_QUAL + - RETN_QUAL + USER_QUAL + WSDF_QUAL + WSQO_QUAL + WSXT_QUAL $ IF DEBUG $ THEN $ SHOW SYMBOL/ALL $ ELSE $ 'CMD' $ DELETE/LOG/NOCONFIRM/ENTRY=&P1 $ ENDIF $ EXIT $! $ERR_EXIT: $ IF DEBUG THEN SHOW SYMBOL/ALL $ EXIT (&$STATUS .AND. %X0FFFFFFF) $! $BAD_ENTRY: $ SAY "% Entry not found" $ EXIT $! $DSP_USAGE: $ SAY " Usage: @[ddcu: