Hitachi

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


Tam 【TP1/Server Base】

〈このページの構成〉

Tamの概要

名前空間

Hitachi.OpenTP1.Server

継承関係

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

説明

Tamクラスは,TAMファイルサービス機能を使用するメソッドを提供します。

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

メソッドの一覧

名称

説明

Close(System.Int32)

TAMテーブルをクローズします。

Delete(System.Int32, Hitachi.OpenTP1.Server.TamKeyTable&, System.Int32, System.Byte[], System.Int32, System.Int32)

キー値に示すレコードを,TAMテーブルから削除します。

GetInfo(System.String)

TAMテーブルの状態を取得します。

GetStatus(System.String, Hitachi.OpenTP1.Server.TamStatusTable&)

TAMテーブルの情報を,TamStatusTable構造体に返します。

Open(System.String, System.Int32)

TAMテーブルをオープンします。

Read(System.Int32, Hitachi.OpenTP1.Server.TamKeyTable&, System.Int32, System.Byte[], System.Int32, System.Int32)

flagsに設定した検索種別に従って,TAMテーブル上のレコードを参照または更新の目的で入力します。

ReadCancel(System.Int32, Hitachi.OpenTP1.Server.TamKeyTable&, System.Int32)

トランザクション内で,Tam.Readメソッドを使って排他を掛けた参照目的の入力,および更新目的の入力を取り消し,レコード排他を解除します。

Rewrite(System.Int32, Hitachi.OpenTP1.Server.TamKeyTable&, System.Int32, System.Byte[], System.Int32)

Tam.Readメソッドで入力したレコードを,更新して出力します。

Write(System.Int32, Hitachi.OpenTP1.Server.TamKeyTable&, System.Int32, System.Byte[], System.Int32, System.Int32)

キー値に示すレコードを,TAMテーブル上に更新または追加します。

メソッドの詳細

Close

説明

TAMテーブルをクローズします。Closeメソッドを呼び出したあとは,tableIDパラメタに設定したテーブル記述子は使えません。

Closeメソッドが例外応答した場合は,このメソッド内で確保した資源はすべて解放して,メソッドを呼び出す前の状態に戻ります。

トランザクション外でTam.Openメソッドを呼び出した場合,Closeメソッドもトランザクション外で呼び出してください。

トランザクション内でTam.Openメソッドを呼び出した場合は,Closeメソッドもトランザクション内で呼び出してください。また,トランザクション終了時までにCloseメソッドを呼び出さなかった場合は,同期点でTAMテーブルがクローズされます。

サービスメソッドの中で,トランザクション外のオープンに対するCloseメソッドを呼び出す場合,クローズさせるTAMテーブルにアクセスしている同一プロセス上のトランザクションは,すべて終了させてください。このことに関するエラーチェックはしないので,トランザクションを終了させないでこのメソッドを呼び出した場合の動作については保証しません。

宣言
【C#の場合】
public static void Close(
    int tableID
);
【Visual Basicの場合】
Public Shared Sub Close( _
    ByVal tableID As Integer _
)
【J#の場合】
public static void Close(
    int tableID
);
パラメタ
tableID

クローズするTAMテーブルの,テーブル記述子を設定します。テーブル記述子は,Tam.Openメソッドで返された値です。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_TRNOPN

    Tam.Openメソッドはトランザクション外で呼び出しています。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

Delete

説明

キー値に示すレコードを,TAMテーブルから削除します。削除するレコードをバッファに退避することもできます。ただし,このメソッドが例外応答した場合には,バッファの内容は保証されません。

レコード排他でTAMテーブルがオープンしている場合,更新排他でテーブル排他を確保します。

Deleteメソッドが例外応答した場合は,このメソッド内で設定した資源はすべて解放して,メソッドを呼び出す前の状態に戻ります。ただし,メソッドを呼び出す前に参照排他で確保されていたTAMテーブルを削除しようとした場合は更新排他となり,参照排他には戻りません。

複数のレコードを設定して削除する場合,それらのレコードのうち一つでもエラーが起こったときは,このメソッドで設定した全レコードの処理をエラーとして,メソッドを呼び出す前の状態に戻ります。

