分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
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
- 説明
- ユーザジャーナルを取得します。
- 宣言
- 【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メソッドを適切なタイミングで呼び出してください。
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.