CBLDCDAM('OPEN')
名称
論理ファイルのオープン
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCDAM' USING 一意名1 一意名2
DATA DIVISIONの指定
01 一意名1.
02 データ名A PIC X(8) VALUE 'DCDAMSVC'.
02 データ名B PIC X(5).
02 FILLER PIC X(3).
02 データ名C PIC X(8).
02 FILLER PIC S9(9) COMP.
02 FILLER PIC S9(9) COMP.
02 データ名H PIC S9(9) COMP.
02 FILLER PIC X(28).
01 一意名2.
02 データ名E PIC X(4) VALUE 'OPEN'.
02 データ名F PIC X(1).
02 データ名G PIC X(1).
02 FILLER PIC X(1).
02 FILLER PIC X(1).
02 データ名Z PIC S9(9) COMP VALUE ZERO.
機能
論理ファイルをオープンします。
UAPで値を設定するデータ領域
●データ名A
DAMファイルとのインタフェースコードを「VALUE 'DCDAMSVC'」と設定します。
●データ名C
論理ファイル名を8文字以内で設定します。8文字に満たない場合は,後ろを空白で埋めてください。
●データ名E
論理ファイルのオープンを示す要求コードを「VALUE 'OPEN'」と設定します。
●データ名F
ブロック排他をするかファイルの排他をするかを設定します。
VALUE 'B'…ブロック排他
VALUE 'F'…ファイル排他
ファイル排他を指定できるのは,次に示す場合です。
●データ名G
論理ファイルへのアクセスで排他エラーが起こったとき,排他解除待ちをするかどうかを設定します。データ名Fに「VALUE 'F'」を設定した場合は,使うDAMファイルが回復対象かどうかで動作が異なります。
VALUE 'W'… 排他解除待ちをします。
VALUE 'N'… 待たないで,エラーリターンします。
どちらも設定しなかった場合は「VALUE 'N'」が仮定されます。
データ名F,データ名Gに設定できる値は,使うDAMファイルが回復対象かどうかで異なります。詳細は次のとおりです。
データ名F | データ名G※ | 排他の設定内容 |
---|---|---|
'F' | △ | ファイル排他 |
'B' | 'W' | ブロック排他,排他エラー時は解除待ち |
'N' | ブロック排他,排他エラー時はエラーリターン |
データ名F | データ名G※ | 排他の設定内容 |
---|---|---|
'F' | 'W' | ファイル排他,排他エラー時は解除待ち |
'N' | ファイル排他,排他エラー時はエラーリターン | |
'B' | 'W' | ブロック排他,排他エラー時は解除待ち |
'N' | ブロック排他,排他エラー時はエラーリターン |
●データ名Z
0を設定します。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
●データ名H
ファイル記述子が返されます。
ステータスコード
ステータスコード | 意味 |
---|---|
00000 | ファイル記述子がデータ名Hに正常に設定されました。 |
01600 | CBLDCRPC('OPEN ')を呼び出していません。 |
ユーザサービス定義のatomic_updateオペランドの指定が'N'になっています (回復対象のDAMファイルにアクセスした場合だけリターンされます)。 | |
ユーザサービス定義のatomic_updateオペランドの指定が'N'の場合に,CBLDCDAM('STRT')を呼び出していません(回復対象外のDAMファイルにアクセスした場合だけリターンされます)。 | |
次に示すように,UAPを正しくリンケージしていません。
| |
DAMファイルの排他を,トランザクションの範囲外から指定しています (回復対象のDAMファイルにアクセスした場合だけリターンされます)。 | |
グローバルトランザクション単位の排他制御で,DAMファイルにファイル排他を設定しています(回復対象のDAMファイルにアクセスした場合だけリターンされます)。 | |
01601 | データ名Cに設定した論理ファイル名は定義されていません。 |
01602 | 排他エラーが起こりました。 |
01605 | ユーザサービス定義のatomic_updateオペランドの指定が'Y'の場合に,CBLDCDAM('STRT')を呼び出していません(回復対象外のDAMファイルにアクセスした場合だけリターンされます)。 |
01607 | メモリが不足しました。 |
01608 | データ名Cに設定した論理ファイルはオープン済みです。 |
01610 | 論理ファイル名として設定した値が間違っています。 |
01611 | データ名F,またはデータ名Gに設定した値が間違っています。 |
01621 | データ名Cに設定した論理ファイルは,論理閉塞されています。 |
01622 | データ名Cに設定した論理ファイルは,障害閉塞されています。 |
01627 | キャラクタ型スペシャルファイルのオープン数が最大値を超えました。 |
01628 | キャラクタ型スペシャルファイルのアクセス権がありません。 |
01629 | トランザクションサービスでエラーが起こりました (回復対象のDAMファイルにアクセスした場合だけリターンされます)。 |
01642 | デッドロックが起こりました (回復対象外のDAMファイルにアクセスした場合だけリターンされます)。 |
01643 | ロックサービス定義で指定した待ち時間のタイムアウトのため資源を確保できませんでした(回復対象外のDAMファイルにアクセスした場合だけリターンされます)。 |
01645 | 最大同時排他要求数を超えて,排他を要求しています。 |
01646 | オープンしようとしたDAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。 |
01690 | インタフェースコード(データ名A)が間違っています。 |
01691 | 要求コード(データ名E)が間違っています。 |