分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編

[目次][索引][前へ][次へ]

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

リターン値

リターン値 リターン値(数値) 意味
正の整数 テーブル記述子を示します。
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がありません。