Hitachi

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


dc_dam_status

〈このページの構成〉

名称

論理ファイルの状態の参照

形式

ANSI C ,C++の形式

#include <dcdam.h>
int  dc_dam_status(char *lfname,struct DC_DAMSTAT *stbuf,
                   int phyfilno,DCLONG flags)

K&R版 C の形式

#include <dcdam.h>
int  dc_dam_status(lfname,stbuf,phyfilno,flags)
char       *lfname;
struct  DC_DAMSTAT  *stbuf;
int        phyfilno;
DCLONG     flags;

機能

論理ファイルの現在の状態を,構造体C_DAMSTATにリターンします。リターンする内容を次に示します。

dc_dam_status関数は,dc_dam_open関数で論理ファイルをオープンする前でも,オープンしたあとでも呼び出せます。

論理ファイルの状態を参照するときは,論理ファイル名を設定します。

UAPで値を設定する引数

●lfname

論理ファイル名を,1〜8バイトの名称で設定します。

●stbuf

論理ファイルの状態を受け取る構造体 DC_DAMSTATのアドレスを設定します。構造体には,dc_dam_status関数に設定した論理ファイルの状態が返されます。

●phyfilno

DAMサービスで使う領域です。ヌル文字(0)を設定します。

●flags

DCNOFLAGSを設定します。

OpenTP1から値が返される引数

●stbuf

論理ファイルの状態を示す情報が,構造体 DC_DAMSTATで返されます。構造体の形式は次のとおりです。

struct  DC_DAMSTAT {
                    int   st_block_len;
                    int   st_block_num;
                    char  st_file_ph_name[64];
                    char  st_file_stat;
                    char  st_file_def;
                    char  st_file_sec;
                    char  st_filler_1;
                    int   st_file_inf;
                    };
  • st_block_len

    論理ファイルのブロック長が返されます。

  • st_block_num

    論理ファイルのブロック数が返されます。

  • st_file_ph_name

    論理ファイルに対応した物理ファイル名が返されます。

  • st_file_stat

    論理ファイルの現在の状態が,次に示す値のどれかで返されます。

    DCDAM_ST_NOT_HOLD … 論理ファイルへアクセスできます。

    DCDAM_ST_HOLD_LOG … 論理ファイルは,論理閉塞されています。

    DCDAM_ST_HOLD_OBS … 論理ファイルは,障害閉塞されています。

    DCDAM_ST_HOLD_REQ … 論理ファイルへ閉塞要求中です。

  • st_file_def

    DAMサービス定義で指定した論理ファイルの属性が,次に示す値のどれかで返されます。

    DCDAM_ST_QUICK…ディファード更新処理の対象でないDAMファイルです。

    DCDAM_ST_DEFERRED… ディファード更新処理対象のDAMファイルです。

    DCDAM_ST_NORECOVER… 回復対象外のDAMファイルです。

    DCDAM_ST_CACHELESS…キャッシュレスアクセス指定の回復対象外のDAMファイルです。

  • st_file_sec

    DAMサービス定義で指定した論理ファイルのセキュリティ属性が,次に示す値のどれかで返されます。

    DCDAM_ST_NON… セキュリティの指定はありません。

    DCDAM_ST_SEC… セキュリティの指定があります。

  • st_filler_1

    予備領域1(ヌル文字(0)が設定されます)。

  • st_file_inf

    予備領域2(-1が設定されます)。

リターン値

リターン値

リターン値(数値)

意味

DC_OK

0

構造体DC_DAMSTATに,論理ファイルの状態を正常に設定しました。

DCDAMER_PROTO

-1600

dc_rpc_open関数を呼び出していません。

ユーザサービス定義のatomic_updateオペランドの指定が'N'になっています(回復対象のDAMファイルにアクセスした場合だけリターンされます)。

dc_dam_start関数を呼び出していません(回復対象外のDAMファイルにアクセスした場合だけリターンされます)。

DCDAMER_UNDEF

-1601

lfnameに設定した論理ファイル名は定義されていません。

DCDAMER_NOMEM

-1607

メモリが不足しました。

DCDAMER_PARAM_LFNAME

-1610

lfnameに設定した論理ファイル名が間違っています。

DCDAMER_PARAM_FLAGS

-1611

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

DCDAMER_PARAM_ERROR

-1612

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

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

DCDAMER_VERSION

-1618

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

DCDAMER_ACCESS

-1628

状態を参照しようとしたDAMファイルは,セキュリティ機能で保護されています。dc_dam_status関数を呼び出したUAPには,アクセス権限がありません。

DCDAMER_NO_ACL

-1646

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

注意事項

dc_dam_status関数を呼び出すと,DAMサービスは情報を取得するための排他制御をします。そのため,dc_dam_status関数を頻繁に使うと,排他解除待ち時間が発生してスループットが低下することがあります。オンライン中にDAMファイルの状態を参照するのは,必要最小限にしてください。