License Administration

This appendix provides background information on licensing in Panther. To manage Panther usage, the Flexible License Manager (FLEXlm), a product of Globetrotter Software, Inc., is used. FLEXlm Version 5.0 is installed with Panther as part of the installation process only on server machines.

The appendix describes the license options file and the following FLEXlm license administration utilities provided with Panther.

Licensing in Panther

Panther components use local or remote licensing schemes and are defined as follows:

The setup program recommends a default licensing scheme for each Panther component. If you accept the default, the setup program guides you through the appropriate steps to obtain a permanent license file. You can choose a different scheme if your license administrator recommends it. In this case, the setup program requests contact information, and the Prolifics License Desk will contact you or your license administrator to arrange for licensing. Default license schemes are:

Component name


Licensing scheme

Panther client

Windows 98
Windows NT 4/2000


Panther application server engine

Windows NT/2000


Panther web application broker

Windows NT/2000


License Daemons and License Types

The license daemons are programs that manage the license types that allow limited access to users. License daemons are only required for node-locked counted and floating licenses. Thus, only the Panther development client requires a daemon; and the license daemon always runs on the license host machine.

The license type and number used at your site was determined when Panther was purchased.

Types of Daemons

The two types of daemons are:

License Types

Two types of licenses are available with Panther; each type is specific to the component installed:

Options File

The daemon options file allows you to customize Prolifics license usage at your site. The information in the file can specify such information as:

There is no default location or name for the options file. If used, its name appears as the fourth argument on the DAEMON line of the license file license.dat, in the optional field options-file. If there are multiple DAEMON lines in the license.dat file, then there can be multiple options files, one for each DAEMON line. Not all of the lines in an options file refer to a feature, so the site administrator must set up separate options files in order to use the NOLOG and REPORTLOG features.

Contents of the Options File

The options file has the following basic format:

GROUP group-name member-list 
LINGER feature checkout-time
REPORTLOG filename
TIMEOUT feature idletime

