Previous Topic: Batch RRS Transaction Boundaries and Application Design ConsiderationsNext Topic: RRS Support for Online Applications


Example of a COBOL Batch Program

The following extracts from a COBOL program show how to invoke the RRS Commit_UR and Backout_UR services. The COBOL program is a subroutine that is called to perform a certain action as defined in ACTION-CD. Only the CA IDMS task level and RRS actions are shown.

      *RETRIEVAL
      *NO-ACTIVITY-LOG
      *DMLIST
       IDENTIFICATION DIVISION.
       PROGRAM-ID.           MBINDSUB.
      *******************************************************************
      *  SUBSCHEMA CONTROL IS PASSED FROM MAINLINE PROGRAM.
      *******************************************************************
       ENVIRONMENT DIVISION.
       IDMS-CONTROL SECTION.
       PROTOCOL.                MODE IS BATCH DEBUG
                                IDMS-RECORDS MANUAL.
       DATA DIVISION.
       SCHEMA SECTION.
           DB EMPSS01 WITHIN EMPSCHM VERSION 100.
       WORKING-STORAGE SECTION.
       01  WK-DATA.
           02  I            PIC S9(4) COMP.
       01  COPY IDMS SUBSCHEMA-NAMES.
       01  COPY IDMS SUBSCHEMA-RECORDS.
       LINKAGE SECTION.
       01  DB-PARM.
           02  DBNAME-IN    PIC X(8).
           02  FILLER       PIC X.
           02  DBNODE-IN    PIC X(8).
           02  FILLER       PIC X.
           02  ACTION-CD    PIC X.
               88    ACT-BIND   VALUE 'R'.
               88    ACT-BINDU  VALUE 'U'.
               88    ACT-DML1   VALUE '1'.
               88    ACT-DML2   VALUE '2'.
               88    ACT-DML3   VALUE '3'.
               88    ACT-UPDT   VALUE '4'.
               88    ACT-FIN    VALUE 'F'.
               88    ACT-TCOM   VALUE 'C'.
               88    ACT-RCOM   VALUE 'D'.
               88    ACT-TFIN   VALUE 'X'.
               88    ACT-TBAK   VALUE 'B'.
               88    ACT-RBAK   VALUE 'Y'.
           02  RETURN-CD    PIC S9(8) COMP.
           ...
01  COPY IDMS SUBSCHEMA-CTRL.
       PROCEDURE DIVISION USING DB-PARM, SUBSCHEMA-CTRL.
       MAINLN SECTION.
           MOVE 0 TO RETURN-CD.
           ...
           IF ACT-BINDU
              PERFORM BIND-IT
           ELSE IF ACT-RCOM
              PERFORM RCOM-IT
           ELSE IF ACT-TFIN
              PERFORM TFIN-IT
           ELSE IF ACT-TBAK
              PERFORM TBAK-IT
           ELSE IF ACT-RBAK
              PERFORM RBAK-IT
           ELSE IF ...
           ...
           ELSE
              MOVE 32 TO RETURN-CD.
           GOBACK.
       BIND-IT SECTION.
           MOVE SPACES TO SUBSCHEMA-CTRL.
           MOVE 'MBINDSUB' TO PROGRAM-NAME.
           BIND RUN-UNIT DBNODE DBNODE-IN
                         DBNAME DBNAME-IN.
           READY USAGE-MODE UPDATE.
           PERFORM CHECK-STAT.
           BIND EMPLOYEE.
           PERFORM CHECK-STAT.
           BIND DEPARTMENT.
           PERFORM CHECK-STAT.
       ...
       TCOM-IT SECTION.
           COMMIT TASK.
           PERFORM CHECK-STAT.
       RCOM-IT SECTION.
      *  Issue RRS Commit_UR
           CALL 'SRRCMIT' USING RETURN-CD.
           PERFORM CHECK-RRS.
       TFIN-IT SECTION.
           FINISH TASK.
           PERFORM CHECK-STAT.
       RBAK-IT SECTION.
      *  Issue RRS Backout_UR
           CALL 'SRRBACK' USING RETURN-CD.
           PERFORM CHECK-RRS.
       ...