表 2、3、および 4 は、ファイルを特定のオープン モードで開く際に使用されるデフォルトのロックの種類を示す。デフォルトのロックを変更するには、翻訳群を COBOL にサブミットする時点で AUTOLOCK コンパイラ指令が設定されている必要がある。これらの表では、個々のファイルに対してデフォルトのロックをオーバーライドできるかどうかも示す。これを行うには、ファイルに対する SELECT 句に適切な句を挿入する。「ファイル管理記述項」トピックを参照。
X/Open では、自動ロックでの単一レコード ロック、または手動ロックでの複数レコード ロックのどちらかを使用する X/Open 準拠ソース プログラムを制限している。
表 1. レコード順編成ファイルでのデフォルトのロック
OPEN モード |
指令なし |
AUTOLOCK コンパイラ指令 |
SELECT 文でのオーバーライド |
INPUT |
ロックなし |
ロックなし |
可。ただし排他モードのみ |
I-O |
排他モード |
単一レコードのロック |
可 |
OUTPUT |
排他モード |
排他モード |
不可 |
EXTEND |
排他モード |
ロックなし |
可。ファイルは共有できるが、レコードはロックできない |
表 2. 行順編成ファイルでのデフォルトのロック
OPEN モード |
指令なし |
AUTOLOCK コンパイラ指令 |
SELECT 文でのオーバーライド |
INPUT |
ロックなし |
ロックなし |
不可 |
I-O |
排他モード |
ロックなし |
不可 |
OUTPUT |
排他モード |
排他モード |
不可 |
EXTEND |
排他モード |
ロックなし |
不可 |
表 3. 相対ファイルおよび索引ファイルでのデフォルトのロック
OPEN モード |
指令なし |
AUTOLOCK コンパイラ指令 |
SELECT 文でのオーバーライド |
INPUT |
ロックなし |
ロックなし |
可。ただし排他モードのみ |
I-O |
排他モード |
単一レコードの自動ロック |
可 |
OUTPUT |
排他モード |
排他モード |
不可 |
EXTEND |
排他モード |
排他モード |
不可 |
注:
- 出力用に開いたファイルは、指定したロックのモードにかかわらず排他モードになる。
- 個々のファイルに対してロックの種類を選択するには、デフォルトのロック方式 (表 1、2、および 3 を参照) を使用するか、ファイル管理記述項に LOCK MODE 句を含める (「ファイル管理記述項」セクションを参照)。