> 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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN