Using License Files

The license file controls:

The following is an example of an IDL license file. This example is built for the license server "hal," which has the LMHostid "0000c09a23f0" and the designated port number "1700." This license has five floating licenses. The last line in the license file is the FEATURESET line, which ties all the FEATURE and INCREMENT lines together:

SERVER hal 0000c09a23f0 1700 
USE_SERVER 
DAEMON idl_lmgrd 
INCREMENT idl idl_lmgrd x.x00 1-jan-0000 30 5BC6A081FA3009FA5673 \ 
   VENDOR_STRING="1234-1Acme Datawack Corp" ck=16 
FEATURESET idl_lmgrd 96C31B1FB71BCAE9 

The FEATURE or INCREMENT lines of the license file determine which products are available. The x.x refers to the IDL version. The SERVER lines define which machines the products run on. The number of copies of the product that can run concurrently is controlled by the number of license units available, as specified by either the FEATURE or INCREMENT lines.

The FEATURE or INCREMENT line for the floating license shows 30 license units. This is not an error. Each idl or idl_rt counted license requires 6 license units (10 for Solaris Sparc) on the FEATURE or INCREMENT line. The number of license units is a platform-dependent scale factor times the number of licenses you own. For example, if you have 3 Windows floating licenses, this field is set to 18.

Viewing License Files

To access the text of your license file through the License Wizard, open the License Wizard. See Using the License Wizard for details. You must be logged in as root or have write permissions on the licensing directory to modify the license file.

Modifying License Files

You can modify only the following four data items in the license file:

On Windows, you normally should not include a path on the DAEMON line of your server-based license file. However, if your License Manager daemon (lmgrd.exe) file and your vendor daemon file (idl_lmgrd.exe) are moved to separate directories, then you will need to edit the DAEMON line of your license file to reflect the actual location of your vendor daemon or vendor daemon directory. For example:

Windows:

DAEMON idl_lmgrd "C:\Otherdir\idlxx\bin\bin.<platform>\idl_lmgrd.exe" 

UNIX:

DAEMON idl_lmgrd /otherdir/itt/idlxx/bin 

Macintosh:

DAEMON idl_lmgrd /otherdir/itt/idlxx/bin 

Note
Changing license file lines other than those discussed above will invalidate your license file, causing your installation to run only in demonstration mode (IDL only). Individually altering any FEATURE or INCREMENT lines destroys the file.

If you have multiple vendors using FLEXnet license management software, see Using the Same License Manager for Different Applications for more detailed information on customizing your license file.

Changes to a modified license file will not take effect until the License Manager is restarted using that license file.

License Sources

FLEXnet stores the latest successful IDL or ENVI license information on UNIX and Mac OS X in a FLEXnet resource file called .flexlmrc in the user's home directory. This file defines a variable named IDL_LMGRD_LICENSE_FILE to indicate the license source. For example, the definition in the file might read as follows:

IDL_LMGRD_LICENSE_FILE=/usr/local/itt/license/license.dat 

IDL continues to use this information until the IDL_LMGRD_LICENSE_FILE value is redefined, the .flexlmrc file is removed, or a system environment variable called IDL_LMGRD_LICENSE_FILE is defined in the shell environment used to start IDL.

Note that even if a system environment variable named IDL_LMGRD_LICENSE_FILE is defined, the IDL_LMGRD_LICENSE_FILE setting in the .flexlmrc file will continue to be referenced, but as a secondary license source if the IDL_LMGRD_LICENSE_FILE system environment variable does not supply a viable license source for the IDL session.

A license source defined by IDL_LMGRD_LICENSE_FILE in your .flexlmrc file or as a system variable will always hold precedence over any LM_LICENSE_FILE environment variable's definition. Only if IDL cannot successfully access a license source defined by IDL_LMGRD_LICENSE_FILE will it attempt to access a license defined by LM_LICENSE_FILE. Here is the order of license source precedence:

  1. The IDL_LMGRD_LICENSE_FILE environment variable (ITT Visual Information Solutions product-specific)
  2. The IDL_LMGRD_LICENSE_FILE definition in .flexlmrc (ITT Visual Information Solutions product-specific)
  3. The LM_LICENSE_FILE environment variable (seen by all products using FLEXnet)
  4. The license.dat file in the default location (ITT_DIR\license\license.dat)
  5. The evaluation license (ITT_DIR\license\*.lic)

To override the .flexlmrc license source definition, define an IDL_LMGRD_LICENSE_FILE system environment variable that points to the desired license file. For example, for a C shell:

setenv IDL_LMGRD_LICENSE_FILE /usr/local/itt/license/license.dat 

For a Korn or Bash shell:

export IDL_LMGRD_LICENSE_FILE=/usr/local/itt/license/license.dat 

Customizing Floating Licenses

You can customize license management by creating a License Manager options file. This file allows you to:

To customize the License Manager, create an options file in a text editor as described in the following section. See Sample Options Files: Reserving Licenses for a Group for examples.

Creating an Options File

Use a text editor to create an options file. For IDL and ENVI, the options file must be named idl_lmgrd.opt and must be saved in the same directory as license.dat. The default location in which to save the options file is the ITT_DIR/license directory.