宣言
【C#の場合】
public static void Delete(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    byte[] buffer,
    int bufferSize,
    int flags
);
【Visual Basicの場合】
Public Shared Sub Delete( _
    ByVal tableID As Integer, _
    ByVal key() As Hitachi.OpenTP1.Server.TamKeyTable, _
    ByVal keyNo As Integer, _
    ByVal buffer() As Byte, _
    ByVal bufferSize As Integer, _
    ByVal flags As Integer _
)
【J#の場合】
public static void Delete(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    ubyte[] buffer,
    int bufferSize,
    int flags
);
パラメタ
tableID

レコードを削除するTAMテーブルの,テーブル記述子を設定します。テーブル記述子は,Tam.Openメソッドで返された値です。

key

削除するレコードのキー値を持つ,構造体の配列を設定します。

keyNo

要求レコード数(keyで設定する構造体の数)を設定します。

buffer

削除するレコードをバッファに退避する場合に,そのバッファを設定します。flagsにTP1ServerFlags.DCTAM_NOOUTREC(削除するレコードを退避しません)を設定した場合は,この設定は無効です。

bufferSize

削除するレコードをバッファに退避する場合に,そのバッファ長を設定します。返却バッファ長は,「レコード長×要求レコード数」以上にします。flagsにTP1ServerFlags.DCTAM_NOOUTREC(削除するレコードを退避しません)を設定した場合は,この設定は無効です。

flags

レコードのアクセス種別,資源の競合が起こった場合の排他解除待ち種別を,次の形式で設定します。

{TP1ServerFlags.DCTAM_NOOUTREC|
TP1ServerFlags.DCTAM_OUTREC}
〔|{TP1ServerFlags.DCTAM_WAIT|
TP1ServerFlags.DCTAM_NOWAIT}〕
  • フラグ1

    フラグ1には,レコードアクセス種別を指定します。

    レコードのアクセス種別の設定は省略できません。次のアクセス種別のどちらかを指定してください。

    TP1ServerFlags.DCTAM_NOOUTREC … 削除するレコードを退避しません。

    TP1ServerFlags.DCTAM_OUTREC … 削除するレコードを退避します。

  • フラグ2

    フラグ2には,排他解除待ち種別を指定します。

    次の排他解除待ち種別のどちらかを指定してください。排他解除待ち種別を省略した場合は,排他解除待ちをしないで例外応答します。

    TP1ServerFlags.DCTAM_WAIT … 排他解除待ちをします。

    TP1ServerFlags.DCTAM_NOWAIT … 待たないで,例外応答します。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_PARAM_KEY

    keyに設定したキー値が間違っています。

    DCTAMER_PARAM_KNO

    keyNoに設定した値が間違っています。

    DCTAMER_PARAM_BFA

    bufferに設定した値が間違っています。

    DCTAMER_PARAM_BFS

    bufferSizeに設定したバッファ長が短過ぎます。

    DCTAMER_PARAM_FLG

    flagsに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableIDに設定したテーブルはTAMテーブルではありません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_RMTBL

    TAMテーブルが削除されています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_ACSATL

    TAMサービス定義で指定したTAMテーブルのアクセス形態では実行できません。

    DCTAMER_NOREC

    指定されたレコードは存在しません。

    DCTAMER_LOCK

    排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。

    DCTAMER_DLOCK

    デッドロックが起こりました。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_RECOBS

    レコードが破壊されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えました。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

    DCTAMER_ACCESS

    アクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。Deleteメソッドを呼び出したUAPには,アクセス権限がありません。

GetInfo

説明

TAMテーブルの状態を取得します。取得するTAMテーブルの状態を次に示します。

  • オープン状態

  • クローズ状態

  • 論理閉塞状態

  • 障害閉塞状態

GetInfoメソッドは,トランザクション内でもトランザクション外でも呼び出せます。

GetInfoメソッドを呼び出したプロセスでTam.Openメソッドを呼び出していなくても,設定したTAMテーブルにほかのプロセスでTam.Openメソッドを呼び出している場合は,TAMテーブルはオープン状態としてリターンします。

