Distributed Tuning Interface Guide
以下のトピックでは、Zen Distributed Tuning Interface について紹介します。
「Distributed Tuning Interface のリファレンス」へ直接移動して、Zen で DTI を使用する方法の詳細を参照することもできます。
Distributed Tuning Interface の概要
Distributed Tuning Interface(DTI)の目的は、Zen コンポーネントの設定、監視、および診断のためのアプリケーション プログラミング インターフェイスを提供することにあります。
メモ:簡潔にするため、本ドキュメントのこれ以降、全体を通して Distributed Tuning Interface は DTI と記載します。
文字列引数のエンコード
ユーザー アプリケーションは、API レベルではクライアントの OS エンコードを使用します。DTI は、サーバーおよびクライアント上の OS エンコード間の相違について内部的に対処します。
古いバージョンのクライアントがサーバーと通信している場合、データベース エンジンでは、そのクライアントで使用しているエンコードとサーバーで使用可能なエンコードに互換性があるものと想定しています。
API カテゴリ
利用可能な API のカテゴリは、表
2 の
「DTI 関数グループ」に要約されています。
実行権限
通常、DTI アプリケーションでしたいことと言えば、DTI 関数のいずれかを呼び出すことと、すべての設定を表示したり変更したりすることでしょう。このフル アクセスを確保するには、サーバー マシン上で管理者レベルの権限を持つユーザーの名前とパスワードを提供することにより、サーバーに接続します。これは、DTI アプリケーションがターミナル サービス セッションを介してローカルで実行されている場合、あるいはリモートで実行されている場合に適用されます。ローカルで実行されているアプリケーションでは、ユーザー名とパスワードを省略できます。省略しても、任意の DTI 関数の呼び出しや、すべての設定の表示および変更は行えます。
DTI を使ってサーバーへの接続を行うを参照してください。
管理者レベルの権限がない場合、ターミナル サーバー セッションを介してローカルで実行されているアプリケーションやリモートで実行されているアプリケーションは、ほとんどの DTI 関数に対してアクセス エラーを返します。関数のサブセットのみが動作します。たとえば、フル アクセスが許可されている場合に設定を変更できる関数の多くは、読み取り専用のアクセスに制限されます。
DTI の基本的な使用法
ヘッダー ファイル
DTI 関数は次のヘッダー ファイルに定義されています。
•btitypes.h
•catalog.h
•config.h
•connect.h
•ddf.h
•dticonst.h
•dtilicense.h
•dtisecurity.h
•monitor.h
リンク ライブラリ
次の表は、DTI のリンク ライブラリと、そのライブラリが最初に利用できるようになったリリース バージョンの一覧です。表で定義されているように、アプリケーションを適切なライブラリにリンクします。
表 1 Windows、Linux、および macOS 用の DTI リンク ライブラリ
ライブラリ1 | Windows | Linux | macOS | ライブラリを最初に利用可能なバージョン |
---|
w3dbav90.lib2 | 32 ビット | | | PSQL v9.0 |
w64dba.lib | 64 ビット | | | PSQL v10.0 |
w3dbav80.lib2 | 32 ビット | | | Pervasive.SQL V8.0 |
w3dbav78.lib2 | 32 ビット | | | Pervasive.SQL 2000i (SP3) |
w3dbav75.lib2 | 32 ビット | | | Pervasive.SQL 2000 |
libpsqldti.so | | 32 ビット | | Pervasive.SQL V8.6 |
libpsqldti.so | | 64 ビット | | PSQL 10.10 |
libpsqldti.dylib | | | 64 ビット | PSQL v12.01 |
1 ライブラリはすべて Microsoft Visual Studio 2015 でコンパイルされています。 2 各 32 ビット ライブラリは、それ以前のライブラリの上位集合です。たとえば、w3dbav90.lib は w3dbav75.lib、w3dbav78.lib、および w3dbav80.lib の上位集合です。 |
関数を呼び出す前に
DTI を呼び出す場合は、まず
「PvStart()」 関数を呼び出す必要があります。その後、セッションを終了するまでに複数の DTI 関数を呼び出すことができます。
セッションを終了するときは、
「PvStop()」 関数を呼び出してセッションを閉じる必要があります。
DTI のサンプル プログラム
DTI アクセス方法のためのランタイム ファイルは、デフォルトで Zen データベース エンジンおよび Zen クライアントと一緒にインストールされます。DTI アプリケーションを作成するためには、少なくとも Zen クライアントが必要です。
ヘッダー ファイルとサンプル ファイルは AG-TECH PSQL Library からダウンロードできます。特定の開発環境に関するサンプル ファイルは、次の表に示すように別々のディレクトリにインストールされます。
開発環境 | 場所 |
---|
MS Visual C++ 8 | <インストール ディレクトリ>\SAMPLES\MSVC2005 |
MS Visual C++ 7 | <インストール ディレクトリ>\SAMPLES\MSVC2003 |
MS Visual C++ 6 | <インストール ディレクトリ>\SAMPLES\MSVC |
Delphi 5 | <インストール ディレクトリ>\SAMPLES\DELPHI5 |
詳細については、Zen データベース エンジンと一緒にインストールされる DTI 用のリリース ノート(readme_dti.htm)を参照してください。
DTI を使用する一般的なタスク
ここでは、DTI でよく使用される主要なタスクを説明します。
DTI を使ってサーバーへの接続を行う
サーバーへの接続ハンドルを取得する手順を説明します。多くの DTI 関数にとって、これは最初の手順です。
►サーバーへの接続ハンドルを取得するには
1 DTI セッションを開始します。
BTI_LONG status = 0;
status = PvStart(0);
2 サーバーに接続します。
BTI_LONG status = 0;
BTI_CHAR_PTR uName = "jsmith";
BTI_CHAR_PTR pword = "123";
BTI_CHAR_PTR svrName = "myserver";
BTI_LONG hConn = 0xFFFFFFFF;
status = PvConnectServer(svrName, uName, pword, &hConn);
接続ハンドルは多くの DTI 関数で必要となります。同時に複数の接続を開くことができます。ただし、それぞれの接続または関数について、PvDisconnect() 関数を呼び出してハンドルを解放する必要があります。
status = PvDisconnect(phConn);
DTI を使って設定 ID を取得する
設定関数の多くは、パラメーターとして設定 ID を使用します。次の手順は、設定 ID を取得するために必要不可欠な関数について説明します。
►特定の設定の ID を取得するには
4 必要な設定を精査します。
DTI 構造体をパラメーターとして渡す
多くの関数で、関数呼び出しを行うときに DTI 構造体を渡すことが要求されます。以下のサンプル コードでは、構造体を含む関数呼び出しの例を示します。DTI 構造体の詳細については、
「DTI 構造体」を参照してください。
WORD rValue = P_OK;
WORD tableCount;
rValue = PvGetTableNames(m_DictHandle, &tableList, &tableCount);