実行時システムでは、この COBOL システムのマルチユーザー機能がサポートされている。この機能によりマルチユーザー環境でファイルを共有できるようになり、共有ファイルにアクセスする実行時要素がレコードまたはファイル全体をロックし、データの更新中にそのレコードまたはファイル全体へのアクセスを防ぐことができる。
シングルユーザー環境ではマルチユーザー用の構文は実行時に効果を持たないが、実行時要素をシングルユーザーおよびマルチユーザーの両方の環境で使用できるように作成できる。
ファイルは活性状態または非活性状態のいずれかになる。活性状態のファイルは、1 つ以上の実行単位に対してオープンな状態にある。非活性状態のファイルは、どの実行単位に対してもオープンでない。
活性状態のファイルは、排他モードおよび共有モードのいずれかで開かれる。
排他モードのファイルは、単一の実行単位に対してのみ開かれる。他の実行単位がそのファイルにアクセスしようとすると、「ファイル ロック」エラーが発生し、アクセスは拒否される。排他モードでは、単一の実行単位のみがファイル ロックを保持してそのファイルにアクセスできる。実行単位がファイルを閉じると、ファイルのロックは解除される。
共有モードのファイルは、複数の実行単位が使用できる。各実行単位は、ファイルの使用中にファイル内の 1 つ以上のレコードを一度にロックしてデータを保護できる。これにより、他の実行単位はロックされている個々のレコードのロックを取得できなくなる。ただしロック時以外にファイルへのアクセスが妨げられることはない。ファイルの編成に応じて、ファイルの共有方法が異なる。
ファイル編成ごとの共有方法は以下のとおり。
入力用に開かれたレコード順編成ファイルは、複数の実行単位間で共有できる。ただしファイル内のレコードはロックできない。入出力両用または拡張用に開かれたファイルも複数の実行単位間で共有できる。この場合、各実行単位はそのファイルでレコード ロックを保持できる。出力用に開かれたファイルは、常に排他的なファイル ロックを保持する。
入力用または拡張用に開かれた行順編成ファイルは共有できる。ただしファイル内のレコードはロックできない。出力用に開かれたファイルは、常に排他的なファイル ロックを保持する。
入力モードで開かれたファイルは共有できる。ただしファイル内のレコードはロックできない。入出力両用モードで開かれたファイルも共有できる。ただし出力用または拡張用に開かれたファイルは排他的である。
ファイルへのアクセスを共有する各実行単位は、そのファイル内の単一または複数のレコードをロックできる。ただし、単一の実行単位が同じファイルに対して、単一レコードのロックおよび複数レコードのロックの両方を選択することはできない。