Lines beginning with a pound sign (#) indicate comments and are ignored.


INCLUDE and EXCLUDE specify which users (or hosts, displays, or groups) are allowed to use a particular feature. Any user who is EXCLUDEd from a feature is not able to use that feature. Specifying an INCLUDE line has the effect of excluding everyone else from that feature; thus, only those users specifically INCLUDEd are able to use that feature. The INCLUDE|EXCLUDE line has the following format:



NOLOG causes messages of the specified type to be filtered out of the daemon's log file. Specifying a NOLOG option reduces the amount of output to the log file, which can be useful in those cases where the log file grows too quickly. The NOLOG line has the following format:



GROUP defines collections of users, which can then be used in RESERVE, INCLUDE, or EXCLUDE commands. The GROUP line has the following format:

GROUP group-name member-list


LINGER prevents the license manager from taking back a license until the indicated checkout-time has expired, regardless of whether or not the license token is being used. The LINGER line has the following format:

LINGER feature checkout-time


REPORTLOG creates a log file suitable for use with the FLEXlm report writing tools. This log file maintains more detailed information than the standard log file, but is not meant to be human readable. If the filename starts with a plus character (+), the file will be opened in append mode. The REPORTLOG line has the following format:

REPORTLOG filename


RESERVE reserves the specified number of licenses for the specified user, host, display, or group. Reserving a license decreases the number of generally available licenses. The RESERVE line has the following format:



TIMEOUT sets up a minimum idle time after which a user's license is lost if it is not being used. This can prevent users from wasting a license (by keeping it checked out when it is not in use) when someone else wants one. The TIMEOUT line has the following format:

TIMEOUT feature idletime


The following is an example of an options file:

REPORTLOG /usr/adm/gsi.replog
RESERVE compile USER pat
RESERVE compile USER less
RESERVE compile HOST terry

FLEXlm Utilities

The following sections describe the FLEXlm utility programs provided with Panther. These utilities are located in the distributed util directory.

Performs a checksum of a license file

lmcksum [-k] [-c license_file]


lmcksum prints a line-by-line checksum for the file as well as an overall file checksum. If the license file contains "lmcksum=nn" attributes, the bad lines are indicated.

lmcksum ignores all fields that do not enter into the encryption code computation; thus the server node name and port number, as well as the daemon pathname and options file names are not checksummed. In addition lmcksum treats non-case sensitive fields correctly (in general, lmcksum is not case-sensitive.) lmcksum takes the -k switch to force the encryption code checksum to be case-sensitive.

lmcksum takes an optional daemon name; if a name is specified, only license file lines for the selected daemon are used to compute the checksums.

Diagnoses licensing problems

lmdiag [-c license_file] [-n] [feature]


If no feature is specified, lmdiag operates on all features in the license file in your path. lmdiag first prints information about the license, then attempts to check out each license. If the checkout succeeds, lmdiag indicates this. If the checkout fails, lmdiag gives you the reason for the failure. If the checkout fails because lmdiag cannot connect to the license server, then you have the option of running "extended connection diagnostics."

Extended diagnostics attempt to connect to each port on the license server node, and can detect if the port number in the license file is incorrect. lmdiag indicates each port number that is listening, and if it is an lmgrd process, lmdiag indicates this as well. If lmdiag finds the vendor daemon for the feature being tested, then it indicates the correct port number for the license file to correct the problem.

Takes down license daemons

lmdown [-c license_file] [-q]


lmdown sends a message to every license daemon asking it to shut down. The license daemons write out their last messages to the log file, close the file, and exit. All licenses which have been given out by those daemons are rescinded, so that the next time a client program goes to verify its license, it will not be valid.

The end-user system administrator should protect the execution of lmdown since shutting down the servers causes loss of licenses.

Starts up the license manager daemon

lmgrd [-2] [-b] [-c license_file] [-d] [-l logfile] [-p] [-s interval] [-t timeout]




lmgrd is the main daemon program for the FLEXlm distributed license management system. When invoked, it looks for a license file containing all required information about vendors and features.

Prints the correct hostid value on any machine supported by FLEXlm

lmhostid [type]


Output from lmhostid is similar to the following:

lmhostid - Copyright (C) 1997, Globetrotter Software, Inc.
The FLEXlm host ID of this machine is "1700abcd"

Removes a user license and returns it to the license pool

lmremove [-c license_file] [feature] [user] [host] [display]


lmremove allows the system administrator to remove a single user's license for a specified feature. This might be required in the case where the licensed user is running the software on a node that subsequently crashed. This situation can sometimes cause the license to remain unusable. lmremove allows the license to be returned to the pool of available licenses.

lmremove removes all instances of user on node host at the specified display from usage of feature. The end-user system administrator should protect the execution of lmremove since removing a user's license can be disruptive.

Tells the license daemon to reread the license file

lmreread [-c license_file]


lmreread allows the system administrator to tell the license daemon to reread the license file. This can be useful if the data in the license file has changed; the new data can be loaded into the license daemon without shutting down and restarting it.

lmreread uses the license file from the command line (or the default file, if none specified) only to find the license daemon to send it the command to reread the license file. The license daemon always rereads the original file that it loaded. If you need to change the path to the license file , then you must shut down the daemon and restart it with that new license file path.

You cannot use lmreread if the SERVER node names or port numbers have been changed in the license file. In this case, you must shut down the daemon and restart it in order for those changes to take effect.

lmreread does not change any option information specified in an options file. If the new license file specifies a different options file, that information is ignored. If you need to reread the options file, you must shut down the daemon and restart it.

Reports status on license manager daemons and feature usage

lmstat [-a] [-A] [-c license_file] [-f [feature]] [-l [reg_expression]] [-s [server]] [-S [daemon]] [-t timeout]


lmstat provides information about the status of the server nodes, vendor daemons, vendor features, and users of each feature. Information can optionally be qualified by specific server nodes, vendor daemons, or features.

lmstat provides:

Switches the FLEXadmin log file (REPORTLOG) for the specified feature

lmswitchr [feature] [new-file]


The FLEXlm daemons create an ASCII log file on stdout. There are several processes in a parent-child hierarchy which share the same file pointer, so this log file cannot be changed after the vendor daemons have been started, since each process has a copy of the current offset, etc.

There is another way to switch the log file output data; however, this involves piping the stdout of lmgrd to a shell script that appends a file for each line. Instead of the "normal" startup: % lmgrd > LOG

Start lmgrd this way:

% lmgrd -z | sh -c 'while read line; do echo "$line" >> LOG; 

For more information on the log file, refer to page -5- for a description of REPORTLOG.

Reports the FLEXlm version of a library or binary

lmver [filename]


If the filename is specified, the FLEXlm version incorporated into this file is displayed; otherwise lmver looks for the library file liblmgr.a to detect its version.