宣言
【C#の場合】
public static int GetInfo(
    string tableName
);
【Visual Basicの場合】
Public Shared Function GetInfo( _
    ByVal tableName As String _
) As Integer
【J#の場合】
public static int GetInfo(
    System.String tableName
);
パラメタ
tableName

状態を取得するTAMテーブル名を設定します。TAMテーブル名は32文字以内の半角英数字文字列で設定してください。

戻り値
  • TP1ServerValues.DCTAM_STS_OPN

    オープン状態であることを示します。

  • TP1ServerValues.DCTAM_STS_CLS

    クローズ状態であることを示します。

  • TP1ServerValues.DCTAM_STS_LHLD

    論理閉塞状態であることを示します。

  • TP1ServerValues.DCTAM_STS_OHLD

    障害閉塞状態であることを示します。

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TBL

    tableNameに設定した値が間違っています。

    DCTAMER_UNDEF

    TAMテーブルが定義されていません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_TAMVR

    UAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_NO_ACL

    アクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。

    DCTAMER_ACCESS

    アクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。GetInfoメソッドを呼び出したUAPには,アクセス権限がありません。

GetStatus

説明

TAMテーブルの情報が,TamStatusTable構造体で返されます。リターンする値を次に示します。

  • TAMファイル名

  • TAMテーブルの状態

  • 使用中のレコード数

  • 最大レコード数

  • インデクス種別

  • アクセス形態

  • ローディング契機

  • TAMレコード長

  • キー長

  • キー開始位置

  • セキュリティ属性

宣言
【C#の場合】
public static Hitachi.OpenTP1.Server.TamStatusTable GetStatus(
    string tableName
);
【Visual Basicの場合】
Public Shared Function GetStatus( _
    ByVal tableName As String, _
) As Hitachi.OpenTP1.Server.TamStatusTable _
【J#の場合】
public static Hitachi.OpenTP1.Server.TamStatusTable GetStatus(
    System.String tableName
);
パラメタ
tableName

情報を取得するTAMテーブル名を設定します。TAMテーブル名は,32文字以内の半角英数字文字列で設定します。

戻り値

TAMテーブルの情報が,TamStatusTable構造体で返されます。

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TBL

    tableNameに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableNameに設定した名称は,TAMテーブルではありません。

    DCTAMER_UNDEF

    TAMテーブルが定義されていません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_TAMVR

    UAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_NO_ACL

    情報を取得しようとしたTAMテーブルは,セキュリティ機能で保護されています。該当するTAMテーブルに対するACLがありません。

    DCTAMER_ACCESS

    情報を取得しようとしたTAMテーブルは,セキュリティ機能で保護されています。GetStatusメソッドを呼び出したUAPには,アクセス権限がありません。

Open

説明

TAMテーブルをオープンします。Openメソッドは,トランザクション内でもトランザクション外でも呼び出せます。

トランザクション内で呼び出して,排他種別にテーブル排他を設定した場合,更新排他でテーブル排他を確保します。

Openメソッドが例外応答した場合は,このメソッド内で確保した資源はすべて解放して,メソッドを呼び出す前の状態に戻ります。

宣言
【C#の場合】
public static int Open(
    string tableName,
    int flags
);
【Visual Basicの場合】
Public Shared Function Open( _
    ByVal tableName As String, _
    ByVal flags As Integer _
) As Integer
【J#の場合】
public static int Open(
    System.String tableName,
    int flags
);
パラメタ
tableName

オープンするTAMテーブル名を設定します。TAMテーブル名は32文字以内の半角英数字文字列で設定してください。

flags

テーブル排他を掛けるかレコード排他を掛けるかを,次の形式で設定します。

