Configure the License Manager

Configuration of the Four Js License Manager (FLM) is managed by the FLM configuration file. The FLMPROFILE environment variable specifies the configuration file to use; if not set, $FLMDIR/etc/flmprofile is used.

The configuration file is in the INI format. Configuration entries are in the format name-of-resource=value. For more information about using the configuration file, see Example: flmprofile.

After making a configuration change, you will need to restart the FLM (at the command line type flmprg --service-restart to restart the server). For more information, see Starting Four Js License Manager and Stopping license manager.

  1. Set the value for the FLM server; update the host entry under the server element with the name of your host:
    The default is localhost.
    # FLM host 
    host=localhost 
    
    # Default service port
    port=6800
    
    Note:

    Working with Docker on macOS:

    If you are hosting FLM and docker containers on the same host, it is recommended to configure a mapping to the localhost using a special DNS name which will resolve to the internal IP address used by the host; regardless of changes in the network. See Configure license with FLM for docker on macOS host.

  2. Add or update values for the resources shown in Table 1 as required:
    Table 1. License Manager Configuration categories and resources
    Category Description
    [server]
    Configure details of the machine that holds the license service program.
    Resource Default value Description
    host=hostname localhost Specify the host name of the machine.
    port=value 6800 Specify the port on which the FLM listens.
    pidfile=filename none Specify a file that holds the process id of the FLM. For example, pidfile="${FLMDIR}/pidfile"
    umask=value 0077 Set permissions for directories such as lock and log. The environment variable, FLM_UMASK, can be used to override configured values. For more information about using UMASk, go to FLM_UMASK.
    Warning:

    The UMASK feature is available on UNIX-like platforms only.

    The permission mask is applied to the following directories. If you do not set a umask, the default value is applied.
    • $FLMDIR/lock
    • $FLMDIR/etc
    • Log directory as defined in log
    [log]
    Enable and configure FLM licensing logs. For more information on configuring logs, see Log files and debugging.
    Resource Default value Description
    enabled={true|false} FALSE Enable or disable logging.
    directory=dir-path none Directory where log files are stored. For example, directory="${FLMDIR}/log"
    categories= [ error, info, warning, debug ] none Specifies in a comma-separated list categories of errors to log: categories= "error, info, warning, debug"

    The debug category will produce an additional log file with the extension .dlog.

    maxsize= value { K | M | G } -1 (no limit) Set the maximum size for the log file. The size value can be in kilobytes, megabytes, or gigabytes. For example, maxsize=512M. When the size is reached, the file is closed and a new one is created.
    maxfiles=value -1 (no limit) Specify a maximum number of log files to keep. For example, maxfiles=5. The FLM rotates files by renaming and renumbering them up to the maxfiles value, for example, flmprgd.log, flmprgd.1.log, flmprgd.2.log, etc. It deletes the file that exceeds the maxfiles value.
    syslog={ true| false } false Redirect FLM logs to the system log of Unix-like platforms only.
    Warning:

    The syslog feature can not be enabled on Windows.

    [client]
    The client pings the FLM server at the specified interval (30 seconds by default) to confirm its active status.
    Warning:

    The client ping feature only works with Genero products 3.21 or greater. If you have Genero 3.20 and 3.10 products running in compatibility mode with license manager 6.00, the ping mechanism cannot be used, and products act as if the feature is disabled.

    Resource Default value Description
    ping.interval=seconds 30 seconds Specify the interval in number of seconds the client must ping the server. The minimum value is 1 and the maximum value is 60 seconds. Any value outside this range raises a warning and the default is used. The ping mechanism cannot be disabled.
    ping.lost=value 3 Specify the number of missed pings allowed before the FLM kills a session and recovers the license. Pings are missed when the client has failed and is unable to send the pings at the defined ping interval. The minimum value is 1.
    [reservations] Identify users or group of users for whom licenses may be reserved. Shared licenses are also supported with reserved licenses. For more information on configuring license reservation, see Manage license reservation (flmprg).
    Important:

    License reservation works with Genero 3.21 products or greater, and with Genero 3.20 and 3.10 products when they are run in compatibility mode with license controller (fglWrt/greWrt) v6.00.13 or greater.

    Resource Default value Description
    names=user_group, [...] none Identify users. The separator is a comma. For example,
    [reservations]
    names=svc,qa
    Where "qa", might identify licenses reserved for users testing applications, and "svc" for users using Web services. There is no restriction on the names you choose for user groups. You can set them as you wish.
    [reservation.reservation_name]
    Declare details for a specific reservation: the reservation_name as defined in [reservations], the license, or license share it affects, the number of reserved licenses, and the date of expiry (if required).
    Resource Default value Description
    license=[license_number | share_name]
    Warning:

    Although no default is provided, you must set this value to reserve user licenses.

    Specify the license number or license share - as defined in Shares - to use for reservation. (For example: license=XXX#XXXXXXXX license=share_name)
    Tip:

    Share is an alias for "license", so you can use either "share=share-name" or "license=share-name"; both are allowed.

    count=value none Number of licenses reserved for users.
    expiry-date=date none Date in the format YYYY/MM/DD when the reservation expires.
    [reservation.qa]
    license=TAB#XXXXXXXX
    count=15
    expiry-date=2023/12/31
    [reservation.dev]
    license=dev_licenses  # reservation on the share "dev_licenses"
    count=10
    [shares] Identify users or group of users for whom licenses may be shared. For more information on configuring license sharing, go to Manage license sharing (flmprg).
    Resource Default value Description
    names=user_group [...] none Identify users. The separator is a space. For example,
    [shares]
    names=dev runtime
    Where "dev", might identify licenses reserved for users developing applications, and "runtime" for users using runtime licenses. There is no restriction on the names you choose for user groups. You can set them as you wish.
    [share.share_name]
    Declare details for a specific share: the share_name as defined in Shares and the license or licenses it affects.
    Resource Default value Description
    licenses=license_number [...]
    Warning:

    Although no default is provided, you must set this value to share user licenses.

    Specify the license number or numbers to use for sharing. Licenses must be for the same product, be the same type (development or runtime) and extension (the specific conditions of the license). The separator between license numbers is a space.
    [share.dev]
    licenses=TAB#XXX00004 TAB#XXX00005
    
    [share.runtime]
    licenses=TAB#YYY00004 TAB#YYY00005
    [access.deny] Deny access to the FLM from the specified host, or host with the specified license. Hosts are specified in a comma-separated list inside quotes:
    license_number="hostname"
    For more information about configuring access, see Restricting access to licenses.
    [access.allow] Allow access to the FLM from the specified host, or host with the specified license. Hosts are specified in a comma-separated list inside quotes:
    license_number="hostname"
    For more information about configuring access, see Restricting access to licenses.