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