Record and File Locking Availability for COBOL 2.00

PSS ID Number: Q10122
Article last modified on 11-16-1992

2.00
MS-DOS

Question:
Does Microsoft COBOL Compiler Version 2.00 use buffers for its I/O? If
so, how do I handle a case where a record that I wish to access is
unlocked (i.e., not currently accessed), but still is in someone's
buffer? This problem occurs if the records being read or written are
very small.

Response:
COBOL Version 2.00 does not support record or file locking at run
time under MS-DOS Version 2.x. Under MS-DOS Versions 3.10 and later,
COBOL supports exclusive file locking for Sequential and Line
Sequential files, and file and record locking for Relative files.
For ISAM files, the initial release of COBOL Version 2.00 supports
only exclusive file locking, not record locking; files opened for
output or I/O are locked.
COBOL keeps at least 512 bytes free in buffers. If no locking is
employed and more than one person tries to update the file, problems
can occur. Currently, there is no solution to this problem under
MS-DOS Version 2.00.
When file locking is used, only one person can update the file. Others
must wait until the file is released. If record locking is available
and is used, any record that is locked is unavailable to others. When
the lock is released, it is written to disk and made available.
In MS-DOS Version 3.10 environments, files are locked by default.

Copyright Microsoft Corporation 1992.