ライセンストークン
Babel Licensing Service では、ライセンスを管理し、その使用状況を追跡するためにライセンストークンを使用します。ライセンストークンには、フローティングライセンスのトークンとライセンスアクティベーションのトークンの 2 種類があります。
トークンを作成するのは、アクティベーションライセンスとフローティングライセンスだけです。ファイルライセンスはトークンを作成せず、ファイルライセンスのオンライン検証でもトークンは作成されません。
フローティングライセンスのトークン
フローティングライセンスの場合、トークンは、サーバーに接続して特定のライセンスを使用しているクライアントを表します。クライアントがライセンスを要求すると、サービスはそのクライアントのトークンを作成します。クライアントがライセンスを返却すると、トークンは解放されます。
クライアントがライセンスを解放せずに停止した場合、たとえばクラッシュやネットワーク接続の切断の後は、ハートビート間隔(構成の Licensing:HeartbeatInterval)が経過するとトークンの期限が切れ、シートは再び使用できるようになります。
ライセンスアクティベーションのトークン
ライセンスアクティベーションの場合、トークンは、ライセンスをアクティベートしたコンピューターを表します。サービスは、コンピューターがアクティベートするときに、そのコンピューター用に発行されるノードロックライセンスとともにトークンを作成します。
トークンの期限は、ライセンスと同じ日に切れます。永久ライセンスのアクティベーションが、自動的に期限切れになることはありません。トークンは、コンピューターのアクティベーションが解除されるまで残ります。コンピューターのアクティベーションを解除すると、そのトークンとノードロックライセンスが削除され、シートはすぐに空きます。
トークンの数え方
Babel Licensing Service が制限するのは、これまでに発行されたトークンの数ではなく、アクティブなトークンの数です。上限は、サービス自体のライセンスによって決まります。
| エディション | アクティブなトークン |
|---|---|
| Server Server | 1,000 |
| Data Center Data Center | 無制限 |
トークンは、そのライセンスが失効しておらず、トークン自体の期限も切れていない間、アクティブです。ライセンスを失効させると、そのトークンはカウントから除外されます。
トライアルがトークンを使用するのは、アクティベーションライセンスまたはフローティングライセンスとして提供される場合だけです。有効期限付きの署名済みファイルライセンスとして配布されるトライアルは、トークンを使用しません。
トークンの解放
トークンは、次の方法で解放されます。
- クライアントがコンピューターのアクティベーションを解除する(アクティベーション)か、ライセンスを解放する(フローティング)。
- クライアントがハートビートの送信を停止したため、フローティングトークンの期限が切れる。
- ライセンスが失効するか、トークンが有効期限に達する。
- 管理者がトークンを削除する。これは、Babel Desktop、REST の Management API、または Data Center の Web アプリケーションから実行できます。アクティベーションを解除する前に故障したコンピューターのシートを解放するには、この方法を使います。
上限と警告
サービスは、アクティブなトークンの数を、自身のライセンスの上限と照合します。
- 上限の 85%(Server では 850)に達すると、サービスは警告をログに記録し、上限が近いことを知らせる「approaching limit」メールを管理者に送信します。
- アクティブなトークンが上限の 105%(Server では 1,050)に達すると、サービスは新しいアクティベーションとフローティングライセンスのチェックアウトを拒否します。クライアントは
ServerReachedMaxTokenAllowedエラー(StatusCode.PermissionDenied)を受け取ります。メッセージは「The server has reached the maximum number of license tokens allowed」です。この時点で、サービスは期限切れのトークンと失効済みのトークンも削除するため、カウントがしきい値を下回ることがあります。
12.0 以降では、アクティベーションとフローティングライセンスのチェックアウトのたびに、最新のカウントに対してブロックの判定が行われます。以前のバージョンでは 5 分ごとに更新されるカウントを使用していたため、要求が集中すると一時的にしきい値を超えることがありました。警告メールの判定は、引き続き 5 分ごとに行われます。
使用されていないアクティベーションの回収
12.0 以降では、サービスは、使用されなくなったアクティベーションのシートを解放できます。この機能は既定では無効です。有効にするには、構成の Licensing セクションで ReclaimInactiveActivationDays を設定します。
"Licensing": {
"ReclaimInactiveActivationDays": 90
}環境変数で同じ設定をする場合は、次のようにします。
BABEL_SERVICE_LICENSING__RECLAIMINACTIVEACTIVATIONDAYS=90既定値は 0 で、この機能は無効になります。ライセンスがすべてのシート(MaxAllowedSites)を使い切っている状態で新しいコンピューターがアクティベーションを要求すると、サービスは既存のアクティベーションを調べます。サービスへの接続が最も長く途絶えているアクティベーションが、設定した日数より古い場合、サービスはそのシートを解放してから新しいコンピューターをアクティベートします。十分に古いアクティベーションがない場合、要求はこれまでどおり失敗します。
コンピューターがサービスに接続するのは、ライセンスをオンラインで検証するとき(このとき、トークンの最終確認時刻が更新されます)と、アクティベートするときです。解放されたシートは、アクティベーション解除と同じように処理されます。トークンとそのノードロックライセンスが削除され、ライセンスのトレースと LicenseDeactivated Webhook イベントが、有効になっていれば生成されます。
ノードロックライセンスファイルに対してオフラインでのみ検証するアプリケーションは、最終確認時刻を更新しないため、そのシートは使用されていないように見えます。また、回収によって解放されるのは、サーバー上のシートだけです。古いコンピューターのノードロックライセンスファイルはオフラインでは引き続き機能し、古いコンピューターは次回のオンライン検証で「license not activated」で失敗します。
この設定は、保護対象のアプリケーションが定期的にオンラインで検証する場合にのみ有効にしてください。
Server から Data Center へのアップグレード
Server エディションのトークンでは足りない場合は、Data Center エディションにアップグレードします。サービスのパッケージは同じです。サービスのライセンスファイルを Data Center のライセンスに置き換えて、サービスを再起動します。データベースと構成はそのまま使えます。