DAMファイルの更新中に,ほかのUAPからの更新処理が割り込むと,一つの論理ファイルに二つの処理が同時に反映されて,ファイルの内容に矛盾が生じてしまいます。このようなことを防ぐため,DAMファイルにアクセスする関数で排他制御をします。排他を制御することで,複数のUAPからアクセスされるDAMファイルでも,データの整合性を保証できます。
DAMファイルアクセス時の排他の条件を排他制御モードといいます。排他制御モードには,次の2種類があります。
オンライン中のDAMファイルへのアクセスに対する排他の指定単位には,次の2種類があります。
ブロック単位に排他制御をします。ブロックを参照するときは共用モードの排他が掛かり,ブロック更新,またはブロック出力時には排他モードの排他が掛かります。参照目的での排他指定は,オプションの指定で排他をしない(ほかのUAPに参照/更新を許す)こともできます。確保された排他の指定は,DAMファイルへの処理を指定したトランザクション処理が正常終了したときに解除されます。
論理ファイル単位で排他制御します。論理ファイル全体に対して,ファイルのオープンからトランザクション処理の正常終了まで排他が掛かります。
ファイル排他を指定できるのは次の場合です。
次に示す場合は,ファイル排他を指定できません。ブロック排他で排他制御をしてください。
オンラインで使っているDAMファイルは,オフラインでアクセスできません。オンラインで使っているDAMファイルにオフラインのアクセスをする場合は,damhold,damrmコマンドで,いったんオンラインから削除してからオフラインでアクセスしてください。その後,damaddコマンドでオンラインに復帰させてください。
オフライン時でも,異なるUAPが同じDAMファイルに同時にはアクセスできません。DAMファイルをオープンしたUAPのプロセスが,クローズするまでそのDAMファイルを占有します。