dc_tam_open

名称

TAMテーブルのオープン

形式

ANSI C ,C++の形式

#include <dctam.h>
DCLONG  dc_tam_open(char *tblname,DCLONG flags)

K&R版 C の形式

#include <dctam.h>
DCLONG  dc_tam_open(tblname,flags)
char        *tblname;
DCLONG      flags;

機能

TAMテーブルをオープンします。dc_tam_open関数は,トランザクション内でもトランザクション外でも呼び出せます。

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

dc_tam_open関数がエラーリターンした場合は,この関数内で確保した資源はすべて解放して,関数を呼び出す前の状態に戻ります。

UAPで値を設定する引数

●tblname

オープンするTAMテーブル名を設定します。TAMテーブル名は32文字以内で設定して,文字列の最後にはヌル文字を付けてください。

●flags

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

〔{DCTAM_TBL_EXCLUSIVE〔|{DCTAM_WAIT|DCTAM_NOWAIT}〕|DCTAM_REC_EXCLUSIVE}〕

このフラグの設定を省略した場合は,DCTAM_NOWAITが仮定されます。

DCTAM_WAIT…排他解除待ちをします。
DCTAM_NOWAIT…待たないで,エラーリターンします。

flagsに設定する値と,設定内容の関係について,次に示します。

フラグ11フラグ22flagsの設定内容
TBL_EXCLUSIVEWAITテーブル排他,排他エラー時は解除待ち
NOWAITテーブル排他,排他エラー時はエラーリターン
REC_EXCLUSIVE×レコード排他
(凡例)
×:設定できません。
注※1
省略した場合は,REC_EXCLUSIVEが仮定されます。
注※2
省略した場合は,NOWAITが仮定されます。

リターン値

リターン値リターン値(数値)意味
正の整数テーブル記述子を示します。
DCTAMER_PARAM_TBL-1701tblnameに設定した値が間違っています。
DCTAMER_PARAM_FLG-1708flagsに設定した値が間違っています。
DCTAMER_NOTTAM-1709tblnameに設定したテーブルはTAMテーブルではありません。
DCTAMER_UNDEF-1710TAMテーブルが定義されていません。
DCTAMER_TAMEND-1720TAMサービスが終了中です。
DCTAMER_PROTO-1721TAMテーブルへアクセスする順序が間違っています。
UAPにリンケージしているトランザクション制御用オブジェクトファイルのリソースマネジャ登録が間違っています。
または,UAPにトランザクション制御用オブジェクトファイルをリンケージしていません。
関数を呼び出したUAPのユーザサービス定義に,トランザクション属性なし(atomic_update=N)を指定しています。
DCTAMER_NOLOAD-1724TAMテーブルがロードされていません。
DCTAMER_OPENED-1725TAMテーブルがオープン済みです。
DCTAMER_LOGHLD-1727TAMテーブルが論理閉塞状態です。
DCTAMER_OBSHLD-1728TAMテーブルが障害閉塞状態です。
DCTAMER_LOCK-1736排他エラーが起こりました。flagsにDCTAM_WAITを設定した場合,ロックサービス定義で指定した待ち時間のタイムアウトのため,資源を確保できませんでした。
DCTAMER_DLOCK-1737デッドロックが起こりました。
DCTAMER_TBLVR-1760UAPが,現在稼働しているTAMテーブルでは動作できないバージョンのTAMライブラリと結合されています。
DCTAMER_FLSVR-1761UAPが,現在稼働しているOpenTP1ファイルサービスでは動作できないバージョンのTAMライブラリと結合されています。
DCTAMER_TAMVR-1762UAPが,現在稼働しているTAMサービスでは動作できないバージョンのTAMライブラリと結合されています。
DCTAMER_RECOBS-1764レコードが破壊されています。
DCTAMER_TRNNUM-1765TAMサービスで管理できるトランザクション数を超えています。
DCTAMER_OPENNUM-1766キャラクタ型スペシャルファイルのオープン数の制限値を超えています。
DCTAMER_ACCESSS-1767スペシャルファイルに対するアクセス権がありません。
DCTAMER_ACCESSF-1768TAMファイルに対するアクセス権がありません。
DCTAMER_MEMORY-1769メモリが不足しました。
DCTAMER_IO-1770入出力エラーが起こりました。
DCTAMER_TMERR-1771トランザクションサービスでエラーが起こりました。
DCTAMER_NO_ACL-1772オープンしようとしたTAMファイルは,セキュリティ機能で保護されています。該当するファイルに対するACLがありません。