If you would like to control license access, it can be done using an options file containing the configurations you would like to use. Options file usage is not required, but can be helpful to facilitate in managing who can access the network licenses and for what periods of time. For a full guide on information about option files, see the section Managing the Options File in the FLEXnet Publisher License Administration Guide PDF at this link.


The following sections explain how to create an options file and configure it with various functions to assist in managing your licenses.


Create an Options File


  1. Open a text editor, such as Notepad.
  2. Save the file in the same location where you saved the network license file. The options file must be saved as FLEXRTC.opt
    • If you're unsure of where that is, you can look at LMTOOLS, Config Services tab and make sure you the Service Name pull down is set to the correct service. Then look at the Path to the license file text box.
    • Be sure you've saved the file with the extension .opt as LMTOOLS will not recognize it as .txt.
  3. Enter in the desired statements and parameters into the options file and save it.
  4. To activate the options file, you must reread the license file from within LMTOOLS. To do this, open LMTOOLS, on the Service/License File tab, if multiple services, ensure the correct service is selected. Next go to Start/Stop/Reread tab and push the ReRead License File button.
  5. Check the log file to be sure that the options file has been read, without error. If it was not, you may need to Stop the service and restart using the Start/Stop/Reread tab.


Editing an Options File


At any time, you may edit the options file and update it's parameters and functions. However, in order for it to be active on the server, you must reread the license file. See steps 4 and 5 above under Create an Options File section for how to do that.


App Feature Codes


Red Transit Consultants, LLC has a number of apps offering support for Network licensing. Regardless if you are using one or multiple of our apps, you'll need to know the feature codes in order for LMTOOLS to properly set the options file controls for specific products. Below is a list of the App Names and Feature Codes used.


App NameFeature Code
Export Profile ViewEPVD
Import/Export Surface LabelsIESL
Import/Export Surface AnalysisIESA
Grade Slope On SurfaceGSOS
Lot Grading ToolsLGRT
Pipe Network Productivity ToolsPNPT
Slope Across PipesSAPN
Surface Productivity ToolsSPPT


Options File Comments


