MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Sleep Function for delay without CPU usage- z/OS 01.7 ver.

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming
View previous topic :: View next topic  
Author Message
vikaspaniker79
Beginner


Joined: 01 Aug 2005
Posts: 12
Topics: 4
Location: India

PostPosted: Sun Jan 21, 2007 11:21 pm    Post subject: Sleep Function for delay without CPU usage- z/OS 01.7 ver. Reply with quote

Hi,

Can anyone please advice on how is the usage of SLEEP function in a cobol-ims pgm. The OS version is z/OS 01.7 ver. This function provides a delay without CPU consumption. Please note, i am aware of other similar functions like "ILBOWAT0", but i am specifically looking for the SLEEP fn.

Appreciate your early response on this.

Regards,
Vikas P
_________________
Cheers,
Vikas
Back to top
View user's profile Send private message Yahoo Messenger
kolusu
Site Admin
Site Admin


Joined: 26 Nov 2002
Posts: 12378
Topics: 75
Location: San Jose

PostPosted: Sun Jan 21, 2007 11:24 pm    Post subject: Reply with quote

vikaspaniker79,

Please search before posting. Check these links

http://www.mvsforums.com/helpboards/viewtopic.php?p=34591#34591

http://www.mvsforums.com/helpboards/viewtopic.php?p=28509#28509


Hope this helps...

Cheers

Kolusu
_________________
Kolusu
www.linkedin.com/in/kolusu
Back to top
View user's profile Send private message Send e-mail Visit poster's website
vikaspaniker79
Beginner


Joined: 01 Aug 2005
Posts: 12
Topics: 4
Location: India

PostPosted: Mon Jan 22, 2007 7:52 pm    Post subject: Reply with quote

Hi Kolsu,

Thanks for the prompt response. I did had viewed the posts mentioned by you. But as i mentioned above i am aware of "ILBOWAT0" and SLEEP usage in JCL. Here i am asking for USAGE of SLEEP in the cobol program. Please advice.

Regards,
Vikas P
_________________
Cheers,
Vikas
Back to top
View user's profile Send private message Yahoo Messenger
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Tue Jan 23, 2007 5:10 am    Post subject: Reply with quote

this is a CALL to an assembler program which will cause the task to 'sleep':

Code:
         PRINT GEN
SNOOZER  CSECT
***********************************************************************
*---------------------------------------------------------------------*
*                                                                     *
*        THIS SUB-PROGRAM IS CALLED, PASSING A 07-BYTE DISPLAY        *
*        NUMERIC VALUE, REPRESENTED AS C'SSSSSTH' (SECONDS, TENTHS    *
*        AND HUNDREDTHS).                                             *
*                                                                     *
*        IT INVOKES THE MVS 'STIMER' MACRO, TO SUSPEND A JOB AND/OR   *
*        JOB-STEP, BASED UPON THE 07-BYTE PARAMETER VALUE.            *
*                                                                     *
*        SYNTAX EXAMPLE FROM COBOL, PASSING A 60-SECOND INTERVAL:     *
*                                                                     *
*        03  WS-INTERVAL            PIC 9(07).                        *
*        03  WS-SNOOZER             PIC X(08) VALUE 'SNOOZER'.        *
*                                                                     *
*        MOVE 6000                  TO WS-INTERVAL.                   *
*                                                                     *
*        CALL WS-SNOOZER            USING WS-INTERVAL.                *
*                                                                     *
*        THE RETURN-CODE SPECIAL-REGISTER CAN BE CHECKED FOR SUCCESS  *
*        OR FAILURE, WITH 16=GETMAIN ERROR AND 08=INVALID INTERVAL.   *
*                                                                     *
*        THERE IS CODE TO PREVENT THIS SUB-PROGRAM FROM BEING INVOKED *
*        FROM CICS. IF THE RUN-ENVIRONMENT IS DETERMINED TO BE CICS,  *
*        THE RETURN-CODE SPECIAL-REGISTER WILL EQUAL 4095.            *
*                                                                     *
*        OF COURSE, A RETURN-CODE VALUE OF ZERO INDICATES SUCCESS.    *
*                                                                     *
*        NOTE THAT LABEL 'MAXINTVL' IS SET TO A SITE-SPECIFIC VALUE.  *
*                                                                     *
*        CURRENTLY, IT IS SET TO 300 SECONDS (5 MINUTES) AND SHOULD   *
*        BE ADJUSTED ACCORDINGLY.                                     *
*                                                                     *
*---------------------------------------------------------------------*
***********************************************************************
         USING *,R12               INFORM ASSEMBLER
         SAVE  (14,12)             SAVE CALLERS REGISTERS
         LA    R12,0(,R15)         R12 IS OUR BASE-REGISTER
         B     BEGNEXEC            BEGIN EXECUTION
         YREGS                     MVS REGISTER-MACRO
