Hitachi

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


CBLDCDMB('CRAT')

〈このページの構成〉

名称

物理ファイルの割り当て

形式

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 データ名D  PIC S9(9) COMP.
   02 データ名E  PIC S9(9) COMP.
   02 データ名G  PIC S9(9) COMP.
   02 データ名H  PIC S9(9) COMP.
01 一意名2.
   02 データ名F  PIC X(4) VALUE 'CRAT'.
   02 データ名I  PIC X(1).
   02 データ名J  PIC X(1).
   02 データ名K  PIC X(1).
   02 FILLER    PIC X(1).
   02 データ名Z  PIC S9(9) COMP VALUE ZERO.

機能

OpenTP1ファイルシステムに物理ファイルを割り当てます。

物理ファイルの大きさは,(ブロック長+8)×(ブロック数+1)になります。

物理ファイルを割り当てたあとには,物理ファイルをオープンする必要はありません。

CBLDCDMB('CRAT')で物理ファイルを割り当てたあとには,次に示すCOBOL-UAP作成用プログラムは呼び出せません。

出力バッファの大きさは(ブロック長+8)×一括処理ブロック数になります。

アクセス権にすべて'N'(アクセス権なし)を設定した場合は,省略時の値を仮定します。

物理ファイルを割り当てるときは,物理ファイル名を設定します。

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

●データ名A

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

●データ名C

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

●データ名D

OpenTP1ファイルシステム上に割り当てるブロックのブロック長を設定します。

32760を超えないセクタ長×n−8(nは正の整数)を満たす値を設定してください。

セクタ長は次のとおりです。

  • キャラクタ型スペシャルファイルの場合:filmkfsコマンドの-sオプション指定値

  • 通常ファイルの場合:512バイト

●データ名G

OpenTP1ファイルシステム上に割り当てるブロック数を設定します。

設定できる範囲は1〜2147483647です。

●データ名H

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

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

●データ名F

物理ファイルの割り当てを示す要求コードを「VALUE 'CRAT'」と設定します。

●データ名I

ファイル所有者のアクセス権を設定します。

VALUE 'N'…アクセス権なし

VALUE 'R'…読み出し権だけあり

VALUE 'W'…書き込み権だけあり

VALUE 'B'…読み出し権と書き込み権の両方あり

●データ名J

ファイル所有者グループのアクセス権を設定します。

VALUE 'N'…アクセス権なし

VALUE 'R'…読み出し権だけあり

VALUE 'W'…書き込み権だけあり

VALUE 'B'…読み出し権と書き込み権の両方あり

●データ名K

ファイル所有者以外のアクセス権を設定します。

VALUE 'N'…アクセス権なし

VALUE 'R'…読み出し権だけあり

VALUE 'W'…書き込み権だけあり

VALUE 'B'…読み出し権と書き込み権の両方あり

●データ名Z

0を設定します。

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

●データ名B

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

●データ名E

ファイル記述子が返されます。

ステータスコード

ステータスコード

意味

00000

ファイル記述子がデータ名Eに正常に設定されました。

01607

メモリが不足しました。

01608

データ名Cに設定した物理ファイルはオープン済みです。

01611

データ名I,データ名J,データ名Kに設定した値が間違っています。

01614

物理ファイル名が間違っています。

01615

一括処理ブロック数の値が間違っています。

01617

すでに同じ物理ファイル名が存在しています。

01618

OpenTP1ファイルシステムのバージョンが作成時と割り当て時で一致していません。

01620

入出力エラーが起こりました。

01628

スペシャルファイルに対するアクセス権はありません。

割り当てようとしたDAMファイルは,セキュリティ機能で保護されています。CBLDCDMB('CRAT')を呼び出したUAPには,アクセス権限がありません。

01630

ブロック長が適当な値ではありません。

01631

ブロック数が適当な値ではありません。

01632

物理ファイル名がキャラクタ型スペシャルファイルではありません。またはこのスペシャルファイルに対応する装置がありません。

01633

指定したOpenTP1ファイルが,OpenTP1ファイルシステムとして初期化されていません。

01634

OpenTP1ファイルシステムとして初期化したときに指定したファイル数以上のOpenTP1ファイル(物理ファイル)を割り当てようとしています。

01635

実行しているプロセスでオープンできるファイル数の最大値を超えた値を設定しています。

01636

データ名Cに設定した物理ファイルは,現在オンラインで使っています。またはほかのプロセスで使っています。

01640

OpenTP1ファイルシステムに,物理ファイルを割り当てる分の空き領域がありません。

01646

割り当てようとしたDAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。

01690

インタフェースコード(データ名A)が間違っています。

01691

要求コード(データ名F)が間違っています。