If you wish to leave comments in the options file syntax, you may do so by using the [#] syntax.

#This is a comment


Defining Groups


You can define groups using the Windows sign-in name or the computer name. By default, computer names and usernames are case-sensitive.


Add the following statement in the options file to turn on or off case sensitivity for groups.

GROUPCASEINSENSITIVE ON

To create a group using usernames, use the following code, where [groupname] is the name of the group and each username is provided with spaces between.

GROUP [groupname] [user1] [user2] [user3]

To create a group using computer names, use the following code, where [groupname] is the name of the group  and each computer name is provided with spaces between.

HOST_GROUP [groupname] [computername1] [computername2] [computername3]

Note regarding many users:

To create a group with many users, define multiple GROUP lines with the same group name, each containing up to a maximum of 4,000 characters. If you define multiple GROUP lines with the same group name, you can add all the specified users to a single group.


Controlling license timeout


The TIMEOUT statement allows for setting a limit on how long a license may be inactive before the server reclaims it. Once the computer becomes active, the server would then issue a new license. If no licenses are available, the user would then be notified.


In the options file, the example code here would need to be on separate lines.

TIMEOUT feature_code n

The above example uses the TIMEOUT statement, specifies a product feature code, and n is the number of seconds before the server reclaims the license.


The TIMEOUTALL statement controls all products without having to specify a specific product.

TIMEOUTALL n

Reserve Licenses


The RESERVE statement allows for reserving a number of licenses for a product for a given group.

RESERVE [count] [productfeature] [type] [name]

The below code example shows some other ways this could be used.

RESERVE 1 PNPT smithj 
RESERVE 1 PNPT computer1 
RESERVE 5 SPPT EngineeringGroup 
RESERVE 5 PNPT HOST_GROUP DraftingDept 
RESERVE 1 LGRT INTERNET 192.168.0.100 
RESERVE 5 PNPT INTERNET 192.168.0.* 
RESERVE 5 SPPT PROJECT CivilProject 

Restrict Maximum License Use


The MAX statement allows for controlling the maximum number of licenses a group or user can use.

MAX [count] [productfeature] [type] [name]

The below code example shows some other ways this could be used.

MAX 1 PNPT smithj 
MAX 1 PNPT computer1 
MAX 5 SPPT EngineeringGroup 
MAX 5 PNPT HOST_GROUP DraftingDept 
MAX 1 LGRT INTERNET 192.168.0.100 
MAX 5 PNPT INTERNET 192.168.0.* 
MAX 5 SPPT PROJECT CivilProject 

Exclude License Usage


The EXCLUDE statement allows for controlling access of a product to a group or user.

EXCLUDE [productfeature] [type] [name]

The below code example shows some other ways this could be used.

EXCLUDE 1 PNPT smithj 
EXCLUDE 1 PNPT computer1 
EXCLUDE 5 SPPT EngineeringGroup 
EXCLUDE 5 PNPT HOST_GROUP DraftingDept 
EXCLUDE 1 LGRT INTERNET 192.168.0.100 
EXCLUDE 5 PNPT INTERNET 192.168.0.* 
EXCLUDE 5 SPPT PROJECT CivilProject 

Include License Usage


The INCLUDE statement allows for controlling access of a product to a group or user.

Note: Because an EXCLUDE statement always takes precedence over a conflicting INCLUDE statement, best practice is to use only one of these statements in a single options file. 

INCLUDE [productfeature] [type] [name]

The below code example shows some other ways this could be used.

INCLUDE 1 PNPT smithj 
INCLUDE 1 PNPT computer1 
INCLUDE 5 SPPT EngineeringGroup 
INCLUDE 5 PNPT HOST_GROUP DraftingDept 
INCLUDE 1 LGRT INTERNET 192.168.0.100 
INCLUDE 5 PNPT INTERNET 192.168.0.* 
INCLUDE 5 SPPT PROJECT CivilProject 

Controlling Borrowing Licenses


**This is for when using the borrow license utility, not just accessing any license on the server. This is specific for when a user wishes to take a license and be able to use it without being connected to the server.** 


The BORROW_LOWWATER statement controls the maximum number of borrowed licenses.

BORROW_LOWWATER [feature_code] [count]

The above example calls the BORROW_LOWWATER statement, specific feature, and a count of licenses that must remain on the server, preventing borrowing too many.


The MAX_BORROW_HOURS statement controls the maximum number of hours a license can be borrowed. The default setting, when not set is 6 months or upon expiration. It is recommended that this be set to a maximum of a week at a time as the only way to return a license is if both the computer that has the license and the server must be online connected to force a return. 

MAX_BORROW_HOURS [feature_code] [hours]

The above examples calls the MAX_BORROW_HOURS statement, specific feature, and the number of hours it can be borrowed.


The EXCLUDE_BORROW statement controls whether or not a group or user is restricted from borrowing a license for a specific product.

EXCLUDE_BORROW [productfeature] [type] [name]

The below code example shows some other ways this could be used.

EXCLUDE_BORROW PNPT smithj 
EXCLUDE_BORROW PNPT computer1 
EXCLUDE_BORROW SPPT EngineeringGroup 
EXCLUDE_BORROW PNPT HOST_GROUP DraftingDept 
EXCLUDE_BORROW LGRT INTERNET 192.168.0.100 
EXCLUDE_BORROW PNPT INTERNET 192.168.0.* 
EXCLUDE_BORROW SPPT PROJECT CivilProject 

The INCLUDE_BORROW statement controls whether or not a group or user is allowed to borrow a license for a specific product.

INCLUDE_BORROW [productfeature] [type] [name]

The below code example shows some other ways this could be used.

INCLUDE_BORROW PNPT smithj 
INCLUDE_BORROW PNPT computer1 
INCLUDE_BORROW SPPT EngineeringGroup 
INCLUDE_BORROW PNPT HOST_GROUP DraftingDept 
INCLUDE_BORROW LGRT INTERNET 192.168.0.100 
INCLUDE_BORROW PNPT INTERNET 192.168.0.* 
INCLUDE_BORROW SPPT PROJECT CivilProject 

Notes on INCLUDE_BORROW and EXCLUDE_BORROW statements:

  • EXCLUDE_BORROW takes precedence over conflicting INCLUDE_BORROW statements
  • It's recommended to use only one of these statements in your options file because of this.


Create a Report Log


The report log file is a compressed, encrypted file that generates usage reports on license activity. 


The REPORTLOG statement allows for defining a log location and parameters for how it logs usage.

REPORTLOG [+]report_log_path

A few notes on how this works:

  • Paths that contain spaces must be in quotation marks.
  • The path must already exist and be stored locally on the server.
  • The [+] syntax means that new entries to the log file are appended to previous entries of the log rather than overwriting them each time the Network License Manager restarts. Best practice is to include the [+] to retain the usage history.


Example Options File


The below example options file is for a company that has 5 licenses of Pipe Network Productivity Tools. They wanted to ensure their Land Design Team did not take too many licenses at once to where their Pipe Design Team could not access the product or inversely.


This example defines the teams and provides a maximum number of licenses to be in use at a given time and also reserves a specified number of licenses for each team.


# Options File for Red Transit Consultants Pipe Network Productivity Tools
# 
# Last updated: November 12, 2021 by Steve Hill 

# Sets inactivity timeout for all products to 90 minutes: 
TIMEOUTALL 5400  

# Sets maximum borrow time of 1 day for Pipe Network Productivity Tools for all users: 
MAX_BORROW_HOURS PNPT 24

# Creates a report log: 
REPORTLOG +”C:\Red Transit Consultants\Logs\Report.log”` 

# Disables case sensitivity when defining groups/host_groups: 
GROUPCASEINSENSITIVE ON 

# Defines a LandDesignTeam group and controls license usage:  
GROUP LandDesignTeam steveh jeffreyb austink michaelb mattc smithj jonesb whitef
MAX 2 PNPT GROUP LandDesignTeam
RESERVE 1 PNPT GROUP LandDesignTeam 
INCLUDE_BORROW PNPT HOST_GROUP LandDesignTeam

# Defines a PipeDesignTeam group and controls license usage:  
GROUP PipeDesignTeam taylorj jacko richardc dough davidh georgel laurat
MAX 5 PNPT GROUP PipeDesignTeam
RESERVE 3 PNPT GROUP PipeDesignTeam 
INCLUDE_BORROW PNPT HOST_GROUP PipeDesignTeam