Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Extension for .NET Framework 使用の手引


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_PROTO

    UAPを開始する準備ができていません。

注意事項

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