dc_jnl_ujput
名称
ユーザジャーナルの取得
形式
ANSI C ,C++の形式
#include <dcjnl.h>
int dc_jnl_ujput(char *data,DCULONG dsize,DCLONG ujcode,
DCLONG flags)
K&R版 C の形式
#include <dcjnl.h>
int dc_jnl_ujput(data,dsize,ujcode,flags)
char *data;
DCULONG dsize;
DCLONG ujcode;
DCLONG flags;
機能
UAPの履歴情報であるユーザジャーナル(UJ)をシステムジャーナルファイル(system_jnl_file)に取得します。dc_jnl_ujput関数1回の呼び出しで取得するUJの単位をUJレコードといいます。
dc_jnl_ujput関数を呼び出しても,すぐにはシステムジャーナルファイルに出力されません。ジャーナルバッファに空きがなくなったときか,トランザクション処理が正常終了した同期点で,システムジャーナルファイルにUJレコードが出力されます。
dc_jnl_ujput関数は,dc_rpc_open関数の呼び出し後からdc_rpc_close関数の呼び出しまでの間で呼び出せます。出力済みのUJレコードは,dc_jnl_ujput関数を呼び出したトランザクションで障害が発生しても,ロールバック(部分回復)で無効にできません。dc_jnl_ujput関数を呼び出したトランザクションをロールバックしても,UJレコードはシステムジャーナルファイルへ出力されます。
UAPで値を設定する引数
●data
取得するUAPの履歴情報を設定します。UAPの履歴情報として有効になるデータは,dsizeに設定した長さです。
●dsize
取得するUAPの履歴情報の長さを設定します。設定できる長さは1から(取得先のシステムジャーナルファイルサービス定義のjnl_max_datasizeオペランドの値-8)までです。
●ujcode
UJコードを,0~255の値で設定します。
●flags
UJレコードを取得する時点で,システムジャーナルファイルにUJレコードを出力するかどうかを,次に示す形式で設定します。
リターン値
リターン値 | リターン値(数値) | 意味 |
---|---|---|
DC_OK | 0 | 正常に終了しました。 |
DCJNLER_PARAM | -1101 | パラメタの形式が間違っています。 |
DCJNLER_SHORT | -1102 | ユーザジャーナルの長さ(dsizeの値)に,0以下のデータ長を設定しています。 |
DCJNLER_LONG | -1103 | ユーザジャーナルの長さ(dsizeの値)に,設定できる範囲以上の値を設定しています。 |
DCJNLER_PROTO | -1105 | dc_rpc_open関数が呼び出されていません。または,該当するシステムの実行環境がジャーナルファイルレスモードのため,dc_jnl_ujput関数が動作できません。 |
注意事項
トランザクション外UJレコードは,ジャーナルバッファに空きがなくなったとき,またはほかのアプリケーションのトランザクションが正常終了した同期点(コミットした時点)で,システムジャーナルファイルに出力されます。トランザクションが発生しないアプリケーションでUJレコードを取得する場合は,flagsにDCJNL_FLUSHを設定したdc_jnl_ujput関数を,適切なタイミングで呼び出してください。