ソフトウェアライセンスを管理する。

提供: InterBase

Isc service start() によるサービス タスクの起動 へ戻る

サービス API を使用して、ソフトウェアライセンスをインストールしたり削除することができます。 それには、クラスタ識別子 isc_action_svc_add_licenseisc_action_svc_remove_license を使用します。

次の表では、isc_action_svc_add_license および isc_action_svc_remove_license の引数一覧を示します:

引数 目的 引数の長さ 引数の値

isc_spb_lic_key

ソフトウェアライセンスを識別するキー文字列

2 バイト長 + 文字列

文字列

isc_spb_lic_id

ソフトウェア ライセンスの ID 文字列 (isc_action_svc_add_license のみ)

2 バイト長 + 文字列

文字列


ソフトウェアライセンスのリスト

証明書の情報を取得するには、isc_service_query() を、isc_info_get_license クラスタ識別子と共に使用します。

isc_service_query() での証明書情報を取得する例については、「ソフトウェア ライセンス」を参照してください。

ソフトウェアライセンスの追加

ソフトウェア ライセンスを追加するには、 Certification ID と Certification Key の両方を isc_action_svc_add_license の適切な引数に指定する必要があります。


ソフトウェアライセンスの削除

ソフトウェアライセンスを削除するには、Certification Keyだけを isc_action_svc_remove_license の適切な引数に指定する必要があります。


ライセンスの変更の有効化

同時ユーザー数の変更は、即座に有効になります。

ライセンスに対するその他の変更を有効にするには、InterBase サービスをいったん停止してから再起動する必要があります。 現在の実装では、InterBase サービスを再起動するサービス API メソッドは用意されていません。

Win32 API を使用すると、ローカル Windows ホスト上のサービスをプログラムから停止/起動できます。 サービスを停止または起動するには、Administrator か、Power Users グループのメンバーでなければなりません。

例:

Win32 API による Windows NT サービスの再起動


SC_HANDLE service;
if (!(service = OpenService(manager, "InterBaseGuardian",
SERVICE_STARTSERVICE_STOP)))
return 1;
if (!ControlService(service, SERVICE_CONTROL_STOP, NULL)) {
CloseServiceHandle(service);
return 1;
}
if (!StartService(service, 0, NULL)) {
CloseServiceHandle(service);
return 1;
}
CloseServiceHandle(service);
return 0;

上のコードは、InterBase サーバーが実行されているホスト上の、Windows サーバー プラットフォーム上でのみ動作します。 サーバーではない Windows プラットフォームでは、InterBase はアプリケーションとして実行され、ib_license.dat ファイルを読み込ませるには、手動で停止して再起動する必要があります。

UNIX 版 InterBase の Superserver 実装では、ibmgr を使って ibserver をシャットダウンして再起動する必要があります。

次は: