Sample calling sequence

Figure 56 illustrates a sample calling sequence for a program that will access CICSPlex® SM workload management facilities. It is not intended to be used as a sample program and is, therefore, not complete in every detail.

Figure 56. A sample calling sequence for CICSPlex SM workload management facilities
*---------------------------------------------------------------------*
         DFHEISTG  ,                   Define Workarea
WRK_WTRA       DS   CL(WTRA_LENGTH)
               DS   0D
WRK_UOWCOMM    DS   0C
WRK_UOW_RESP   DS   F
WRK_UOWCOMM_L  EQU  *-WRK_UOWCOMM
         COPY  EYURWTRA                Include DSECT to map WTRA
SRVPGM   DFHEIENT EIBREG=R11,DATAREG=R13,CODEREG=R12
 
*---------------------------------------------------------------------*
* Initialize the WTRA COMMAREA.                                       *
*---------------------------------------------------------------------*
         LA    R8,WRK_WTRA             --> WTRA
         USING EYURWTRA,R8             *** USING WTRA ***
         MVC   WTRA_SLENGTH,=AL2(WTRA_LENGTH)
                                       Set length of block.
         MVI   WTRA_ARROW,C'>'         Set arrow.
         MVC   WTRA_NAME,=C'EYURWTRA'  Set the name.
         MVI   WTRA_BLANK,C' '         Set blank delimit.
         MVC   WTRA_PGMNAME,=CL8'SRVPGM  '
                                       Set program name.
         MVC   WTRA_TERMID,=CL4'TRM1'  Set TermID.
         MVC   WTRA_USERID,=CL8'USR1'  Set USERID.
         MVC   WTRA_LUNAME(8),=CL8'.NET1'
                                       Set LUNAME.
         MVC   WTRA_TRANID,=CL8'TRN1'  Set TRANID.
         MVC   WTRA_SYSID,=C'SYS1'     Set SYSID.
         MVC   WTRA_APPLID,=C'APPLID1' Set Applid.
         MVI   WTRA_FUNC,WTRA_FUNCSEL  Set the Route Select Function.
         MVI   WTRA_DYRTYPE,WTRA_DYRTYPE_DYN
*---------------------------------------------------------------------*
* Invoke the WLM MAS Agent for Route Select.                          *
*---------------------------------------------------------------------*
ROUTE_SELECT   DS  0H
         BAS   R5,LINK_WLM             Go do it.
         CLC   WTRA_RESPONSE,=F'0'     Call go OK?
         BNE   CHECK_OPTER             ..no.
         BAS   R5,START_UOW            Go Start the UOW.
         LTR   R15,R15                 Work Completed?
         BZ    ROUTE_TERM              ..yes.
         BP    ROUTE_ABND              UOW gave non zero return code.
         C     R15,=F'-4'              SYSID error?
         BNE   ROUTE_ABND              ..no.
 
*---------------------------------------------------------------------*
* Invoke the WLM MAS Agent for Route Error.                           *
*---------------------------------------------------------------------*
ROUTE_ERROR    DS  0H
         MVI   WTRA_FUNC,WTRA_FUNCERR  Set the Termination Function.
         MVI   WTRA_ERR,WTRA_ERROUT    Say out of service.
         B     ROUTE_SELECT            Go Get another system.
 
*---------------------------------------------------------------------*
* Invoke the WLM MAS Agent for Route Abend.                           *
*---------------------------------------------------------------------*
ROUTE_ABND     DS  0H
         MVI   WTRA_FUNC,WTRA_FUNCABD  Set the Abend function.
         BAS   R5,LINK_WLM             Go terminate.
         CLC   WTRA_RESPONSE,=F'0'     OK?
         BE    EXIT_ABD                ..yes.
CHECK_OPTER    DS  0H
         CLI   WTRA_OPTER,WTRA_CALLYES Call WLM for Term?
         BNE   WLM_CALLERR             ..no.
 
*---------------------------------------------------------------------*
* Invoke the WLM MAS Agent for Route Termination                      *
*---------------------------------------------------------------------*
ROUTE_TERM     DS  0H
         MVI   WTRA_FUNC,WTRA_FUNCTRM  Set the Termination Function.
         MVC   WTRA_NEXTTRAN,=CL8'TRN2'                                X
                                       Set the next TRANID.
         BAS   R5,LINK_WLM             Go terminate.
         CLC   WTRA_RESPONSE,=F'0'     OK?
         BE    EXIT_TERMOK             ..yes. .
 
*---------------------------------------------------------------------*
* The WLM MAS AGENT returned an 8 in WTRA_RESPONSE                    *
*---------------------------------------------------------------------*
WLM_CALLERR    DS  0H
 
*---------------------------------------------------------------------*
* Process completed successfully                                      *
*---------------------------------------------------------------------*
EXIT_TERMOK    DS  0H
 
*---------------------------------------------------------------------*
* Route Abend Call returned a 0                                       *
*---------------------------------------------------------------------*
EXIT_ABD       DS  0H
EXIT           DS  0H
         EXEC  CICS RETURN
*---------------------------------------------------------------------*
* LINK_WLM      : Link to the WLM MAS AGENT                           *
*---------------------------------------------------------------------*
LINK_WLM       DS  0H
         EXEC  CICS LINK PROGRAM(EYU9XLOP)                             X
               COMMAREA(EYURWTRA) LENGTH(=AL2(WTRA_LENGTH))            X
         BR    R5                      Exit routine.
 
*---------------------------------------------------------------------*
* START_UOW     : Start the Unit Work.                                *
*---------------------------------------------------------------------*
START_UOW      DS  0H
         EXEC  CICS LINK PROGRAM(UOWPGM)                               X
               COMMAREA(WRK_UOWCOMM) LENGTH(=AL2(WRK_UOWCOMM_L))       X
               SYSID(WTRA_SYSID)                                       X
               RESP(WRK_EIBRESP)
         CLC   WRK_EIBRESP,DFHRESP(NORMAL)                             X
                                       Did call go ok?
         BE    START_UOWL              ..yes.
         L     R15,=F'-4'              Assume SYSIDERR
         CLC   WRK_EIBRESP,DFHRESP(SYSIDERR)                           X
                                       Is there one?
         BE    START_UOWX              ..yes.
         L     R15,=F'-8'              Load Failure code.
         B     START_UOWX              Go exit.
START_UOWL     DS  0H
         L     R15,WORK_UOW_RESP       Load Response Code.
START_UOWX     DS  0H
         BR    R5                      Exit routine.

Related reference
Sample user-replacement modules
[[ Contents Previous Page | Next Page Index ]]