サーバーの設定に関連するデータ
サーバー設定のクエリ へ戻る
ソフトウェア ライセンス
isc_info_svc_get_license
結果バッファ項目は、複数のデータのセットを引数として返します。 サーバー上の ib_license.dat
ファイルに含まれるソフトウェア ライセンスのそれぞれに対して、このクラスタは Certification ID および Certification Key 文字列を返します。 サーバー上に複数のライセンスがインストールされている場合、戻りバッファは、ID とキー文字列の複数のペアを格納します。 バッファ内容の末尾は、クラスタの isc_info_flag_end
値によって示されます。 次の表に、ライセンス情報に関するクラスタ識別子を示します。
引数 | 目的 | 戻り値 の長さ |
戻り値 |
---|---|---|---|
|
ソフトウェア ライセンスの Certification ID 文字列 |
2 バイト + 文字列 |
文字列 |
|
ソフトウェア ライセンスの対応するCertification Key文字列 |
2 バイト + 文字列 |
文字列 |
|
引数の終わりを |
— |
— |
サービス API を使ったクエリ: ソフトウェア ライセンス
. . . case isc_info_svc_get_license: { printf ("Software activation certificates:\n"); do { switch (*p++) { case isc_spb_lic_key: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("\tLicense Key: %s\n", buffer); free(buffer); p += path_length; break; } case isc_spb_lic_id: { path_length = (unsigned short) isc_portable_integer (p, sizeof(unsigned short)); p += sizeof (unsigned short); buffer = (char*) malloc (path_length); strncpy (buffer, p, path_length); buffer [path_length] = '\0'; printf ("\tLicense ID: %s\n", buffer); free(buffer); p += path_length; break; } } } while (*p != isc_info_flag_end); break; } . . .
サーバー設定プロパティ
Services Manager に対してサーバー上の InterBase 設定ファイルの内容をレポートするように要求することができます。 このファイルは InterBase のインストール ディレクトリにあり、すべてのプラットフォームで ibconfig
というファイル名になります。
結果バッファのクラスタは、isc_info_svc_get_config
識別子とそれに続く 2 バイトの数値データから構成されます。 後続のデータは、1 バイトの設定エントリ識別子と 4 バイトの値のペアです。 文字列値を持つ設定エントリ(たとえば TMP_DIRECTORY
)は、このクラスタでは現在サポートされていません。
設定項目のいくつかは、特定のプラットフォームにのみ対応します。 Services Manager は、Services Manager を実行している対応サーバー プラットフォームに関係する設定データだけを返します。
Services Manager は、デフォルト値に設定されている設定項目の値は返しません。
サービス API を使ったクエリ: サーバー設定情報
. . . case isc_info_svc_get_config: { unsigned short chTmp = 0, key; unsigned long len = 0, ulConfigInfo; printf ("Configuration Settings:\n"); len = (unsigned short) isc_portable_integer(p, sizeof(unsigned short)); p += sizeof(unsigned short); for (chTmp = 0; chTmp < len; chTmp++) { key = p[chTmp]; ulConfigInfo = (unsigned long) isc_portable_integer(p+ chTmp + 2, p[chTmp+1]); switch (key) { case ISCCFG_LOCKMEM_KEY: printf ("\tLock mem: %d\n", ulConfigInfo); break; case ISCCFG_LOCKSEM_KEY: printf ("\tLock Semaphores: %d\n", ulConfigInfo); break; case ISCCFG_LOCKSIG_KEY: printf ("\tLock sig: %d\n", ulConfigInfo); break; case ISCCFG_EVNTMEM_KEY: printf ("\tEvent mem: %d\n", ulConfigInfo); break; case ISCCFG_PRIORITY_KEY: printf ("\tPriority: %d\n", ulConfigInfo); break; case ISCCFG_MEMMIN_KEY: printf ("\tMin memory: %d\n", ulConfigInfo); break; case ISCCFG_MEMMAX_KEY: printf ("\tMax Memory: %d\n", ulConfigInfo); break; case ISCCFG_LOCKORDER_KEY: printf ("\tLock order: %d\n", ulConfigInfo); break; case ISCCFG_ANYLOCKMEM_KEY: printf ("\tAny lock mem: %d\n", ulConfigInfo); break; case ISCCFG_ANYLOCKSEM_KEY: printf ("\tAny lock semaphore: %d\n", ulConfigInfo); break; case ISCCFG_ANYLOCKSIG_KEY: printf ("\tany lock sig: %d\n", ulConfigInfo); break; case ISCCFG_ANYEVNTMEM_KEY: printf ("\tany event mem: %d\n", ulConfigInfo); break; case ISCCFG_LOCKHASH_KEY: printf ("\tLock hash: %d\n", ulConfigInfo); break; case ISCCFG_DEADLOCK_KEY: printf ("\tDeadlock: %d\n", ulConfigInfo); break; case ISCCFG_LOCKSPIN_KEY: printf ("\tLock spin: %d\n", ulConfigInfo); break; case ISCCFG_CONN_TIMEOUT_KEY: printf ("\tConn timeout: %d\n", ulConfigInfo); break; case ISCCFG_DUMMY_INTRVL_KEY: printf ("\tDummy interval: %d\n", ulConfigInfo); break; case ISCCFG_IPCMAP_KEY: printf ("\tMap size: %d\n", ulConfigInfo); break; case ISCCFG_DBCACHE_KEY: printf ("\tCache size: %d\n", ulConfigInfo); break; } chTmp += p[chTmp+1] + 1; } break; } . . .