VSAM - Example: checking VSAM status codes - www.cadcobol.com.br



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

Example: checking VSAM status codes

Enterprise COBOL for z/OS, Version 4.2, Programming Guide


The following example reads an indexed file (starting at the fifth record), checks the file status key after each input or output request, and displays the VSAM status codes when the file status key is not zero.

This example also illustrates how output from this program might look if the file being processed contained six records.


IDENTIFICATION DIVISION
PROGRAM-ID. EXAMPLE.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT VSAMFILE ASSIGN TO VSAMFILE
           ORGANIZATION IS INDEXED
           ACCESS DYNAMIC
           RECORD KEY IS VSAMFILE-KEY
           FILE STATUS IS FS-CODE VSAM-CODE.

DATA DIVISION.
FILE SECTION.
FD  VSAMFILE
    RECORD  30.
01  VSAMFILE-REC.
    10 VSAMFILE-KEY             PIC X(6).
    10 FILLER                   PIC X(24).

WORKING-STORAGE SECTION.
01  RETURN-STATUS.
    05 FS-CODE                  PIC XX.
    05 VSAM-CODE.
       10 VSAM-RETURN-CODE      PIC S9(2) Usage Binary.
       10 VSAM-COMPONENT-CODE   PIC S9(1) Usage Binary.
       10 VSAM-REASON-CODE      PIC S9(3) Usage Binary.

PROCEDURE DIVISION.
    OPEN  INPUT VSAMFILE.
    DISPLAY "OPEN INPUT VSAMFILE FS-CODE: " FS-CODE.

    IF  FS-CODE NOT = "00"
        PERFORM VSAM-CODE-DISPLAY
        STOP RUN
    END-IF.

    MOVE "000005" TO VSAMFILE-KEY.
    START VSAMFILE KEY IS EQUAL TO VSAMFILE-KEY.
    DISPLAY "START VSAMFILE KEY="  VSAMFILE-KEY
            " FS-CODE: "  FS-CODE.
    IF  FS-CODE NOT = "00"
        PERFORM VSAM-CODE-DISPLAY
    END-IF.

    IF  FS-CODE = "00"
        PERFORM READ-NEXT UNTIL FS-CODE NOT = "00"
    END-IF.

    CLOSE VSAMFILE.
    STOP RUN.

READ-NEXT.
    READ VSAMFILE NEXT.
    DISPLAY "READ NEXT VSAMFILE FS-CODE: " FS-CODE.
    IF  FS-CODE NOT = "00"
        PERFORM VSAM-CODE-DISPLAY
    END-IF.
    DISPLAY VSAMFILE-REC.

VSAM-CODE-DISPLAY.
    DISPLAY "VSAM-CODE ==>"
            " RETURN: "  VSAM-RETURN-CODE,
            " COMPONENT: "  VSAM-COMPONENT-CODE,
            " REASON: "  VSAM-REASON-CODE.

Below is a sample of the output from the example program that checks VSAM status-code information:


OPEN INPUT VSAMFILE FS-CODE: 00
START VSAMFILE KEY=000005 FS-CODE: 00
READ NEXT VSAMFILE FS-CODE: 00
000005 THIS IS RECORD NUMBER 5
READ NEXT VSAMFILE FS-CODE: 00
000006 THIS IS RECORD NUMBER 6
READ NEXT VSAMFILE FS-CODE: 10
VSAM-CODE ==> RETURN: 08 COMPONENT: 2 REASON: 004


© Copyright IBM Corp.