SNOOZER  AMODE 31
SNOOZER  RMODE ANY
MAXINTVL DC    F'30000'            MAX-INTERVAL FOR 'STIMER'
TWNTY4HR DC    F'8640000'          24-HOUR MAX-INTERVAL
EYECTCHR DS    0CL48               PROGRAM EYECATCHER
         DC    PL2'407'
         DC    CL10'EYECATCHER'
         DC    PL1'7'
         DC    CL6' ===>'
PROGNAME DC    CL8'SNOOZER'
         DC    CL2','
ASMBLYDT DC    CL8'&SYSDATC'       FMT=CCYYMMDD
         DC    CL2','
ASMBLYTM DC    CL9'&SYSTIME..00 '  FMT=HHMM00 (BYTE-09 IS BLANK)
TRANSTBL DS    0CL256              INTERVAL VALIDATION-TABLE
         DC    CL256' '            INITIALIZE TO SPACES
         ORG   TRANSTBL+X'F0'      POINT TO NUMERICS-OFFSET
         DC    XL10'00'            ENSURE X'00'S FOR 0-9
         ORG   TRANSTBL+L'TRANSTBL RESET LOCATION COUNTER
         CNOP  0,4                 ENSURE ALIGNMENT
BEGNEXEC EQU   *
         DFHAFCD TYPE=LOCATE       CHECK RUN-ENVIRONMENT
         LTR   R15,R15             BATCH ENVIRONMENT?
         BZ    ADDRPLST            YES, ADDRESS PARM-LIST
         CLC   0(3,R15),=C'AFC'    BATCH ENVIRONMENT?
         LA    R15,4095            LOAD WITH F'4095'
         BE    GOBACK              NO, RETURN WITH F'4095'
ADDRPLST EQU   *
         LR    R9,R1               LOAD R1 CONTENTS
         LA    R9,0(,R9)           ENSURE 'CLEAN' ADDRESS
         LA    R0,STGAREAL         LOAD DYNAMIC-STG LGTH
         GETMAIN RC LV=(0),LOC=ANY REQUEST FOR DYNAMIC-STG
         LTR   R15,R15             ACQUIRED SUCCESSFULLY?
         BNZ   GOBACK              NO, RETURN WITH ERROR
         LA    R11,0(,R1)          DYNAMIC-STG BASE-REGISTER
         USING STGDSECT,R11        INFORM ASSEMBLER
         XC    STGAREA(STGAREAL),STGAREA
         LA    R15,REGSAVEA        CHAIN SAVEAREAS
         ST    R13,4(,R15)         STORE CALLER'S 'R13'
         ST    R15,8(,R13)         STORE OUR 'RSA' ADDRESS
         LR    R13,R15             POINT TO OUR 'RSA'
         MVI   RETCODE+1,X'08'     SET TO H'8'
         TRT   0(7,R9),TRANSTBL    VALID NUMERICS?
         BNZ   RTN2CLLR            NO, RETURN TO THE CALLER
         PACK  DWORD,0(7,R9)       PACK AS P'00000000SSSSSTH'
         CVB   R7,DWORD            MAKE IT BINARY
         LTR   R7,R7               PARAMETER ZERO?
         BZ    RTN2CLLR            YES, RETURN TO THE CALLER
         C     R7,TWNTY4HR         PARAMETER EXCEEDS 24-HOURS?
         BH    RTN2CLLR            YES, RETURN TO THE CALLER
         C     R7,MAXINTVL         PARAMETER EXCEEDS MAX-INTERVAL?
         BH    RTN2CLLR            YES, RETURN TO THE CALLER
         XC    DWORD,DWORD         ENSURE X'00'S
         ST    R7,DWORD            POPULATE 'STIMER' INTERVAL
         STIMER WAIT,BINTVL=DWORD  ISSUE 'STIMER'
         MVI   RETCODE+1,X'00'     RESET TO H'0'
