6.5.7 CBLDCCLS('GETTRNID') − 現在のトランザクションに関する識別子の取得
(1) 形式
(a) マルチスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLS' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'GETTRNID'. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC X(17). 02 データ名D PIC X(17). 02 FILLER PIC X(2). 02 データ名E PIC 9(9) COMP-X.
(b) シングルスレッド環境の場合
■ PROCEDURE DIVISIONの指定
CALL 'CBLDCCLT' USING 一意名1
■ DATA DIVISIONの指定
01 一意名1. 02 データ名A PIC X(8) VALUE 'GETTRNID'. 02 データ名B PIC X(5). 02 FILLER PIC X(3). 02 データ名C PIC X(17). 02 データ名D PIC X(17).
(2) 機能
現在のトランザクショングローバル識別子,およびトランザクションブランチ識別子を取得します。
この識別子は,次に示すプログラムを発行してトランザクションが起動されたときに,OpenTP1が割り当てたものです。
-
CBLDCTRS('BEGIN ')
-
CBLDCTRS('C-COMMIT')
-
CBLDCTRS('C-ROLL ')
(3) UAPで値を設定するデータ領域
-
データ名A
現在のトランザクションに関する識別子の取得を示す要求コードを「VALUE 'GETTRNID'」と設定します。
-
データ名E
CBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDを指定します。
(4) 値が返されるデータ領域
-
データ名B
ステータスコードが,5けたの数字で返されます。
-
データ名C
トランザクショングローバル識別子が返されます。
-
データ名D
トランザクションブランチ識別子が返されます。
(5) ステータスコード
ステータスコード |
意味 |
---|---|
00000 |
正常終了しました。 |
02501 |
データ名に指定した値が間違っています。要求コード(データ名A)が間違っている場合も含みます。 |
02502 |
誤ったコンテクストからプログラムを呼び出しています。 |
02504 |
メモリ不足が発生しました。 |
02544 |
データ名Eに指定したクライアントIDはCBLDCCLS('CLTIN '),またはCBLDCCLS('EXCLTIN ')で受け取ったクライアントIDと異なっています。 |