License Tokens
In the context of the Babel Licensing Service, license tokens are used to manage licenses and track their usage. There are two types of license tokens: floating license tokens and license activation tokens.
Only activation and floating licenses create tokens. File licenses do not, and neither does the online validation of a file license.
Floating License Tokens
In the case of floating licenses, a token represents a client that is connected to the server and using a specific license. When a client requests a license, the service creates a token for it. The token is released when the client checks the license back in.
If the client stops without releasing the license, for example after a crash or a lost network connection, the token expires after the heartbeat interval (Licensing:HeartbeatInterval in the configuration) and the seat becomes available again.
License Activation Tokens
In the case of license activation, a token represents a machine that has activated a license. The service creates the token when the machine activates, together with the node-locked license issued for that machine.
The token expires on the same date as the license. A perpetual activation never expires on its own. The token stays until the machine is deactivated. Deactivating a machine deletes its token and the node-locked license, and the slot is free immediately.
How tokens are counted
The Babel Licensing Service limits the number of active tokens, not the number of tokens ever issued. The limit comes from the license of the service itself:
| Edition | Active tokens |
|---|---|
| Server Server | 1,000 |
| Data Center Data Center | Unlimited |
A token is active while its license is not revoked and the token has not expired. Revoking a license removes its tokens from the count.
A trial uses a token only if it is delivered as an activation or floating license. A trial shipped as a signed file license with an expiry date uses none.
Freeing tokens
Tokens are freed in these ways:
- The client deactivates the machine (activation) or releases the license (floating).
- A floating token expires because the client stopped sending heartbeats.
- The license is revoked or the token reaches its expiry date.
- An administrator deletes the token. You can do this from Babel Desktop, from the REST management API or from the Data Center web application. It is the way to free the slot of a machine that died before it could be deactivated.
Limits and warnings
The service checks the number of active tokens against the limit of its license:
- At 85% of the limit (850 for Server), the service logs a warning and sends an âapproaching limitâ email to the administrator.
- When active tokens reach 105% of the limit (1,050 for Server), the service refuses new activations and floating checkouts. The client receives the
ServerReachedMaxTokenAllowederror (StatusCode.PermissionDenied): âThe server has reached the maximum number of license tokens allowedâ. At this point the service also deletes expired and revoked tokens, which may bring the count back under the threshold.
Starting with 12.0, the block is checked against a fresh count at every activation and floating checkout. Earlier versions relied on a count refreshed every 5 minutes, so a burst of requests could briefly exceed the threshold. The warning emails are still evaluated every 5 minutes.
Reclaiming inactive activations
Starting with 12.0, the service can free the seat of an activation that is no longer used. It is disabled by default. To turn it on, set ReclaimInactiveActivationDays in the Licensing section of the configuration:
"Licensing": {
"ReclaimInactiveActivationDays": 90
}The same setting as an environment variable:
BABEL_SERVICE_LICENSING__RECLAIMINACTIVEACTIVATIONDAYS=90The default is 0, which disables the feature. When a license has used all its seats (MaxAllowedSites) and a new machine asks to activate, the service looks at the existing activations. It frees the seat of the one that has gone the longest without contacting the service, provided that activation is older than the configured number of days, and then activates the new machine. If no activation is old enough, the request fails as before.
A machine contacts the service when it validates its license online, which updates the last-seen time of its token, or when it activates. The freed seat is handled like a deactivation: the token and its node-locked license are removed, and the license trace and the LicenseDeactivated webhook event are produced when they are enabled.
An application that validates only offline against its node-locked license file never updates the last-seen time, so its seat looks inactive. Also, reclaiming only frees the seat on the server. The node-locked license file of the old machine keeps working offline, and the old machine fails its next online validation with âlicense not activatedâ.
Enable this setting only if the protected application validates online periodically.
Upgrading from Server to Data Center
If the tokens of the Server edition are not enough, upgrade to the Data Center edition. The service package is the same. Replace the service license file with the Data Center license and restart the service. The database and the configuration stay as they are.