Licensing
Overview
Prior to Universal Agent 6.9.0.0, licenses for individual Agent components were stored in their respective configuration files. Aside from verifying that the license information was valid (that is, the individual license parameters were capable of generating a key at runtime that matched the configured license key), no enforcement of license counts was done.
Universal Agent 6.9.0.0 provides a new method for managing license information which simplifies license administration and improves license enforcement.
The updated license management provided by Universal Agent 6.9.0.0 integrates seamlessly with existing Universal Controller-based deployments.
Universal Agent customers that do not use Universal Controller to schedule and execute their automated workloads can deploy Universal Controller for Agent Management (UCAM) to take advantage of centralized license management.
Note
For Agents not connected to a Controller or UCAM, or for Agents that connect to a pre-6.9.x Controller, the Licensing method remains as it was for version 6.8.x.
Acquiring a License
The license acquisition process is the means by which a Universal Agent resolves the source of its license information.
A license's source will be either:
- a remote license, obtained from the Universal Controller (or UCAM).
- a local license, obtained from the Universal Agent's configuration files.
Note
A Universal Agent eventually will be required to obtain its license information from a Universal Controller or UCAM installation. Support for locally-configured license information will be removed at that time.
Agent Start-up
When Universal Agent starts, the Universal Broker begins by caching the information that exists in all local configuration files. Locally-configured license information is part of this cached information. This functionality has existed for some time, and enables the Broker to serve as the Agent's configuration manager.
Starting with Universal Agent 6.9.0.0, the Broker not only caches the locally-configured license information, it also maps the information to values that are equivalent to those the Agent might receive from Universal Controller.
Note
At this point, license acquisition is not complete. The Universal Agent does not have all the information it needs to determine whether it should proceed with this local license information or wait for a remote license (i.e., the license source is unresolved).
Later in Universal Broker start-up processing, it may attempt to start the UAG Server. At this point, Universal Broker makes a determination as to whether it should expect to receive a Controller license. The Universal Agent expects to receive a remote license when the following conditions are met:
The auto_start value in the UAG Server’s Component Definition is set to yes.
The oms_servers value in the UAG Server’s configuration contains a value. (The Broker cannot know whether this value will result in a successful OMS connection. It only knows that the UAG Server will attempt the connection.)
When a Remote License Is Expected
When the Agent expects to receive a Controller license, the license remains in an un-acquired state until the UAG Server receives a HELLO message response. If the UAG Server never gets a HELLO response – perhaps the oms_servers value is bad, OMS is not running, or licensed agent counts are exceeded for a pre-6.9.0.0 Controller – the license remains in an un-acquired state.
When the HELLO response is received, the license is acquired.
Note
The license that UAG Server receives does not have to be a 6.9.0.0 license, nor does it actually have to grant the Agent authorization to run licensed work.
It only matters that a HELLO response is received and the Agent now can confirm that the license’s source is resolved and license acquisition is complete.
When No Remote License Is Expected
When the Broker determines that it should not expect to receive a Controller license at start-up, the Broker changes the license’s state to acquired and the locally configured license information is used.
Note
Even if the Broker does not expect to receive a Controller license at start-up, it still may eventually receive a Controller license at some point.
If the Broker receives a Controller 6.9.0.0 or later license, the license values being enforced will change and will be applied against any new work that starts.
It is possible for a Broker to replace locally-configured license information with a Controller license, but the reverse can never happen. That is, once a Controller license is acquired, the Broker will never use locally-configured license information.
Managing License Expiration
Managing Expiration Dates for Universal Controller Licenses
When a Universal Agent obtains a license from a Universal Controller (or UCAM), the single expiration date is applied to all licensed Agent components.
License Expiration for Active Agent
The Universal Broker executes a daily check on the license’s expiration date. Starting 30 days prior to a license’s expiration, Universal Broker will issue the following message when it performs its periodic check on the license:
UNV0130W [] Product license expires in nn day(s). Contact Stonebranch, Inc. for license renewal.
Individual licensed components also will display this message at start-up.
When the expiration date elapses, Universal Broker must ensure that no new work can start on that Universal Agent instance. Universal Broker and any auto-started components will continue to run, but any requests to start new work will fail upon a check of the license’s expiration date.
When a license expires, you can expect to see the following message in the Universal Broker log and from licensed components:
UNV0129E [] License is expired. Contact Stonebranch, Inc. for license renewal.
Universal Agents do not change state when a Universal Controller’s license expires. Any “online” Agents will continue to show online after the license expires.
License Expiration at Agent Start-up
Universal Agents that connect to a Universal Controller whose license is expired still will receive a HELLO response. The Agent will be granted the license provided that the number of licensed Agents is not exceeded.
However, when a Controller’s license expires, it will enter a paused state, which will prevent any Universal Agent task execution. After a new license is applied, you must select the Controller’s Server Operations option and execute the Resume Cluster Node task.
Managing Expiration Dates for Local Licenses
If a Universal Agent does not receive a remote license from Universal Controller (or UCAM), individual expiration dates specified in local configuration files are still applied to their respective components just as they were prior to 6.9.0.0.
When locally-configured licenses are used, the Broker does not perform a daily check of license expiration dates. Expired licenses are only detected and enforced when the respective component is executed.