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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_TRNOPNTam.Openメソッドはトランザクション外で呼び出しています。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_PARAM_KEYkeyに設定したキー値が間違っています。
    DCTAMER_PARAM_KNOkeyNoに設定した値が間違っています。
    DCTAMER_PARAM_BFAbufferに設定した値が間違っています。
    DCTAMER_PARAM_BFSbufferSizeに設定したバッファ長が短過ぎます。
    DCTAMER_PARAM_FLGflagsに設定した値が間違っています。
    DCTAMER_NOTTAMtableIDに設定したテーブルはTAMテーブルではありません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_RMTBLTAMテーブルが削除されています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_ACSATLTAMサービス定義で指定したTAMテーブルのアクセス形態では実行できません。
    DCTAMER_NOREC指定されたレコードは存在しません。
    DCTAMER_LOCK排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。
    DCTAMER_DLOCKデッドロックが起こりました。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_RECOBSレコードが破壊されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えました。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えました。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMファイルに対するアクセス権がありません。
    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_TBLtableNameに設定した値が間違っています。
    DCTAMER_UNDEFTAMテーブルが定義されていません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_TAMVRUAPが,現在稼働している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_TBLtableNameに設定した値が間違っています。
    DCTAMER_NOTTAMtableNameに設定した名称は,TAMテーブルではありません。
    DCTAMER_UNDEFTAMテーブルが定義されていません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_TAMVRUAPが,現在稼働している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_TBLtableNameに設定した値が間違っています。
    DCTAMER_PARAM_FLGflagsに設定した値が間違っています。
    DCTAMER_NOTTAMtableNameに設定したテーブルはTAMテーブルではありません。
    DCTAMER_UNDEFTAMテーブルが定義されていません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_OPENEDTAMテーブルがオープン済みです。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_LOCK排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。
    DCTAMER_DLOCKデッドロックが起こりました。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_TAMVRUAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_RECOBSレコードが破壊されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えています。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えています。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMファイルに対するアクセス権がありません。
    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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_PARAM_KEYkeyに設定したキー値が間違っています。
    DCTAMER_PARAM_KNOkeyNoに設定した値が間違っています。
    DCTAMER_PARAM_BFAbufferに設定した値が間違っています。
    DCTAMER_PARAM_BFSbufferSizeに設定したバッファ長が短過ぎます。
    DCTAMER_PARAM_FLGflagsに設定した値が間違っています。
    DCTAMER_NOTTAMtableIDに設定したテーブルはTAMテーブルではありません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_RMTBLTAMテーブルが削除されています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_IDXTYPTAMテーブルファイルの初期作成で設定したTAMテーブルのインデクス種別では実行できません。
    DCTAMER_ACSATLTAMサービス定義で設定したTAMテーブルのアクセス形態では実行できません。
    DCTAMER_NORECflagsに設定した検索条件を満たすレコードがありません。
    DCTAMER_LOCK排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。
    DCTAMER_DLOCKデッドロックが起こりました。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_RECOBSレコードが破壊されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えました。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えました。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMファイルに対するアクセス権がありません。
    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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_PARAM_KEYkeyに設定したキー値が間違っています。
    DCTAMER_PARAM_KNOkeyNoに設定した値が間違っています。
    DCTAMER_NOTTAMtableIDに設定したテーブルはTAMテーブルではありません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_RMTBLTAMテーブルが削除されています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_NOREC指定されたレコードは存在しません。
    DCTAMER_SEQENCETam.Readメソッドを呼び出していません。
    DCTAMER_EXWRITEtableIDに設定したテーブル記述子はTam.Writeメソッドで更新または追加したレコードです。
    DCTAMER_EXREWRTtableIDに設定したテーブル記述子は,Tam.Rewriteメソッドで更新済みです。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えました。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えました。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMテーブルファイルに対するアクセス権がありません。
    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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_PARAM_KEYkeyに設定したキー値が間違っています。
    DCTAMER_PARAM_KNOkeyNoに設定した値が間違っています。
    DCTAMER_PARAM_DTAdataに設定した値が間違っています。
    DCTAMER_PARAM_DTSdataSizeに設定したデータ長が短過ぎます。
    DCTAMER_NOTTAMtableIDに設定したテーブルはTAMテーブルではありません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_RMTBLTAMテーブルが削除されています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_NOREC指定されたレコードは存在しません。
    DCTAMER_SEQENCETam.Readメソッドを呼び出していません。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_RECOBSレコードが破壊されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えました。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えました。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMテーブルファイルに対するアクセス権がありません。
    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_TIDtableIDに設定したテーブル記述子が間違っています。
    DCTAMER_PARAM_KEYkeyに設定したキー値が間違っています。
    DCTAMER_PARAM_KNOkeyNoに設定した値が間違っています。
    DCTAMER_PARAM_DTAdataに設定した値が間違っています。
    DCTAMER_PARAM_DTSdataSizeに設定したデータ長が短過ぎます。
    DCTAMER_PARAM_FLGflagsに設定した値が間違っています。
    DCTAMER_NOTTAMtableIDに設定したテーブルはTAMテーブルではありません。
    DCTAMER_TAMENDTAMサービスが終了中です。
    DCTAMER_PROTO
    • TAMテーブルへアクセスする順序が間違っています。
    • UAPのユーザサービス定義に指定したトランザクション制御用ライブラリのリソースマネジャ登録が間違っています。または,UAPのユーザサービス定義にトランザクション制御用ライブラリを指定していません。
    • メソッドを呼び出したUAPのユーザサービス定義に,非トランザクション属性(atomic_updateオペランドにNを指定)を指定しています。
    DCTAMER_RMTBLTAMテーブルが削除されています。
    DCTAMER_NOLOADTAMテーブルがロードされていません。
    DCTAMER_NOOPENTAMテーブルがオープン状態ではありません。
    DCTAMER_LOGHLDTAMテーブルが論理閉塞状態です。
    DCTAMER_OBSHLDTAMテーブルが障害閉塞状態です。
    DCTAMER_ACSATLTAMサービス定義で設定したTAMテーブルのアクセス形態では実行できません。
    DCTAMER_NOREC指定されたレコードは存在しません。
    DCTAMER_EXKEYkeyに設定したキー値がTAMテーブルに存在するので,レコードの追加はできません。
    DCTAMER_LOCK排他エラーが発生しました。flagsにTP1ServerFlags.DCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間でタイムアウトが発生したため,資源を確保できませんでした。
    DCTAMER_DLOCKデッドロックが起こりました。
    DCTAMER_TBLVRUAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_FLSVRUAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
    DCTAMER_NOAREATAMテーブルに空きレコードがありません。
    DCTAMER_RECOBSレコードが破壊されています。
    DCTAMER_TRNNUMTAMサービスで管理できるトランザクション数を超えました。
    DCTAMER_OPENNUMキャラクタ型スペシャルファイルのオープン数の制限値を超えました。
    DCTAMER_ACCESSSスペシャルファイルに対するアクセス権がありません。
    DCTAMER_ACCESSFTAMテーブルファイルに対するアクセス権がありません。
    DCTAMER_MEMORYメモリが不足しました。
    DCTAMER_IO入出力エラーが発生しました。
    DCTAMER_TMERRトランザクションサービスでエラーが発生しました。
    DCTAMER_ACCESSアクセスしようとしたTAMファイルは,セキュリティ機能で保護されています。Writeメソッドを呼び出したUAPには,アクセス権限がありません。