SRC License Server Overview
About the SRC License Server
The SRC license server manages server licenses for the SAE by using Common Object Request Broker Architecture (CORBA) to communicate with its client SAEs.
The SAE retrieves its licensing configuration properties from the SRC directory at startup. The license manager for an SAE maintains the licenses for that SAE and communicates with the license server to obtain more licenses or return unused licenses. You can configure properties specific to each SAE license manager.
The server license includes a license key signature, customer name, expiration date, number of concurrent active service sessions, a CORBA reference for the license server, and other attributes.
The CORBA reference enables the license server’s SAE clients to locate the server to obtain a license unit. (A license unit is also referred to as a lease.) The SAE disregards who activates service sessions and simply monitors the number of active service sessions.
License Server Errors
If the license checking process does not discover a valid license, it logs an error message and terminates itself. This check can take a while to finish; on a slow server at the first start after an installation, it can take up to several minutes.
You may wish to look at the information log during the startup for a message declaring a missing license or indicating that the SAE startup has been completed.
When the license server receives a request for a lease from the SAE, the license server calculates the number of leases in use if the request is granted and compares that value to a limit specified in the license:
When the new total is below the limit, the license server grants the requested lease to the client.
If the new total exceeds the limit, the license server grants leases up to the amount available.
If the current total exceeds the license limit, the license server denies all requests.
On startup, client SAEs search for a valid license in the LDAP object cn=@License, ou=licSvr, ou=Licenses, o=Management, <base>. If the SAE finds a valid license that includes a reference to the license server (license.server.corbaloc property), then before it activates new service sessions the SAE contacts the license server to lease a license unit. The SAE request includes the name of a virtual router that it associates with service sessions.
When a lease is granted, it specifies the:
Service-session-unit-size—Number of active service sessions
Lease duration—Length of time allotted to a grant
Allocation threshold—A percentage of the license service-session-unit-size that defines how many licenses are available for allocation
Release threshold—A percentage of the license service-session-unit-size that defines when a lease is released
The license server stores the number of granted license units associated with each virtual router name in an internal table.
Because license leases are allocated in advance of actual need, a license is available when a subscriber tries to activate a service. The SAE requests an additional license lease when the number of active service sessions on a particular virtual router reaches the allocation threshold.
Example: License Allocation
This example shows how the SAE requests another lease when its current lease reaches a specified threshold. For a service-session-unit-size of 50 and an allocation threshold of 90%, the SAE requests a second lease when the number of active service sessions reaches 45 (50 x 90%). Once the lease is granted, if the active service sessions continue to increase, the SAE requests another lease when the number of active service sessions reaches 95, and again at 145.
Example: License Release Example
License units are released as active service sessions decrease, with the SAE retaining more licenses than it currently needs to avoid fluctuation around the threshold. For example, a lease has a service-session-unit-size of 50, a release threshold of 10%, and four license chunks (200 licenses) allocated to the SAE. In this case:
If the number of active service sessions drops to 105, the fourth license unit is released, leaving three units and 150 licenses.
If the number of active service sessions drops to 55, the third license unit is released, leaving two units and 100 licenses.
If the number of active service sessions drops to 5, the second license unit is released, leaving one unit and 50 licenses.
The SAE renews a lease every one-third of the lease duration even if the number of active service sessions stays in the same range. If the SAE cannot renew the lease for any reason (such as a network failure) before the lease expires, the SAE releases the lease and does not accept new service sessions until it receives a new grant from the license server. While in this state, the SAE logs an error message for each request and returns the same message through the API. The message includes the service name, subscriber, and reason for rejection.
Directory Location and Access
Server licenses are stored in the directory entry cn=@License, ou=licSvr, ou=Licenses, ou=Configuration, o=Management, <base>. The authentication distinguished name (DN) and password needed to access the license object are stored in the /opt/UMC/licsvr/etc/bootstrap.properties file. The license server reads its configuration properties from the object (default) l=config, l=LICSVR, ou=staticConfiguration, ou=Configuration, o=Management, <base>.
The license server reads the license from the SRC directory at startup. The license server continues to poll the directory to check for updated licenses. The master license is cn=@License. The license server does not accept client requests without the master license. You can add more licenses to increase the limit on the number of service sessions. Adding these licenses does not require restarting the license server.