〔{TP1ServerFlags.DCTAM_TBL_EXCLUSIVE
〔|{TP1ServerFlags.DCTAM_WAIT|
TP1ServerFlags.DCTAM_NOWAIT}〕|
TP1ServerFlags.DCTAM_REC_EXCLUSIVE}〕
  • フラグ1

    フラグ1には,排他種別を指定します。

    テーブル排他の場合は,更新排他で確保します。レコード排他の場合は,レコードのアクセスメソッド内で排他を確保します。Openメソッドをトランザクション外で呼び出す場合は,テーブル排他は指定できません。

    次の排他種別のどちらかを指定してください。このフラグの指定を省略した場合は,TP1ServerFlags.DCTAM_REC_EXCLUSIVEが仮定されます。

    TP1ServerFlags.DCTAM_TBL_EXCLUSIVE … テーブル排他です。

    TP1ServerFlags.DCTAM_REC_EXCLUSIVE … レコード排他です。

  • フラグ2

    テーブル排他の場合は,フラグ2に資源の競合が起こったときの排他解除待ち種別を指定します。

    次の排他解除待ち種別のどちらかを指定してください。このフラグの指定を省略した場合は,TP1ServerFlags.DCTAM_NOWAITが仮定されます。

    TP1ServerFlags.DCTAM_WAIT … 排他解除待ちをします。

    TP1ServerFlags.DCTAM_NOWAIT … 待たないで,例外応答します。

戻り値

テーブル記述子を示します。

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TBL

    tableNameに設定した値が間違っています。

    DCTAMER_PARAM_FLG

    flagsに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableNameに設定したテーブルはTAMテーブルではありません。

    DCTAMER_UNDEF

    TAMテーブルが定義されていません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_OPENED

    TAMテーブルがオープン済みです。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_LOCK

    排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。

    DCTAMER_DLOCK

    デッドロックが起こりました。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_TAMVR

    UAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_RECOBS

    レコードが破壊されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えています。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えています。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

    DCTAMER_NO_ACL

    オープンしようとしたTAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。

Read

説明

flagsに設定した検索種別に従って,TAMテーブル上のレコードを参照または更新の目的で入力します。

参照目的の入力で排他を掛ける場合,参照排他でテーブル排他とレコード排他を確保します。レコード排他でオープンしたTAMテーブルを更新目的で入力する場合は,参照排他でテーブル排他を確保し,更新排他でレコード排他を確保します。

Readメソッドが例外応答した場合は,このメソッド内で設定した資源は すべて解放して,メソッドを呼び出す前の状態に戻ります。ただし,メソッドを呼び出す前に参照排他で確保されていたレコードを更新目的で入力した場合は,更新排他となり参照排他には戻りません。また,例外応答した場合には,バッファの内容は保証できません。

複数のレコードを設定して入力する場合,それらのレコードのうち一つでもエラーが発生したときは,このメソッドで設定した全レコードの処理をエラーとします。

宣言
【C#の場合】
public static void Read(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    byte[] buffer,
    int bufferSize,
    int flags
);
【Visual Basicの場合】
Public Shared Sub Read( _
    ByVal tableID As Integer, _
    ByVal key() As Hitachi.OpenTP1.Server.TamKeyTable, _
    ByVal keyNo As Integer, _
    ByVal buffer() As Byte, _
    ByVal bufferSize As Integer, _
    ByVal flags As Integer _
)
【J#の場合】
public static void Read(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    ubyte[] buffer,
    int bufferSize,
    int flags
);
パラメタ
tableID

レコードを入力するTAMテーブルの,テーブル記述子を設定します。テーブル記述子はTam.Openメソッドで返された値です。

key

レコードを検索するための,キー値を持つ構造体の配列を設定します。

keyNo

要求レコード数(keyで設定する構造体の数)を設定します。

buffer

レコードを入力するバッファを設定します。

bufferSize

レコードを入力するバッファの長さを設定します。バッファ長は「レコード長×要求レコード数」以上にします。

flags

レコードの検索種別,アクセス種別,参照目的の排他のときの排他要否種別を設定します。また,排他を掛ける場合に,資源の競合が起こったときの排他解除待ち種別を次の形式で設定します。