Note
Whenever you modify the options file, you must stop and restart the License Manager before the changes will take effect.

Use the following conventions when creating an options file:

Options File Keywords

The following table describes the keywords available for creating an options file:

Table 8-2: Options File Keywords 

Keyword
Example
Description

EXCLUDE

EXCLUDE feature type type_name

EXCLUDE idl USER bob 
EXCLUDE envi USER bob 

Excludes user "bob" from using IDL or ENVI.

Can exclude user, group, host, or host_group from using IDL or ENVI. EXCLUDE takes precedence over INCLUDE statements.

EXCLUDEALL

EXCLUDEALL type type_name

EXCLUDEALL GROUP misfit 

Prevents the group "misfit" from using any of the features served by this vendor daemon.

Implicitly allows members of all groups except "misfit" to access all features served by this vendor daemon.

GROUP

GROUP group user_list

GROUP visitor sam kate 

Defines users "sam" and "kate" as comprising the group "visitor".

Defines a list of users to use as a group with other keywords such as INCLUDE or EXCLUDE.

HOST_GROUP

HOST_GROUP group host_list

HOST_GROUP main hal sam 

Defines hosts "hal" and "sam" as the group "main".

Defines a list of hosts to use as a group with other keywords such as INCLUDE or EXCLUDE.

INCLUDE

INCLUDE feature type type_name

INCLUDE idl GROUP visitor 
INCLUDE envi GROUP visitor 

Allows only users in the group "visitor" to use IDL or ENVI.

Includes only specifically identified users or groups. All others are implicitly outside of this group, and denied access.

INCLUDEALL

INCLUDEALL type type_name

INLCUDEALL GROUP research 

Allows all users listed in the group "research" to use all features served by this vendor daemon.

Specifies users or groups allowed use of all features served by this vendor daemon.

LINGER

LINGER feature seconds

LINGER idl 20 
LINGER envi 20 

The License Manager holds on to a license for an additional 20 seconds after it is checked in.

Causes licenses to be held by the License Manager for a specific amount of time after a user exits IDL or ENVI. Rarely used.

MAX

MAX #lic feature type type_name

MAX 10 idl_rt GROUP research 
MAX 10 envi_rt GROUP research 

Allows users in the "research" group to use at most 10 units of the "idl_rt" or "envi_rt" feature at one time.

Limits usage of a feature among users or groups.

NOLOG

NOLOG event_type

NOLOG DENIED 
NOLOG QUEUED 

A separate NOLOG line is needed to turn off logging of events including IN, OUT, DENIED, and QUEUED.

RESERVE

RESERVE #lic feature type type_name

RESERVE 10 idl USER sam 
RESERVE 10 envi USER sam 

Reserves a single license for the user "sam".

Ensures that a license will always be available to a specified user or group.

Sample Options Files: Reserving Licenses for a Group

The following example shows how to define and reserve a number of licenses for a group of users, and tells the License Manager not to log denied requests. Each copy of IDL or ENVI requires 6 license units on a UNIX workstation-class machine. Comment lines begin with #.

# reserve 5 IDL licenses for the research group 
RESERVE 30 idl GROUP research 
# define the users in the research group 
GROUP research josh hal bob kate beth 
# exclude anyone on a computer with the name main 
EXCLUDE idl HOST main 
# do not log license denials 
NOLOG DENIED 

Or,

# reserve 5 ENVI licenses for the research group 
RESERVE 5 envi GROUP research 
# define the users in the research group 
GROUP research josh hal bob kate beth 
# exclude anyone on a computer with the name main 
EXCLUDE envi HOST main 
# do not log license denials 
NOLOG DENIED 

When using INCLUDE or EXCLUDE, anyone not specifically mentioned on a list is implicitly excluded or included. For example, in the above file, everyone who is not working on a computer named "main" would be allowed to access IDL or ENVI. An EXCLUDE statement takes precedence over an INCLUDE statement. If the user "josh" were working on a computer named "main," he will not be able to access IDL or ENVI even though there is a license reserved for him.

Sample Options Files: Reserving Licenses for Individuals

The following options file reserves licenses for individuals from the "research" group defined above. If you have a group of 10 people, you can specify that a license or licenses will always be available to certain users within that group by using the RESERVE keyword in an options file. The NOLOG line pertains to the IDL QUEUE command, which allows a user to wait for an IDL license instead of entering demonstration mode when a counted license is unavailable. It tells the log file not to record any queue events.

# reserve one license for "kate" 
RESERVE 10 idl USER kate 
# reserve one license for "josh" 
RESERVE 10 idl USER josh 
# reserve 3 licenses for "hal" 
RESERVE 30 idl USER hal 
# do not log queue events 
NOLOG QUEUED 

Or,

# reserve one license for "kate" 
RESERVE 1 envi USER kate 
# reserve one license for "josh" 
RESERVE 1 envi USER josh 
# reserve 3 licenses for "hal" 
RESERVE 3 envi USER hal 
# do not log queue events 
NOLOG QUEUED