Compaq COBOL AAQ2G1FTK User Manual

Page 265

Advertising
background image

Sharing Files and Locking Records

8.3 Ensuring Successful File Sharing

File Status 91 indicates that a previous access stream has denied access to the
file. That previous access stream opened the file with locking attributes which
conflict with the OPEN statement of the subsequent stream.

You can obtain the values that apply to file-sharing exceptions (or to successful
file-sharing operations), as shown in Example 8–2.

Example 8–2 Program Segment for File Status Values

FILE-CONTROL.

SELECT FILE-NAME ASSIGN TO "fshare.dat"

FILE STATUS IS FILE-STAT.

WORKING-STORAGE SECTION.
01

FILE-STAT PIC XX.
88 FILE-OPENED VALUES "00", "05", "07".
88 FILE-LOCKED VALUE

"91".

01

RETRY-COUNT

PIC 9(2).

01

MAX-RETRY

PIC 9)2)

VALUE 10.

.
.
.

PROCEDURE DIVISION.
DECLARATIVES.
FILE-USE SECTION.

USE AFTER STANDARD EXCEPTION PROCEDURE ON FILE-NAME.

FILE-ERR.
* need declaratives to trap condition, but let main code process it

IF FILE-LOCKED

CONTINUE

ELSE
.
.
.
END-IF.

END DECLARATIVES.

.
.
.

OPEN-FILES.

OPEN I-O FILE-NAME.
IF NOT FILE-OPENED

PERFORM CHECK-OPEN.

.
.
.

CHECK-OPEN.

IF FILE-LOCKED

MOVE 1 to RETRY-COUNT
PERFORM RETRY-OPEN UNTIL FILE-OPENED OR

RETRY-COUNT > MAX-RETRY

IF FILE-LOCKED AND RETRY-COUNT > MAX-RETRY

DISPLAY "File busy...please try again later"
STOP RUN

END-IF

END-IF.

(continued on next page)

Sharing Files and Locking Records 8–13

Advertising