{フラグ1}|{TP1ServerFlags.DCTAM_REFERENCE
〔|{TP1ServerFlags.DCTAM_EXCLUSIVE|
TP1ServerFlags.DCTAM_NOEXCLUSIVE}〕|
TP1ServerFlags.DCTAM_MODIFY}
〔|{TP1ServerFlags.DCTAM_WAIT|
TP1ServerFlags.DCTAM_NOWAIT}〕
  • フラグ1

    フラグ1には,次のレコードの検索種別のうちどれか一つを指定してください。

    レコードの検索種別の設定は省略できません。また,検索種別は重複して設定できません。

    TP1ServerFlags.DCTAM_EQLSRC … 'キー値='を検索します(ハッシュ,ツリー)。

    TP1ServerFlags.DCTAM_GRTEQLSRC … 'キー値<='を検索します(ツリー)。

    TP1ServerFlags.DCTAM_GRTSRC … 'キー値<'を検索します(ツリー)。

    TP1ServerFlags.DCTAM_LSSEQLSRC … 'キー値>='を検索します(ツリー)。

    TP1ServerFlags.DCTAM_LSSSRC … 'キー値>'を検索します(ツリー)。

    TP1ServerFlags.DCTAM_FIRSTSRC … 先頭から検索します(ハッシュ)。

    TP1ServerFlags.DCTAM_NEXTSRC … 設定したキー値の,次のレコードから検索します(ハッシュ)。

  • フラグ2

    フラグ2には,レコードアクセス種別を指定します。

    レコードのアクセス種別の指定は省略できません。

    次のアクセス種別のどちらかを指定してください。

    TP1ServerFlags.DCTAM_REFERENCE … 参照目的の排他です。

    TP1ServerFlags.DCTAM_MODIFY … 更新目的の排他です。

  • フラグ3

    参照目的の排他の場合は,フラグ3に排他するかどうかを指定します。

    次のどちらかを指定してください。このフラグの設定を省略した場合は,TP1ServerFlags.DCTAM_NOEXCLUSIVEが仮定されます。

    TP1ServerFlags.DCTAM_EXCLUSIVE … 排他します。

    TP1ServerFlags.DCTAM_NOEXCLUSIVE … 排他をしません。

  • フラグ4

    フラグ4には,排他解除待ち種別を指定します。

    次のどちらかを指定してください。このフラグの設定を省略した場合は,TP1ServerFlags.DCTAM_NOWAITが仮定されます。

    TP1ServerFlags.DCTAM_WAIT … 排他解除待ちをします。

    TP1ServerFlags.DCTAM_NOWAIT … 待たないで,例外応答します。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_PARAM_KEY

    keyに設定したキー値が間違っています。

    DCTAMER_PARAM_KNO

    keyNoに設定した値が間違っています。

    DCTAMER_PARAM_BFA

    bufferに設定した値が間違っています。

    DCTAMER_PARAM_BFS

    bufferSizeに設定したバッファ長が短過ぎます。

    DCTAMER_PARAM_FLG

    flagsに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableIDに設定したテーブルはTAMテーブルではありません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_RMTBL

    TAMテーブルが削除されています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_IDXTYP

    TAMテーブルファイルの初期作成で設定したTAMテーブルのインデクス種別では実行できません。

    DCTAMER_ACSATL

    TAMサービス定義で設定したTAMテーブルのアクセス形態では実行できません。

    DCTAMER_NOREC

    flagsに設定した検索条件を満たすレコードがありません。

    DCTAMER_LOCK

    排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。

    DCTAMER_DLOCK

    デッドロックが起こりました。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_RECOBS

    レコードが破壊されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えました。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

    DCTAMER_ACCESS

    アクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。Readメソッドを呼び出したUAPには,アクセス権限がありません。

ReadCancel

説明

トランザクション内で,Tam.Readメソッドを使って排他を掛けた参照目的の入力,および更新目的の入力を取り消し,レコード排他を解除します。

更新,または追加済みのレコードには,排他を掛けた参照目的の入力を取り消すことはできません。また,Tam.Rewriteメソッドで更新したレコードの,更新目的の入力の取り消しはできません。

更新,または追加済みのレコード,およびテーブル排他でオープンした,TAMテーブル上のレコードに対する更新目的の入力の取り消しでは,排他を解除しません。

