Hitachi

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


4.1.5 オフライン中のDAMファイルのアクセス(オフラインの業務をするUAPからの操作)

バッチ環境ではDAMファイルの内容を出力できます。オフラインでオープンした物理ファイルは,処理を終了したら必ずクローズさせてください。なお,オフラインで使用する関数は,オンライン(SUP,SPP,MHP)では使用できません。使用した場合の動作は保証できません。

〈この項の構成〉

(1) DAMファイルにアクセスするときの名称

物理ファイルを,割り当てたときに設定した物理ファイル名を設定したdc_dam_iopen関数【CBLDCDMB('OPEN')】でオープンします。物理ファイルをオープンしたときにファイル記述子がリターンされます。ファイル記述子は,オープンしてからクローズするまでの処理で使うので,UAP内で保持しておいてください。

オープン以降の処理(ブロックの入力,出力)は,このファイル記述子を関数に設定してアクセスします。物理ファイルのクローズもファイル記述子を設定したdc_dam_iclose関数【CBLDCDMB('CLOS')】でクローズします。

(2) ブロックの入力と出力

dc_dam_iopen関数でオープンした物理ファイルのブロックを入出力するときは,次に示す2種類の方法があります。

複数ブロックを一括入出力する指定は,ファイルの先頭から順番に入出力する場合だけ有効です。

(3) 複数ブロックの一括入出力

物理ファイルを割り当てるときとオープンするときに,入出力する単位としてブロック数を指定できます。

(4) ブロックの初期作成と再作成

入力したブロックを物理ファイルに出力するときに,出力するブロック以降にある残りの領域を,ヌル文字で埋めるかどうかを設定できます。出力するブロック以降の残りの領域をヌル文字で埋めるときはINITIALIZEを設定します。ヌル文字でクリアしないときは,OVERWRITEを設定します。OVERWRITEを設定した場合には,任意のブロックの入出力ができます。このとき,出力したブロック以降の領域は更新されないでそのまま残ります。

残りのブロックをヌル文字で埋めるかどうかは,dc_dam_iopen関数の引数で指定します。この指定は,dc_dam_put関数でブロックを出力してdc_dam_iclose関数でクローズしたときに有効です。dc_dam_iclose関数を呼び出さないでUAPを終了した場合は,残りのブロックをヌル文字で埋めません。ヌル文字で埋める場合は,必ずdc_dam_iclose関数を呼び出してください。

オフライン中のDAMファイルのアクセス手順を次の図に示します。

図4‒3 オフライン時のDAMファイルのアクセス手順

[図データ]