> 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

Reply via email to