ReadCancelメソッドで入力を取り消したあとも,トランザクションが終了するまでは,入力したTAMテーブルに対して,ほかのトランザクションからレコードの追加,削除はできません。

ReadCancelメソッドが例外を返した場合,このメソッドで解放した資源は再確保しないで,メソッドを呼び出す前の状態には戻しません。また,複数のレコードを設定してアクセスを要求した場合,それらのレコードのうち,一つでもエラーが発生したら処理を中断して,例外応答します。

宣言
【C#の場合】
public static void ReadCancel(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo
);
【Visual Basicの場合】
Public Shared Sub ReadCancel( _
    ByVal tableID As Integer, _
    ByVal key() As Hitachi.OpenTP1.Server.TamKeyTable, _
    ByVal keyNo As Integer _
)
【J#の場合】
public static void ReadCancel(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo
);
パラメタ
tableID

レコードの入力を取り消すTAMテーブルの,テーブル記述子を設定します。テーブル記述子はTam.Openメソッドで返された値です。

key

入力を取り消すレコードの,キー値を持つ構造体の配列を設定します。

keyNo

要求レコード数(keyで設定する構造体の数)を設定します。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_PARAM_KEY

    keyに設定したキー値が間違っています。

    DCTAMER_PARAM_KNO

    keyNoに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableIDに設定したテーブルはTAMテーブルではありません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_RMTBL

    TAMテーブルが削除されています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_NOREC

    指定されたレコードは存在しません。

    DCTAMER_SEQENCE

    Tam.Readメソッドを呼び出していません。

    DCTAMER_EXWRITE

    tableIDに設定したテーブル記述子はTam.Writeメソッドで更新または追加したレコードです。

    DCTAMER_EXREWRT

    tableIDに設定したテーブル記述子は,Tam.Rewriteメソッドで更新済みです。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えました。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMテーブルファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

Rewrite

説明

Tam.Readメソッドで入力したレコードを,更新して出力します。

更新目的の入力のTam.Readメソッドを1回呼び出せば,その後トランザクションの同期点まで,何度でもRewriteメソッドを使えます。ただし,Tam.Deleteメソッド,Tam.ReadCancelメソッドを呼び出したあとには,Rewriteメソッドを使えません。

Rewriteメソッドが例外応答した場合は,このメソッド内で設定した資源はすべて解放して,メソッドを呼び出す前の状態に戻ります。

複数のレコードを設定して更新を要求する場合,それらのレコードのうち一つでもエラーが発生したときは,このメソッドで設定した全レコードの処理をエラーとします。

更新データ内のキー値の格納位置,およびキー領域長は,TAMテーブルファイルの初期作成時のtamcreコマンドに設定した値です。

TAMテーブルファイルの初期作成時,データ部にキー値を付けている(tamcreコマンドに-sオプションを指定していない)場合は,Rewriteメソッドに設定したキー値が更新データ内になければ,例外応答します。また,データ部にキー値を付けていない(tamcreコマンドに-sオプションを指定)場合は,更新データの内容をチェックしません。

宣言
【C#の場合】
public static void Rewrite(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    byte[] data,
    int dataSize
);
【Visual Basicの場合】
Public Shared Sub Rewrite( _
    ByVal tableID As Integer, _
    ByVal key() As Hitachi.OpenTP1.Server.TamKeyTable, _
    ByVal keyNo As Integer, _
    ByVal data() As Byte, _
    ByVal dataSize As Integer _
)
【J#の場合】
public static void Rewrite(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    ubyte[] data,
    int dataSize
);
パラメタ
tableID

レコードを更新するTAMテーブルの,テーブル記述子を設定します。テーブル記述子はTam.Openメソッドで返された値です。

key

更新するレコードの,キー値を持つ構造体の配列を設定します。

keyNo

要求レコード数(keyで設定する構造体の数)を設定します。

data

更新データを設定します。

dataSize

