ISO2002MF 

共有モード

共有モードでは、ファイルを共有してレコードをロックするかどうかを示し、ファイルに関して許可する共有 (または非共有) の程度を指定する。共有モードでは、このファイル結合子が開いている間に他のファイル結合子を介して、共有ファイルに対して実行される操作の種類を指定する。

共有モードの確立に関して、OPEN 文内の SHARING 指定は、ファイル管理記述項内の SHARING 句よりも優先される。OPEN 文に SHARING 指定がない場合、共有モードはファイル管理記述項内の SHARING 句によってすべて決められる。どちらにも指定がない場合には、次の条件のうちの最初に満たされるものによって共有モードが決定する。

共有モードが OPEN 文、ファイル管理記述項内、または上記項目のいずれかのどの手段で決まる場合でも、標準の共有モードに関する規則は同じである。

COBOL のファイル共有機能には、環境内の他のファイル共有機能との相互運用性はない。

共有ファイルはディスク上に存在しなければならない。

OPEN 文を介して共有ファイルへのアクセスを許可する場合、ファイルに現在関連付けられている他のすべてのファイル結合子が、共有モードおよびオープン モードを事前に許可する必要がある。加えて、現在の OPEN 文の共有モードでは、ファイルに現在関連付けられている他のすべてのファイル結合子用のすべての共有モードおよびオープン モードを許可する必要がある。「OPEN 文」トピック、特に「現在は他のファイル結合子によって開かれている利用可能な共有ファイルを開く処理」の表を参照。

共有モードでは、ファイルへのアクセスは次のように制御される。

  1. SHARING WITH NO OTHER モードは、ファイルへの排他的アクセスを指定する。ファイルが現在他のファイル結合子を介して開いている場合、このファイル結合子をファイルに関連付けることはできない。OPEN 文が正常に実行されると、このファイル結合子が閉じる前に、続いて他のファイル結合子を介してファイルを開こうとしても、その要求は失敗する。レコード ロックは無視される。
  2. SHARING WITH READ ONLY モードでは、これ以外のファイル結合子を介したファイルへの同時アクセスは、入力モードに限定される。このファイル結合子を、入力以外のモードで開かれているファイルに関連付けることはできない。OPEN 文が正常に実行されると、そのファイル結合子が閉じる前に、入力以外のモードの他のファイル結合子を通じてそのファイルを引き続き開こうとすると、その要求は失敗する。レコード ロックは効力を有する。
  3. SHARING WITH ALL OTHER モードでは、INPUT、I-O、または EXTEND モードを指定する他のファイル結合子を介して、ファイルに同時アクセスできる。ただし、他の制約があれば適用される。レコード ロックは効力を有する。

複数のアクセス経路が、同じ実行単位または別の実行単位内の、同じ実行時要素内、内包要素内、または別の実行時モジュール内に存在することがある。開く対象のファイルのファイル ロックを保持しているファイル結合子のロケーションにかかわらず、ファイル共有の不整合条件は存在し得る。

ファイル ロックの設定は、入出力文で不可分な処理の一部である。

ファイル結合子用に設定されたファイル ロックおよびすべてのレコード ロックは、そのファイル結合子に対して明示的または暗黙的に実行される CLOSE 文によって解除される。