Jetons de licence
Dans le Babel Licensing Service, les jetons de licence servent à gérer les licences et à suivre leur utilisation. Il existe deux types de jetons de licence : les jetons de licence flottante et les jetons d’activation de licence.
Seules les licences d’activation et les licences flottantes créent des jetons. Les licences fichier n’en créent pas, et la validation en ligne d’une licence fichier non plus.
Jetons de licence flottante
Dans le cas des licences flottantes, un jeton représente un client connecté au serveur qui utilise une licence donnée. Lorsqu’un client demande une licence, le service crée un jeton pour lui. Le jeton est libéré lorsque le client restitue la licence.
Si le client s’arrête sans libérer la licence, par exemple après un plantage ou une perte de connexion réseau, le jeton expire après l’intervalle du signal de présence (Licensing:HeartbeatInterval dans la configuration) et le poste redevient disponible.
Jetons d’activation de licence
Dans le cas de l’activation de licence, un jeton représente une machine qui a activé une licence. Le service crée le jeton lorsque la machine s’active, en même temps que la licence liée à la machine émise pour celle-ci.
Le jeton expire à la même date que la licence. Une activation perpétuelle n’expire jamais d’elle-même. Le jeton reste en place tant que la machine n’est pas désactivée. La désactivation d’une machine supprime son jeton et la licence liée à la machine, et le poste est libéré immédiatement.
Décompte des jetons
Le Babel Licensing Service limite le nombre de jetons actifs, et non le nombre de jetons émis au total. La limite provient de la licence du service lui-même :
| Édition | Jetons actifs |
|---|---|
| Server Server | 1Â 000 |
| Data Center Data Center | Illimité |
Un jeton est actif tant que sa licence n’est pas révoquée et qu’il n’a pas expiré. La révocation d’une licence retire ses jetons du décompte.
Un essai n’utilise un jeton que s’il est fourni sous forme de licence d’activation ou de licence flottante. Un essai livré sous forme de licence fichier signée avec une date d’expiration n’en utilise aucun.
Libérer des jetons
Les jetons sont libérés de plusieurs façons :
- Le client désactive la machine (activation) ou libère la licence (flottante).
- Un jeton flottant expire parce que le client a cessé d’envoyer des signaux de présence.
- La licence est révoquée ou le jeton atteint sa date d’expiration.
- Un administrateur supprime le jeton. Vous pouvez le faire depuis Babel Desktop, depuis la Management API REST ou depuis l’application web Data Center. C’est le moyen de libérer le poste d’une machine tombée en panne avant d’avoir pu être désactivée.
Limites et avertissements
Le service compare le nombre de jetons actifs à la limite de sa licence :
- À 85 % de la limite (850 pour Server), le service consigne un avertissement dans le journal et envoie à l’administrateur un e-mail « approche de la limite ».
- Lorsque les jetons actifs atteignent 105 % de la limite (1 050 pour Server), le service refuse les nouvelles activations et les nouveaux emprunts de licences flottantes. Le client reçoit l’erreur
ServerReachedMaxTokenAllowed(StatusCode.PermissionDenied) : « The server has reached the maximum number of license tokens allowed ». À ce stade, le service supprime aussi les jetons expirés et révoqués, ce qui peut ramener le décompte sous le seuil.
À partir de la version 12.0, le blocage est vérifié sur un décompte à jour à chaque activation et à chaque emprunt de licence flottante. Les versions antérieures s’appuyaient sur un décompte actualisé toutes les 5 minutes, si bien qu’une rafale de demandes pouvait dépasser brièvement le seuil. Les e-mails d’avertissement sont toujours évalués toutes les 5 minutes.
Récupérer les activations inactives
À partir de la version 12.0, le service peut libérer le poste d’une activation qui n’est plus utilisée. Cette fonctionnalité est désactivée par défaut. Pour l’activer, définissez ReclaimInactiveActivationDays dans la section Licensing de la configuration :
"Licensing": {
"ReclaimInactiveActivationDays": 90
}Le même paramètre sous forme de variable d’environnement :
BABEL_SERVICE_LICENSING__RECLAIMINACTIVEACTIVATIONDAYS=90La valeur par défaut est 0, ce qui désactive la fonctionnalité. Lorsqu’une licence a utilisé tous ses postes (MaxAllowedSites) et qu’une nouvelle machine demande à s’activer, le service examine les activations existantes. Il libère le poste de celle qui est restée le plus longtemps sans contacter le service, à condition que cette activation soit plus ancienne que le nombre de jours configuré, puis il active la nouvelle machine. Si aucune activation n’est assez ancienne, la demande échoue comme auparavant.
Une machine contacte le service lorsqu’elle valide sa licence en ligne, ce qui met à jour la date de dernier contact de son jeton, ou lorsqu’elle s’active. Le poste libéré est traité comme une désactivation : le jeton et sa licence liée à la machine sont supprimés, et la trace de licence et l’événement webhook LicenseDeactivated sont produits lorsqu’ils sont activés.
Une application qui ne valide sa licence que hors ligne, avec son fichier de licence liée à la machine, ne met jamais à jour la date de dernier contact : son poste paraît donc inactif. De plus, la récupération ne libère le poste que sur le serveur. Le fichier de licence liée à la machine de l’ancienne machine continue de fonctionner hors ligne, et l’ancienne machine échoue à sa prochaine validation en ligne avec « license not activated ».
N’activez ce paramètre que si l’application protégée valide périodiquement sa licence en ligne.
Mettre à niveau de Server vers Data Center
Si les jetons de l’édition Server ne suffisent pas, effectuez la mise à niveau vers l’édition Data Center. Le paquet du service est le même. Remplacez le fichier de licence du service par la licence Data Center et redémarrez le service. La base de données et la configuration restent inchangées.