更新データ長を設定します。更新データ長は,「レコード長×要求レコード数」以上にしてください。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_PARAM_KEY

    keyに設定したキー値が間違っています。

    DCTAMER_PARAM_KNO

    keyNoに設定した値が間違っています。

    DCTAMER_PARAM_DTA

    dataに設定した値が間違っています。

    DCTAMER_PARAM_DTS

    dataSizeに設定したデータ長が短過ぎます。

    DCTAMER_NOTTAM

    tableIDに設定したテーブルはTAMテーブルではありません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_RMTBL

    TAMテーブルが削除されています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_NOREC

    指定されたレコードは存在しません。

    DCTAMER_SEQENCE

    Tam.Readメソッドを呼び出していません。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_RECOBS

    レコードが破壊されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えました。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMテーブルファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

Write

説明

キー値に示すレコードを,TAMテーブル上に更新または追加します。

レコード排他でTAMテーブルがオープンしている場合,次のように排他を確保します。

  • アクセス種別が「更新」の場合 (flagsにTP1ServerFlags.DCTAM_WRITEを設定)

    参照排他でテーブル排他を確保して,更新排他でレコード排他を確保します。ただし,TAMサービス定義の「アクセス時のテーブル排他モード」に,「テーブル排他なしモード」を指定している場合は,アクセス形態が「参照型」「追加・削除できない更新型」のテーブルには,テーブル排他を確保しません。

  • アクセス種別が「更新または追加」,「追加」の場合(flagsにTP1ServerFlags.DCTAM_WRTADD,またはTP1ServerFlags.DCTAM_ADDを設定)

    更新排他でテーブル排他を確保します。

Writeメソッドが例外を返した場合,このメソッド内で確保した資源はすべて解放して,メソッドを呼び出す前の状態に戻します。ただし,このメソッドを呼び出す前に,参照排他で確保されていたTAMテーブルを更新または追加した場合は,更新排他となり参照排他には戻りません。

複数のレコードを設定して更新または追加する場合,それらのレコードのうち一つでもエラーが発生したら,このメソッドで設定した全レコードの処理をエラーとします。

更新または追加するデータ内のキー値の格納位置,およびキー領域長は,TAMテーブルファイルの初期作成時のtamcreコマンドに設定した値です。

TAMテーブルファイルの初期作成時,データ部にキー値を付けている(tamcreコマンドに-sオプションを指定していない)場合は,Writeメソッドに設定したキー値が更新または追加するデータ内になければ,例外応答します。また,データ部にキー値を付けていない(tamcreコマンドに-sオプションを指定)場合は,更新または追加するデータの内容をチェックしません。

宣言
【C#の場合】
public static void Write(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    byte[] data,
    int dataSize,
    int flags
);
【Visual Basicの場合】
Public Shared Sub Write( _
    ByVal tableID As Integer, _
    ByVal key() As Hitachi.OpenTP1.Server.TamKeyTable, _
    ByVal keyNo As Integer, _
    ByVal data() As Byte, _
    ByVal dataSize As Integer, _
    ByVal flags As Integer _
)
【J#の場合】
public static void Write(
    int tableID,
    Hitachi.OpenTP1.Server.TamKeyTable[] key,
    int keyNo,
    ubyte[] data,
    int dataSize,
    int flags
);
パラメタ
tableID

レコードを更新または追加するTAMテーブルの,テーブル記述子を設定します。テーブル記述子はTam.Openメソッドで返された値です。

key

更新または追加するレコードのキー値を持つ,構造体の配列を設定します。

keyNo

要求レコード数(keyで設定する構造体の数)を設定します。

data

更新または追加するデータを設定します。

dataSize

更新または追加するデータ長を設定します。更新または追加するデータ長は「レコード長×要求レコード数」以上にしてください。

flags

レコードのアクセス種別,資源が競合した場合の排他解除待ち種別を設定します。

