Distributed Tuning Interface のリファレンス
DTI の目的は、PSQL コンポーネントの設定、監視、および診断を行うためのインターフェイスを提供することにあります。DTI によって、お使いのアプリケーションから PSQL ユーティリティの機能を利用できるようになります。
以下のトピックでは、インターフェイスとその使用法について説明します。
DTI 関数リファレンスの使い方
各関数に関して、以下の情報を提供します。
DTI 関数グループ
Distributed Tuning Interface はいくつかの関数グループに分けられています。グループ分けの要約については、次の表を参照してください。それぞれの関数の説明は、後述のセクションでアルファベット順に示します。
DTI エラー メッセージ
定義されているステータス コードについては、dticonst.h および ddfstrct.h を参照してください。
DTI 構造体
DTI で使用される構造体について、以下に説明します。各構造体グループでは、含まれる構造体のタイプ、および必要となる設定や引数について詳細に説明します。構造体は以下のファイルに格納されています。
各構造体に固有の情報については、その構造体に対応するヘッダー ファイルを参照してください。
CONFIG.H 構造体
以下に CONFIG.H に含まれる構造体の一覧を示します。これらの構造体の詳細については、config ヘッダー ファイルを参照してください。
DDFSTRCT.H 構造体
以下に DDFSTRCT.H に含まれる構造体の一覧を示します。これらの構造体の詳細については、ddf ヘッダー ファイルを参照してください。
B_FLAG_TRUE_NULLABLE = 64
テーブルは真のヌル値を許可します。テーブルが作成されるとき、ヌル値を許可する各列の前に 1 バイトのヌル インジケーターが追加されます。
B_FLAG_CASE_SENSITIVE = 1
列の値は、比較する際、つまりインデックス セグメントの一部として比較する際に大文字と小文字が区別されます。
B_FLAG_NULLABLE = 4
真のヌル値を許可するようにテーブルを作成すると、列の値がヌルであるかどうかを示すために、列の値の前に 1 バイトのヌル インジケーターが追加されます。
B_FLAG_NTEXT = 2048
列が B_TYPE_BLOB として作成されている場合、データは文字データではなくワイド文字として扱われます。
B_FLAG_BINARY = 4096
列が B_TYPE_STRING または B_TYPE_BLOB として作成されている場合、データは文字データではなくバイナリとして扱われます。
COLUMNMAP データ型は以下の値を取ります。
B_TYPE_STRING = 0,
B_TYPE_INTEGER = 1,
B_TYPE_FLOAT = 2,
B_TYPE_DATE = 3,
B_TYPE_TIME = 4,
B_TYPE_DECIMAL = 5,
B_TYPE_MONEY = 6,
B_TYPE_LOGICAL = 7,
B_TYPE_NUMERIC = 8,
B_TYPE_BFLOAT = 9,
B_TYPE_LSTRING = 10,
B_TYPE_ZSTRING = 11,
B_TYPE_NOTE = 12,
B_TYPE_LVAR = 13,
B_TYPE_BINARY = 14,
B_TYPE_AUTOINC = 15,
B_TYPE_BIT = 16,
B_TYPE_NUMERSTS = 17,
B_TYPE_NUMERSA = 18,
B_TYPE_CURRENCY = 19,
B_TYPE_TIMESTAMP = 20,
B_TYPE_BLOB = 21,
B_TYPE_GDECIMAL = 22,
B_TYPE_WSTRING = 25,
B_TYPE_WZSTRING = 26,
B_TYPE_GUID = 27,
B_TYPE_DATETIME = 30
B_FLAG_DUPLICATES = 1
インデックスでの重複を許可します。
B_FLAG_MODIFIABLE = 2
インデックスの変更が可能です。
B_FLAG_SORT_DESCENDING = 64
インデックスを降順にソートします。
B_FLAG_PARTIAL = 512
インデックスは部分的です。セグメント上の部分インデックス フラグがインデックスの最後のセグメントではない場合、その部分インデックス フラグは無視されます。部分インデックスが適用されるのは、インデックスの最後のセグメントのみです。
TABLESTAT2 と TABLESTAT の相違点
新しい TABLESTAT2 構造体と TABLESTAT 構造体との間の以下の相違点に注意してください。
tableName および tableLocation のフィールドでは以前より多い文字数が使用できます。
numberOfRecords フィールドは 16 ビットから 32 ビットに増大しました。
freespaceThreshold フィールドは整数データ型になりました。
fileVersion フィールドは、浮動小数点数型ではなくなりました。現在は 1 バイトの整数で、Btrieve の STAT オペレーションが返すのと同じ値を保持します。9.5 ファイル形式では、この値は 0x95 を返します。
新しいフィールドの pageCompression は、テーブルに関連付けられている物理ファイルに圧縮ページがあるかないかを示します。
以前の dataCompression および systemDataKey は、それぞれ recordCompression および systemData という名前に変更されました。
以前のバージョンとの互換性
PSQL クライアントは、今までどおりデータベース エンジンへの PvGetTableStat 呼び出しを行うことができます。データベース エンジンは、クライアントのバージョンに基づいて、応答メッセージを TABLESTAT2 構造体または TABLESTAT 構造体に変換します。
PSQL クライアントは、接続しているデータベース エンジンのバージョンを特定します。データベース エンジンのバージョンが現在のリリースより前の場合、PvGetTableStat2 は TABLESTAT 構造体を返し、pageCompression が返す値に 0 を設定します。
MONITOR.H 構造体
以下に MONITOR.H に含まれる構造体の一覧を示します。これらの構造体の詳細については、monitor ヘッダー ファイルを参照してください。
DTI 呼び出しの順序
すべての Distributed Tuning Interface 呼び出しは、まず PvStart() を呼び出すことによって DTI セッションを初期化しておく必要があります。
 
status = PvStart(0);
 
// ここに、複数の DTI 関数呼び出しを挿入します
 
status = PvStop (0);
各関数の備考には、その特定の関数に対し、実行前および実行後に必要となる条件が挙げられています。
DTI 関数の定義
このトピックでは、DTI 関数のリファレンスをアルファベット順で提供します。