Thanks a ton Jim and John !
On Tue, Apr 22, 2014 at 2:16 AM, John Clifford <[email protected]> wrote: > We had this issue back in early 2000's. Ended up being something with GRS > across 4 LPARs. > We ended up writing a small rexx to delay next step for xxx seconds. > ================================================================ > /* REXX */ > /* SLEEPS FOR THE SPECIFIED NUMBER OF SECONDS. */ > /********1*********2*********3*********4*********5*********6*********7*/ > SIGNAL ON ERROR > PARSE ARG SECONDS > IF SECONDS = "" THEN > CALL BADSYNTAX > IF DATATYPE( SECONDS, 'W' ) == 0 THEN > DO > SAY "ERROR! SECONDS PARAMETER MUST BE A WHOLE NUMBER!" > CALL BADSYNTAX > END > CALL SYSCALLS 'ON' > ADDRESS SYSCALL > "SLEEP" SECONDS > CALL SYSCALLS 'OFF' > EXIT 0 > /** BADSYNTAX() > * PRINTS THE CORRECT SYNTAX... > */ > BADSYNTAX: PROCEDURE > SAY "SYNTAX ERROR!" > SAY "" > SAY "SYNTAX: SLEEP( SECONDS )" > CALL SYSCALLS 'OFF' > EXIT 1 > /** ERROR > * CALLED WHEN AN ERROR SIGNAL OCCURS. > */ > ERROR: > SAY "ERROR! KILLING REXX SCRIPT." > CALL SYSCALLS 'OFF' > EXIT 1 > ======================================================================= > Save rexx in a SYSEXEC lib > then insert; > > //STEP01 EXEC PGM=IKJEFT01 > //SYSPRINT DD SYSOUT=* > //SYSLBC DD DSN=SYS1.BRODCAST,DISP=SHR > //SYSPROC DD DISP=SHR,DSN=YOUR.SYSEXEC.LIB > //SYSTSPRT DD SYSOUT=* > //SYSOUT DD SYSOUT=* > //SYSTSIN DD * > SLEEP 12 > =========================================== > Maybe it will help. It won't explain what is causing your command > completion delay. We found it using TMON for MVS. > > John Clifford > IBM contractor > > > > On Mon, Apr 21, 2014 at 2:47 PM, Jim Mulder <[email protected]> wrote: > > > > That's the problem with us now ...we don't see significant difference > > from > > > the logs . > > > > > > When one device is varied offline , it gets processed instantly > > > > > > When vary is issued against a set of devices (may be 10 ) , we see a > > delay > > > of 15 to 20 seconds . But our storage person keeps complaining that > vary > > > commands are processed slow . I believe , it is because there are so > > many > > > backup jobs failing from last few months compared to earlier . > > > > > > For eg , we had an abend yesterday where STEP 1 issues a vary command > > > against a set of volumes . And STEP 2 runs an ICKDSF to init the volume > > . > > > It fails saying the volume is not offline . > > > > To avoid having a job fail because a device is not yet in the > > desired online/offline state, I would suggest adding a step to the job > > which runs a program which waits until the device is in the desired > state. > > > > This is a simple program that we use. Since it is PL/X source, it isn't > > directly usable, but it demonstrates the logic which could be used > > in a program written in an externally available language. > > > > @PROCESS TITLE('VARYWAIT -- WAIT FOR VARY DEVICE TO COMPLETE') > > FORMAT DOBARS GMAR(1,72) NOIMP ENV(MVS/XA) OPT(STD); > > VARYWAIT: PROC(PARM) OPTIONS(?ID(VARYWAIT);,CODEREG(12), > > AMODE(31),RMODE(ANY)); > > %INCLUDE SYSLIB(IEFUCBOB); > > DCL UCBPTR PTR(31); > > DCL PTOKEN CHAR(8); /*PTR TO PIN TOKEN */ > > DCL NOTPINNED CHAR(8) INIT('0000000000000000'X); > > DCL PINTEXT CHAR(58) > > INIT('DEVICE PINNED BY VARYWAIT PROGRAM - IE: CLEANUP JOB'); > > DCL R15 PTR(31) REG(15); > > DCL DEVNUM FIXED(32); > > DCL WAIT1 FIXED(32); > > DCL RC FIXED(31); > > DCL 1 PARM, /* "0000DDDD,TTTTTTTT,ON " */ > > 2 LEN FIXED(15), > > 2 PARMDATA, > > 3 DEVPRM CHAR(8), > > 3 COMMA1 CHAR(1), > > 3 WAIT1PRM CHAR(8), > > 3 COMMA2 CHAR(1), > > 3 ONOFFPRM CHAR(3); > > > > DCL 1 TRANSHEX CHAR(256), > > 2 * CHAR(193), > > 2 * BIT(48) INIT('0A0B0C0D0E0F'X), > > 2 * CHAR(41), > > 2 * BIT(80) INIT('00010203040506070809'X); > > > > DCL 1 UNPACKED CHAR(9), > > 2 SIGUNPK CHAR(8); > > > > DCL 1 PACKED CHAR(5) BDY(WORD), > > 2 HEXNUM CHAR(4), > > PARMFIX FIXED(32) DEF(HEXNUM); > > > > IF LEN ¬= LENGTH(PARMDATA) | COMMA1¬=',' | COMMA2¬=',' THEN > > ?ABEND (1) DUMP; > > > > SIGUNPK=DEVPRM; > > TR(SIGUNPK,TRANSHEX); > > PACK(PACKED,UNPACKED); > > DEVNUM=PARMFIX; > > > > SIGUNPK=WAIT1PRM; > > TR(SIGUNPK,TRANSHEX); > > PACK(PACKED,UNPACKED); > > WAIT1=PARMFIX; > > > > ?MODESET MODE(SUP) KEY(NZERO); > > RFY R15 RSTD; > > > > PTOKEN = NOTPINNED; > > ?UCBLOOK DEVN(DEVNUM) UCBPTR(UCBPTR) DYNAMIC(YES) LOC(ANY) > > PIN PTOKEN(PTOKEN) TEXT(PINTEXT) RANGE(ALL); > > RC = R15; /* SAVE RETURN CODE */ > > > > IF RC ¬= 0 THEN > > ?ABEND (2) DUMP; > > RFY R15 UNRSTD; > > > > SELECT (ONOFFPRM); > > WHEN ('ON ') > > DO WHILE(¬UCBONLI); > > IF WAIT1¬=0 THEN > > GEN REFS(WAIT1) (STIMER WAIT,BINTVL=WAIT1 ); > > END; > > WHEN ('OFF') > > DO WHILE(UCBONLI); > > IF WAIT1¬=0 THEN > > GEN REFS(WAIT1) (STIMER WAIT,BINTVL=WAIT1 ); > > END; > > OTHERWISE > > ?ABEND (3) DUMP; > > END; > > > > IF PTOKEN ¬= NOTPINNED THEN /* UNPIN IF REQUIRED */ > > ?UCBPIN UNPIN PTOKEN(PTOKEN); > > ?MODESET MODE(PROB) KEY(NZERO); > > > > RETURN CODE(0); > > ?EPILOG; > > END VARYWAIT; > > > > > > > > Jim Mulder z/OS System Test IBM Corp. Poughkeepsie, NY > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, > > send email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
