Activation in TIBCO Streaming and Model Management Server

Overview

TIBCO® Streaming requires activation via a license to start. Activation is required when running an application in development, unless the application is being run in a StreamBase Studio IDE. If the application is exported for testing, then it requires activation. All production deployments use application archives. Activation is enabled during installation of these archives.

Activation Configuration

If you want to customize the license validation behavior, you need to specify an Activation Configuration. See the sections below for more information on format and details.

If the activation configuration is not specified, then the node uses a default activation configuration. By default, the configuration uses a local license directory located in the user's home directory in the fixed location:

  • Windows: %USERPROFILE%/.tibco-streaming/licenses

  • macOS or Linux: $HOME/.tibco-streaming/licenses

If you want to customize the activation configuration, then specify an activation configuration as given in the sections below.

Activation Configuration Format and Properties

The following is a description of all activation configuration properties:

localLicenseDirectory

TIBCO recommends using In-Product Activation instead of the TIBCO Activation Service to activate your product. Once you generate a license file, you activate your product instance by copying that file into a local license directory, described by this property. This property is optional and its default value is:

  • Windows: %USERPROFILE%/.tibco-streaming/licenses

  • macOS or Linux: $HOME/.tibco-streaming/licenses

This property is mutually exclusive with the activationServiceURLs property.

activationServiceURLs

The activationServiceURLs property defines a list of URLs that identify TIBCO Activation Service instances to which the node will contact during license activation. See the TIBCO Activation Service documentation for information on how to get these URLs.

This property is optional and has no default value. If no URLs are defined, then the node uses license files in a local license directory, as explained in the sections below.

Activation Configuration Mechanisms

There are two ways for you to specify an activation configuration:

  • Create a local license configuration file and place it in the location as specified in the section below. The node prioritizes a configuration resource in an application archive over a configuration file in the specified location. If neither is present, the node uses default values for the activation configuration properties, which means that an activation configuration is not required.

  • Create a managed activation configuration and place it in

    an application project,
    a fragment project, or
    a node deploy configuration file.

    The managed activation configuration is managed exactly like any other configuration resource.

Local License Configuration File

If you do not want to modify your application archive or node deploy files, you can place a license configuration file in the node user's home directory, in the fixed location:

  • Windows: %USERPROFILE%/.tibco-streaming/license-config.conf

  • macOS or Linux: $HOME/.tibco-streaming/license-config.conf

It is not needed for the node to be restarted for license validation.

The file format is the same as the configuration content of the activation configuration resource as described in the next section:

      {
        localLicenseDirectory = "/my/license/directory"
      }

Note that a configuration envelope is required because this file is not a configuration resource managed by the node. You can configure activation using either the localLicenseDirectory or the activationServiceURLs property.

Managed Activation Configuration

Placing an activation configuration into an application archive is useful because you can set your activation configuration in one place. Then you can create as many nodes as you want without separately providing the activation configuration for each one. Alternatively, if you have an existing application archive and do not want to change it, you can place the activation configuration in a node deploy configuration and then create a node using that node deploy configuration. The node uses that activation configuration for license validation.

The activation configuration resource is a singleton. Hence, an error is generated when you activate an activation configuration with a new name when one is already active. You are allowed to update the activation configuration, keeping the name the same and changing only the version. The following is an example of a HOCON format activation configuration:

name = "MyLicenseConfig"
    version = "1.0"
    type = "com.tibco.ep.dtm.configuration.licensing"

    configuration = {
      LicenseInfo = {
        localLicenseDirectory = "/my/license/directory"
        }
    }

Once the configuration is placed in the application archive and/or node deploy file and whenever a node is created using that archive and/or node deploy file, it will automatically be configured with the right activation configuration.

Streaming Maven Archetypes

For new projects generated by the Streaming Maven application project archetypes, two new archetype parameter properties are available. These are:

  • activationserviceurls

  • locallicensedirectory

If either of these is specified, a license.conf file is generated using the given values. If neither is specified, license.conf will be generated without either of these specified. In that case, when deployed, the application will attempt to find a license file in the user’s default local license directory.

Docker Projects

If Docker or Kubernetes support is enabled during StreamBase Application project generation, license files are copied into the container image at build time.

  • If locallicensedirectory is defined during project creation (archetype property), then the license file from that directory is copied into the image.

  • If locallicensedirectory is not specified, then the license file from the user’s default home license directory is copied.

Inside the container, license files are always placed in: /home/tibco/.tibco-streaming/licenses. The license.conf file uses a substitution variable for the local license directory, which resolves to the user-specified path on the host or to the fixed license path inside the container.

Overriding License Directory at Build Time

To change the local license directory during project build time (without regenerating the archetype), specify the following Maven property:

mvn clean install -Dlocal.license.directory=/foo

This command overrides the archetype’s locallicensedirectory property, providing flexible control without additional project changes.

Helm Projects

All license files found in the user’s local license directory (or the directory specified at project generation) are packaged into a Kubernetes Secret. A ConfigMap is also created for the license configuration.

The Helm deployment mounts these resources, allowing license files and configuration to be updated easily without needing to rebuild or redeploy container images or Helm charts.

Modifying the Activation Configuration

Once a node has been deployed, the activation configuration can be updated without restarting the node.

If you are using a configuration for TIBCO activation license, you can use the epadmin configuration target to load and activate a new activation configuration resource with the same name and a different version. You can then use epadmin configuration command to switch between versions just as you would with any other configuration object.

If you are using a local license file, you can update the license file in the node user's home directory. The changes will take effect the next time license validation occurs.

Displaying the Activation Configuration

You can use the epadmin display node command to view the activation configuration and the license expiration date.

License Validation Statistics

The licensevalidation statistic shows validation attempt and failure counts, and the entitlement expiration date. Use the epadmin statistics command target to display the statistic.

License Validation Schedule and Behavior

For a TIBCO Activation Service-based authorization, the node requests validation when the node starts, and validates entitlement once per day. If activation or validation fails, the node shuts down all application engines. The node remains available for administration and can be restarted once you have fixed your validation problem.

If a running server loses contact with the activation server, a grace period begins during which the connection can be reestablished. Do not restart the node during this grace period. For more information, see TIBCO Activation Service documentation.