{TP1ServerFlags.DCTAM_WRITE|
TP1ServerFlags.DCTAM_WRTADD|
TP1ServerFlags.DCTAM_ADD}
〔|{TP1ServerFlags.DCTAM_WAIT|
TP1ServerFlags.DCTAM_NOWAIT}〕
  • フラグ1

    フラグ1には,レコードアクセス種別を指定します。

    レコードのアクセス種別の設定は省略できません。次のアクセス種別のどちらかを指定してください。

    TP1ServerFlags.DCTAM_WRITE … 更新します。

    TP1ServerFlags.DCTAM_WRTADD … 更新または追加します。

    TP1ServerFlags.DCTAM_ADD … 追加します。

  • フラグ2

    フラグ2には,排他解除待ち種別を指定します。

    次の排他解除待ち種別のどちらかを指定してください。このフラグの指定を省略した場合は,TP1ServerFlags.DCTAM_NOWAITが仮定されます。

    TP1ServerFlags.DCTAM_WAIT … 排他解除待ちをします。

    TP1ServerFlags.DCTAM_NOWAIT … 排他解除を待たないで,例外応答します。

戻り値

なし

例外
Hitachi.OpenTP1.Server.TP1ServerException

次の情報が出力されます。

  • メッセージ

    OpenTP1提供関数内でエラーが発生した場合は,次のように出力されます。

    "OpenTP1提供関数実行時にエラーが発生しました。"

    それ以外の場合は,各エラーに対応したメッセージが出力されます。

  • クラス名

    例外が発生したクラス名が出力されます。

  • メソッド名

    例外が発生したメソッド名が出力されます。

  • 引数名(OpenTP1提供関数呼び出し前の引数チェックでエラーになった場合にだけ出力)

    例外が発生する原因となった引数名が出力されます。

  • エラーコード

    発生原因に応じ,次のエラーコードが出力されます。

    エラーコード

    説明

    DCTAMER_PARAM_TID

    tableIDに設定したテーブル記述子が間違っています。

    DCTAMER_PARAM_KEY

    keyに設定したキー値が間違っています。

    DCTAMER_PARAM_KNO

    keyNoに設定した値が間違っています。

    DCTAMER_PARAM_DTA

    dataに設定した値が間違っています。

    DCTAMER_PARAM_DTS

    dataSizeに設定したデータ長が短過ぎます。

    DCTAMER_PARAM_FLG

    flagsに設定した値が間違っています。

    DCTAMER_NOTTAM

    tableIDに設定したテーブルはTAMテーブルではありません。

    DCTAMER_TAMEND

    TAMサービスが終了中です。

    DCTAMER_PROTO

    • TAMテーブルへアクセスする順序が間違っています。

    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。

    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。

    DCTAMER_RMTBL

    TAMテーブルが削除されています。

    DCTAMER_NOLOAD

    TAMテーブルがロードされていません。

    DCTAMER_NOOPEN

    TAMテーブルがオープン状態ではありません。

    DCTAMER_LOGHLD

    TAMテーブルが論理閉塞状態です。

    DCTAMER_OBSHLD

    TAMテーブルが障害閉塞状態です。

    DCTAMER_ACSATL

    TAMサービス定義で設定したTAMテーブルのアクセス形態では実行できません。

    DCTAMER_NOREC

    指定されたレコードは存在しません。

    DCTAMER_EXKEY

    keyに設定したキー値がTAMテーブルに存在するので,レコードの追加はできません。

    DCTAMER_LOCK

    排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。

    DCTAMER_DLOCK

    デッドロックが起こりました。

    DCTAMER_TBLVR

    UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_FLSVR

    UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。

    DCTAMER_NOAREA

    TAMテーブルに空きレコードがありません。

    DCTAMER_RECOBS

    レコードが破壊されています。

    DCTAMER_TRNNUM

    TAMサービスで管理できるトランザクション数を超えました。

    DCTAMER_OPENNUM

    キャラクタ型スペシャルファイルのオープン数の制限値を超えました。

    DCTAMER_ACCESSS

    スペシャルファイルに対するアクセス権がありません。

    DCTAMER_ACCESSF

    TAMテーブルファイルに対するアクセス権がありません。

    DCTAMER_MEMORY

    メモリが不足しました。

    DCTAMER_IO

    入出力エラーが発生しました。

    DCTAMER_TMERR

    トランザクションサービスでエラーが発生しました。

    DCTAMER_ACCESS

    アクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。Writeメソッドを呼び出したUAPには,アクセス権限がありません。