CBLDCTRN('RMSELECT')
- 〈このページの構成〉
形式
PROCEDURE DIVISIONの指定
CALL 'CBLDCTRN' USING 一意名1 一意名2
DATA DIVISION の指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'RMSELECT'. 02 データ名B PIC X(5). 01 一意名2. 02 データ名C PIC S9(9) COMP VALUE ZERO. 02 データ名D PIC X(32). 02 データ名E PIC X(3).
機能
ユーザサービス定義のtrnrmid定義コマンドに-kオプションを指定したリソースマネジャについて,該当するプロセスまたはトランザクションで接続先となるリソースマネジャ(リソースマネジャ名+リソースマネジャ拡張子)を指定します。
CBLDCTRN('RMSELECT')は,グローバルトランザクション外でだけ呼び出せます。トランザクションブランチ内でCBLDCTRN('RMSELECT')を呼び出した場合は,エラーリターンします。
CBLDCTRN('RMSELECT')が正常に終了したあとは,指定されたリソースマネジャにだけ接続するようになり,trnrmid定義コマンドに-kオプションの指定があるほかの同一名称のリソースマネジャには接続しません。同一UAPプロセス内で,先に指定したリソースマネジャから別のリソースマネジャに変更する場合は,実行中のトランザクションが完了し新たなトランザクションを開始する前に変更対象となるリソースマネジャ(リソースマネジャ名とリソースマネジャ拡張子)を指定したCBLDCTRN('RMSELECT')を呼び出してください。
UAPで値を設定するデータ領域
●データ名A
接続先となるリソースマネジャ名の設定を示す要求コードを「VALUE 'RMSELECT'」と設定します。以降の処理でも,この内容は変わりません。
●データ名C
0を設定します。
●データ名D
接続先となるリソースマネジャ名(trnrmid定義コマンドの-nオプション指定値)を31文字以内の識別子で指定します。文字列の最後には空白を設定してください。この空白は文字列の長さに数えません。
●データ名E
データ名Dに指定したリソースマネジャに指定した拡張子(trnrmid定義コマンドの-nオプション指定値)のうち,接続先となる拡張子を2文字以内の識別子で指定します。文字列の最後には空白を設定してください。この空白は文字列の長さに数えません。
OpenTP1から値が返されるデータ領域
●データ名B
ステータスコードが,5けたの数字で返されます。
ステータスコード
リターン値 |
意味 |
---|---|
00000 |
正常に終了しました。 指定されたリソースマネジャは,CBLDCTRN('RMSELECT')を呼び出したプロセスで実行されるトランザクションで接続先として設定されました。 |
00905 |
CBLDCTRN('RMSELECT')を正しくないコンテクスト(例えば,すでにトランザクション内にいる)で呼び出しています。または,実行環境がジャーナルファイルレスモードの場合に関数が呼び出されました。 |
00906 |
リソースマネジャでエラーが起こりました。指定されたリソースマネジャのXA関数の呼び出し処理でエラーが発生しました。 |
00908 |
引数の指定値に次の誤りがあります。
|
指定例
01 MISC1. 02 CMD-CODE PIC X(8) VALUE 'RMSELECT'. 02 STATUS-CODE PIC X(5). 01 MISC2. 02 FLAGS PIC S9(9) COMP VALUE ZERO. 02 RMNAME PIC X(32) VALUE SPACES. 02 INFO PIC X(3) VALUE SPACES. : : MOVE 'RM_A ' TO RMNAME. MOVE 'Z1 ' TO INFO. CALL 'CBLDCTRN' USING MISC1 MISC2. IF STATUS-CODE OF MISC1 NOT EQUAL TO '00000' THEN MOVE 'CANNOT RM SELECT' TO ERRMSG OF OUT-ERROR-REC WRITE OUT-ERROR-REC END IF.