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にリターンします。リターンする内容を次に示します。
-
論理ファイルのブロック数
-
論理ファイルのブロック長
-
論理ファイルに対応した物理ファイル名
-
論理ファイルの現在の状態(閉塞されているかどうか)
-
DAMサービス定義で指定した論理ファイルの属性
-
DAMサービス定義で指定した論理ファイルのセキュリティ属性
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ファイルの状態を参照するのは,必要最小限にしてください。