Hitachi

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


4.1.3 DAMファイルへのアクセスの概要

DAMファイルにアクセスする方法について説明します。DAMファイルには,次の2種類があります。

以降,回復対象のDAMファイル固有の機能については「回復対象のDAMファイルの場合」という断りを入れて説明します。回復対象外のDAMファイルについては,「4.1.8 回復対象外のDAMファイルへのアクセス」を参照してください。

〈この項の構成〉

(1) DAMファイルへのアクセス手順の概要

UAPからDAMファイルを使う場合は,次の手順でアクセスします。

  1. ファイルをオープンします。

  2. 次に示すうち,どれか一つの処理をします。

    データの入力(参照),データの入力と更新,データの出力

  3. ファイルをクローズします。

(2) DAMファイルをオープンする場合の注意

DAMファイルをオープンする関数は,DAMファイルを使うUAPごとに呼び出します。同じグローバルトランザクションに属していても,DAMファイルのオープンはUAPごとに呼び出してください。

(3) DAMファイルからブロックを入力する場合の注意

DAMファイルのブロックは,参照目的の入力のときにかぎり,排他を指定しないで入力できます。ただし,排他を指定しないでブロックを入力した場合,入力処理中にほかのUAPから該当するブロックが更新されるため,最新のブロックの内容を入力できないことがあります。

(4) トランザクションの範囲外からのDAMファイルへのアクセス(回復対象のDAMファイルの場合)

トランザクションの範囲外(トランザクションを開始する前,および同期点取得後)の処理からは,ブロックの入力だけできます。その場合は,参照目的のアクセスだけで,排他を指定できません。

(5) DAMファイルへアクセスするトランザクションの範囲(回復対象のDAMファイルの場合)

DAMファイルへアクセスするときは,トランザクションブランチ単位で排他制御します。また,グローバルトランザクション単位でも排他制御できます。DAMファイルの排他については,「4.1.7 DAMファイルの排他制御」を参照してください。

(6) 2GBの容量を超えるDAMファイルをアクセスする場合の注意

DAMの入出力関数(dc_dam_get,dc_dam_put,dc_dam_read,dc_dam_rewrite,dc_dam_write,CBLDCDMB('GET'),CBLDCDMB('PUT'),CBLDCDAM('READ'),CBLDCDAM('REWT'),CBLDCDAM('WRIT'))で2GBを超えるDAMファイルデータを一度に入出力できません。2GBを超えるDAMファイルデータを一度に入出力しようとした場合は,DCDAMER_BUFER,または01604でエラーリターンします。