RTN2CLLR EQU   *
         LA    R15,REGSAVEA        POINT TO OUR 'RSA'
         L     R13,4(,R15)         RESTORE CALLER'S R13
         LH    R9,RETCODE          SAVE RETURN-CODE
         LA    R0,STGAREAL         LOAD DYNAMIC STG-LGTH
         FREEMAIN RU,LV=(0),A=(11) FREE DYNAMIC-STG
         LR    R15,R9              OVERRIDE 'FREEMAIN' R15
GOBACK   EQU   *
         RETURN (14,12),RC=(15)    RESTORE REGISTERS AND RETURN
         LTORG ,                   LITERAL-ORG
STGDSECT DSECT                     DYNAMIC-STG DSECT (R11)
STGAREA  EQU   *                   BEGIN DYNAMIC-STG
DWORD    DS    D                   ALIGNED DBLWORD-WORKAREA
RETCODE  DS    H                   RETURN-CODE ALIGNED-HWORD (R15)
REGSAVEA DS    XL72                18-WORD REGISTER-SAVEAREA
STGAREAL EQU   *-STGAREA           DYNAMIC-STG TOTAL-LGTH
         END   ,                   END 'SNOOZER'


don't know if you can implement it in an IMS environment.
_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
acevedo
Beginner


Joined: 03 Dec 2002
Posts: 127
Topics: 0
Location: Europe

PostPosted: Tue Jan 23, 2007 5:31 am    Post subject: Reply with quote

vikaspaniker79 wrote:
Here i am asking for USAGE of SLEEP in the cobol program.


Code:
 
  WORKING-STORAGE SECTION.
      01 Variables.
         05 W-SEGUNDOS              PIC S9(8) COMP  VALUE +10.
   
      01 Constantes.
         05 C-ILBOWAT0                PIC X(08)           VALUE 'ILBOWAT0'.

  PROCEDURE DIVISION.
          CALL C-ILBOWAT0 USING W-SECONDS     
Back to top
View user's profile Send private message
dbzTHEdinosauer
Supermod


Joined: 20 Oct 2006
Posts: 1411
Topics: 26
Location: germany

PostPosted: Tue Jan 23, 2007 5:45 am    Post subject: Reply with quote

and here is another assembler module that can be called which will invoke the 'sleep' macro.
Code:
DFA002   TITLE 'FUER EINE VORGEGEBENE ZEIT(SEC) SCHLAFEN LEGEN'         00001004
         SPACE 3                                                        00002000
         PRINT GEN                                                      00002100
*********************************************************               00002206
* PROGRAM NAME: DFA002                                                  00002306
* ERSTERSTELLER     : G}NTER NAUHEIMER
*                                                                       00002506
* ZWECK             :                                                   00002606
*     DEN COBOLPROGRAMMEN SOLL DIE M

_________________
Dick Brenholtz
American living in Varel, Germany
Back to top
View user's profile Send private message
vikaspaniker79
Beginner


Joined: 01 Aug 2005
Posts: 12
Topics: 4
Location: India

PostPosted: Tue Jan 23, 2007 7:01 pm    Post subject: Reply with quote

Thanks Dick and Kolusu...But i am know to options of assembler routines, "ILBOWAT0" and JCL driven delays. Here i am specifically looking if SLEEP can be used in a cobol-IMS program. I am aware of SLEEP calls on a UNIX platform. But just wondering if it can be called from a cobol-IMS program on Z/OS platform.
Appreciate your time on this.
_________________
Cheers,
Vikas
Back to top
View user's profile Send private message Yahoo Messenger
semigeezer
Supermod


Joined: 03 Jan 2003
Posts: 1014
Topics: 13
Location: Atlantis

PostPosted: Tue Jan 23, 2007 11:41 pm    Post subject: Reply with quote

What SLEEP are you referring to? There is not a SLEEP verb in COBOL (I assume, or someone would have pointed it out). Do you mean calling the actual sleep (lower case) command in USS? That seems like a lot of overhead to call something that literally does nothing (especially to save system resources) and probably just calls STIMER anyway, but I suppose you could call BPXBATCH with a parameter the same way you'd do it from JCL.
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Application Programming All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group