Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


4.1.7 DAMファイルの排他制御

DAMファイルの更新中に,ほかのUAPからの更新処理が割り込むと,一つの論理ファイルに二つの処理が同時に反映されて,ファイルの内容に矛盾が生じてしまいます。このようなことを防ぐため,DAMファイルにアクセスする関数で排他制御をします。排他を制御することで,複数のUAPからアクセスされるDAMファイルでも,データの整合性を保証できます。

〈この項の構成〉

(1) 排他制御モード

DAMファイルアクセス時の排他の条件を排他制御モードといいます。排他制御モードには,次の2種類があります。

参照目的の排他(共用モード PR Protected Retrieve)

UAPは排他指定したファイルの参照だけできます。ほかのトランザクションには,参照だけを許可します。

更新目的の排他(排他モード EX EXclusive)

UAPは排他指定したファイルの参照,更新ができます。ほかのトランザクションには,参照,更新を禁止します。

(2) 排他の指定単位(回復対象のDAMファイルの場合)

オンライン中のDAMファイルへのアクセスに対する排他の指定単位には,次の2種類があります。

(a) ブロック排他

ブロック単位に排他制御をします。ブロックを参照するときは共用モードの排他が掛かり,ブロック更新,またはブロック出力時には排他モードの排他が掛かります。参照目的での排他指定は,オプションの指定で排他をしない(ほかのUAPに参照/更新を許す)こともできます。確保された排他の指定は,DAMファイルへの処理を指定したトランザクション処理が正常終了したときに解除されます。

(b) ファイル排他

論理ファイル単位で排他制御します。論理ファイル全体に対して,ファイルのオープンからトランザクション処理の正常終了まで排他が掛かります。

ファイル排他を指定できるのは次の場合です。

  • トランザクションブランチ単位で排他制御する指定で,トランザクションの範囲内で論理ファイルをオープンした場合

次に示す場合は,ファイル排他を指定できません。ブロック排他で排他制御をしてください。

  • トランザクションの範囲外で論理ファイルをオープンした場合

  • グローバルトランザクション単位で排他制御する指定をした場合

(3) 資源の排他解除待ちの設定(回復対象のDAMファイルの場合)

(4) オンライン時とオフライン時の排他

オンラインで使っているDAMファイルは,オフラインでアクセスできません。オンラインで使っているDAMファイルにオフラインのアクセスをする場合は,damhold,damrmコマンドで,いったんオンラインから削除してからオフラインでアクセスしてください。その後,damaddコマンドでオンラインに復帰させてください。

オフライン時でも,異なるUAPが同じDAMファイルに同時にはアクセスできません。DAMファイルをオープンしたUAPのプロセスが,クローズするまでそのDAMファイルを占有します。