Hitachi

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


CBLDCJNL('UJPUT ')

〈このページの構成〉

名称

ユーザジャーナルの取得

形式

PROCEDURE DIVISIONの指定

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

DATA DIVISIONの指定

01 一意名1.
   02 データ名A  PIC X(8) VALUE 'UJPUT   '.
   02 データ名B  PIC X(5).
   02 FILLER    PIC X(3).
   02 データ名Z  PIC S9(9) COMP VALUE ZERO.
01 一意名2.
   02 データ名C  PIC 9(9) COMP.
   02 データ名D  PIC 9(9) COMP.
   02 データ名E  PIC X(n).

機能

UAPの履歴情報であるユーザジャーナル(UJ)をシステムジャーナルファイル(system_jnl_file)に取得します。CBLDCJNL('UJPUT ')を1回呼び出して取得するUJの単位を,UJレコードといいます。

CBLDCJNL('UJPUT ')を呼び出しても,すぐにはシステムジャーナルファイルへ出力されません。ジャーナルバッファに空きがなくなったときか,トランザクション処理がコミットした時点で,UJレコードがシステムジャーナルファイルへ出力されます。

CBLDCJNL('UJPUT ')は,CBLDCRPC('OPEN ')の呼び出し後からCBLDCRPC('CLOSE ')の呼び出しまでの間で呼び出せます。出力済みのUJレコードは,CBLDCJNL('UJPUT ')を呼び出したトランザクションで障害が発生しても,ロールバック(部分回復)で無効にできません。CBLDCJNL('UJPUT ')を呼び出したトランザクションをロールバックしても,UJレコードはシステムジャーナルファイルへ出力されます。

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

●データ名A

ユーザジャーナルの取得を示す要求コードを「VALUE 'UJPUT△△△'」と設定します。

●データ名Z

UJレコードを取得する時点で,システムジャーナルファイルにUJレコードを出力するかどうかを,次に示す形式で設定します。

1

UJレコードを取得する時点で,システムジャーナルファイルにUJレコードを出力します。トランザクション内でUJレコードが取得されている場合,この設定は無視されます。

0

UJレコードを取得する時点では,システムジャーナルファイルにUJレコードを出力しません。

●データ名C

取得するUJの長さを設定します。設定できる長さは1から(取得先システムジャーナルサービス定義のjnl_max_datasizeオペランドの値−8)までです。

●データ名D

UJコードを,0から255までの値で設定します。

●データ名E

取得するUJのデータを設定します。UJとして有効なデータは,データ名Cで設定した長さです。

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

●データ名B

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

ステータスコード

ステータスコード

意味

00000

正常に終了しました。

01101

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

要求コード(データ名A)が間違っている場合も含みます。

01102

ユーザジャーナルの長さ(データ名C)に,0以下のデータ長を設定しています。

01103

ユーザジャーナルの長さ(データ名C)に,設定できる範囲以上の値を設定しています。

01105

CBLDCRPC('OPEN ')が呼び出されていません。または,該当するシステムの実行環境がジャーナルファイルレスモードのため,CBLDCJNL('UJPUT ')が動作できません。

注意事項

トランザクション外UJレコードは,ジャーナルバッファに空きがなくなったとき,またはほかのアプリケーションのトランザクションが正常終了した同期点(コミットした時点)で,システムジャーナルファイルに出力されます。トランザクションが発生しないアプリケーションでUJレコードを取得する場合は,データ名Zに1を設定したCBLDCJNL('UJPUT ')を,適切なタイミングで呼び出してください。