Jnl 【TP1/Server Base】

Jnlの概要

名前空間

Hitachi.OpenTP1.Server

継承関係

System.Object
 +- Hitachi.OpenTP1.Server.Jnl

説明

Jnlクラスは,ユーザジャーナルを取得するメソッドを提供します。

Jnlクラスのメソッドは,TP1/Server BaseのUAPでだけ使用できます。TP1/LiNKのUAPでは,Jnlクラスのメソッドは使用できません。

メソッドの一覧

名称説明
PutUJ(System.Byte[], System.Int32, System.Int32)ユーザジャーナルを取得します。
PutUJ(System.Byte[], System.Int32, System.Int32, System.Int32)ユーザジャーナルを取得します。UAPの履歴情報であるユーザジャーナル(UJ)をシステムジャーナルファイル(System_jnl_file)に取得します。

メソッドの詳細

PutUJ

説明
ユーザジャーナルを取得します。
宣言
【C#の場合】

public static void PutUJ(
 byte[] data,
 int dataSize,
 int ujCode
);

【Visual Basicの場合】

Public Shared Sub PutUJ( _
 ByVal data() As Byte, _
 ByVal dataSize As Integer, _
 ByVal ujCode As Integer _
)

【J#の場合】

public static void PutUJ(
 System.Byte[] data,
 int dataSize,
 int ujCode
);

注意事項
このPutUJメソッドは,PutUJ(byte[] data,int dataSize,int ujCode,int flags)メソッドのflagsにTP1ServerFlags.DCNOFLAGSを指定した場合と同じ動作をします。

PutUJ

説明
ユーザジャーナルを取得します。UAPの履歴情報であるユーザジャーナル(UJ)をシステムジャーナルファイル(system_jnl_file)に取得します。PutUJメソッド1回の呼び出しで取得するUJの単位をUJレコードといいます。
PutUJメソッドを呼び出しても,すぐにはシステムジャーナルファイルに出力されません。ジャーナルバッファに空きがなくなったとき,またはトランザクション処理が正常終了した同期点で,システムジャーナルファイルにUJレコードが出力されます。
PutUJメソッドは,SUP.NETの場合,RpcクラスのOpenメソッドの呼び出し後からRpcクラスのCloseメソッドの呼び出しまでの間で呼び出せます。SPP.NETの場合,どこからでも呼び出せます。出力済みのUJレコードは,PutUJメソッドを呼び出したトランザクションで障害が発生しても,ロールバック(部分回復)で無効にできません。PutUJメソッドを呼び出したトランザクションをロールバックしても,UJレコードはシステムジャーナルファイルに出力されます。
宣言
【C#の場合】

public static void PutUJ(
 byte[] data,
 int dataSize,
 int ujCode
 int flags
);

【Visual Basicの場合】

Public Shared Sub PutUJ( _
 ByVal data() As Byte, _
 ByVal dataSize As Integer, _
 ByVal ujCode As Integer _
 ByVal flagsb As Integer _
)

【J#の場合】

public static void PutUJ(
 System.Byte[] data,
 int dataSize,
 int ujCode
 int flags
);

パラメタ
data
取得するUAPの履歴情報を設定します。UAPの履歴情報として有効になるデータは,dataSizeに設定した長さです。
dateSize
取得するUAPの履歴情報の長さを設定します。設定できる長さは,1から(取得先のシステムジャーナルファイルサービス定義のjnl_max_datasizeオペランドの値-8)までです。
ujCode
0~255の値で設定します。
flags
UJコードを取得する時点で,システムジャーナルファイルにUJレコードを出力するかどうかを,次に示す形式で設定します。
  • TP1ServerFlags.DCJNL_FLUSH
    UJレコードを取得する時点で,システムジャーナルファイルにUJレコードを出力します。トランザクション内でUJレコードが取得されている場合は,この設定は無視されます。
  • TP1ServerFlags.DCNOFLAGS
    UJレコードを取得する時点では,システムジャーナルファイルにUJレコードを出力しません。
戻り値
なし
例外
Hitachi.OpenTP1.Server.TP1ServerException
次の情報が出力されます。
  • メッセージ
    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。
    "OpenTP1提供関数実行時にエラーが発生しました。"
    それ以外の場合は,各エラーに対応したメッセージが出力されます。
  • クラス名
    例外が発生したクラス名が出力されます。
  • メソッド名
    例外が発生したメソッド名が出力されます。
  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合だけ出力)
    例外が発生する原因となった引数名が出力されます。
  • エラーコード
    発生原因に応じ,次のエラーコードが出力されます。
    エラーコード説明
    DCJNLER_PARAMパラメタの形式が間違っています。
    DCJNLER_SHORTユーザジャーナルの長さ(dataSizeの値)に,0以下のデータ長を設定しています。
    DCJNLER_LONGユーザジャーナルの長さ(dataSizeの値)に,設定できる範囲以上の値を設定しています。
    DCJNLER_PROTOUAPを開始する準備ができていません。
注意事項
トランザクション外のUJレコードは,ジャーナルバッファに空きがなくなったとき,またはほかのアプリケーションのトランザクションが正常終了した同期点(コミットした時点)で,システムジャーナルファイルに出力されます。トランザクションが発生しないアプリケーションでUJレコードを取得する場合は,flagsにTP1ServerFlags.DCJNL_FLUSHを設定したPutUJメソッドを適切なタイミングで呼び出してください。