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, 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_PROTO
UAPを開始する準備ができていません。
-
- 注意事項
-
トランザクション外のUJレコードは,ジャーナルバッファに空きがなくなったとき,またはほかのアプリケーションのトランザクションが正常終了した同期点(コミットした時点)で,システムジャーナルファイルに出力されます。トランザクションが発生しないアプリケーションでUJレコードを取得する場合は,flagsにTP1ServerFlags.DCJNL_FLUSHを設定したPutUJメソッドを適切なタイミングで呼び出してください。