分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス COBOL言語編

[目次][索引][前へ][次へ]

CBLDCDMB('OPEN')

名称

物理ファイルのオープン

形式

PROCEDURE DIVISIONの指定

 
CALL 'CBLDCDMB' USING 一意名1 一意名2
 

DATA DIVISIONの指定

 
01 一意名1.
   02 データ名A  PIC X(8) VALUE 'DCDAMINT'.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(1).
   02 データ名C  PIC X(63).
   02 FILLER    PIC X(3).
   02 FILLER    PIC S9(9) COMP.
   02 データ名E  PIC S9(9) COMP.
   02 FILLER    PIC S9(9) COMP.
   02 データ名H  PIC S9(9) COMP.
01 一意名2.
   02 データ名F  PIC X(4) VALUE 'OPEN'.
   02 データ名I  PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 FILLER    PIC X(1).
   02 データ名Z  PIC S9(9) COMP VALUE ZERO.
 

機能

OpenTP1ファイルシステム上に作成した物理ファイルをオープンします。ただし,オンラインで使っている物理ファイルはオープンできません。

UAPで値を設定するデータ領域

●データ名A

DAMファイルとのインタフェースコードを「VALUE 'DCDAMINT'」と設定します。

●データ名C

物理ファイル名を(スペシャルファイル名+14文字)以内のパス名で設定します。63文字に満たない場合は,後ろを空白で埋めてください。

●データ名H

入出力の単位となる,一括処理するブロック数を設定します。

設定できる範囲は0〜2147483647です。0を指定した場合は,10になります。

●データ名F

物理ファイルのオープンを示す要求コードを「VALUE 'OPEN'」と設定します。

●データ名I

作成出力要求か再作成(オーバライト)出力要求かを設定します。ここに設定した値で,ファイルのクローズ時に,残りの領域を空白ブロックで埋めるかどうかが決まります。ここに設定した値は,CBLDCDMB('PUT ')を呼び出したあとで,CBLDCDMB('CLOS')を呼び出して正常に終了したときに有効になります。

CBLDCDMB('PUT ')を呼び出していても,CBLDCDMB('CLOS')を呼び出さないでUAPの処理を終了した場合は,ヌル文字のブロックで埋めません。

VALUE 'I'…作成出力要求を設定

VALUE 'O'…再作成出力要求を設定

●データ名Z

0を設定します。

OpenTP1から値が返されるデータ領域

●データ名B

ステータスコードが,5けたの数字で返されます。

●データ名E

オープン処理で返されるファイル記述子が返されます。

ステータスコード

ステータスコード 意味
00000 ファイル記述子がデータ名Eに正常に設定されました。
01607 メモリが不足しました。
01608 データ名Cに設定した物理ファイルはオープン済みです。
01611 データ名Iに設定した値が間違っています。
01614 物理ファイル名が間違っています。
01615 一括処理ブロック数の値が間違っています。
01616 データ名Cに設定した物理ファイルは,DAMファイルではありません。
01618 OpenTP1ファイルシステムのバージョンが,作成時と割り当て時とで一致していません。
01619 データ名Cに設定した物理ファイルが存在しません。
01620 入出力エラーが起こりました。
01628 スペシャルファイルに対するアクセス権がありません。
01632 物理ファイル名がキャラクタ型スペシャルファイルではありません。または設定したスペシャルファイルに対応する装置がありません。
01633 データ名Cに設定したファイルがOpenTP1ファイルシステムとして初期化されていません。
01635 プロセスでオープンできる物理ファイル数の最大値を超えた値を設定しています。
01636 データ名Cに設定した物理ファイルは現在オンラインで使っています。またはほかのプロセスで使っています。
01638 物理ファイルに対するアクセス権がありません。
01639 物理ファイルの破壊を検出しました。
01690 インタフェースコード(データ名A)が間違っています。
01691 要求コード(データ名F)が間違っています。