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

Reply via email to