The information on this page refers to LM-X v5.5 or newer, which extended the LICENSE_FILE setting to support specifying a file path in addition to specifying a file name, and changed the LICENSE_FILE setting name to LICENSE_PATH. If you are using a previous version of LM-X, please see the documentation for the previous version. |
The vendor may supply a license server configuration file, named lmx-serv.cfg by default. This configuration file is an ASCII text file, which can be opened and modified using any text editor. You may replace the existing information in the configuration file as needed.
For example, assume we are using a floating license. This type of license allows any number of users to have the software installed, but only a certain number of users to use the software simultaneously. When all allotted licenses are in use, other users must wait until a license becomes available to use the software. If you want to use software licenses most efficiently and implement fair/desired distribution of licenses, then as an administrator of the LM-X server, you may set the following options in the LM-X License Server configuration file:
- Permissions. Setting permissions lets you allow or deny individual users/groups use of the license server according to your organization's specific needs. Permissions can be based on a set of rules that include permissions for normal checkouts as well as license borrowing.
- Reservations. You can reserve a specified number of licenses that can be used by individual users or groups. Reservations can also be done using a set of rules, allowing you to specify the reservation order. Some users or groups can be given higher priority than others.
Limitations. You can limit the number of licenses that can be used by individual users or groups. Limitations can be done by a set of rules. In particular, limiting of users is done by a first match rule, so if a user belongs to more than one group specified in restrictions, the first restriction will apply to that user.
The configuration file includes instructions for using each setting in the file, which may include the following, depending on the options provided by your vendor. Some of the configuration settings can also be specified using the web-based UI, as described in Administration.
Syntax | Description | Examples |
---|---|---|
TCP_LISTEN_PORT = port number | The TCP port number the license server will listen on.
| TCP_LISTEN_PORT = 6200 |
TCP_BIND_ADDRESS = IP_address_1 IP_address_2 | Limit which networks the license server allows for client connections. | TCP_BIND_ADDRESS = 192.168.21.321 8000:8000:8000:8000:abcd:1234:12df:fd54 |
HAL_SERVERserver_number = [port]@hostname | High Availability Licensing (HAL) servers, which enable redundant servers, so if one server goes down, two others will still work. HAL consists of 3 specified servers, at least 2 of which must be up and running at all times.
| HAL_SERVER1 = 6200@server1 |
LOG_FILE = path | The log file path. Specifying the full path is preferred. | LOG_FILE = c:\program files\lmx-server.log |
LOG_FORMAT = NORMAL or EXTENDED | The format for the log file. | LOG_FORMAT= NORMAL |
LOG_EXCLUDE = message1, message2, etc. | Exclude messages from the log. The following messages can be excluded: CHECKOUT, CHECKIN, STATUS, BORROW, BORROW_RETURN, REMOVE_USER, REMOTE_RESTART or REMOTE_SHUTDOWN. | LOG_EXCLUDE = CHECKOUT, CHECKIN, STATUS |
LOGFILE_ROTATE_INTERVAL = rotation_interval | The interval for log file rotation. | LOGFILE_ROTATE_INTERVAL = day |
MIN_USER_REMOVE_TIME = time in seconds | Minimum time, in seconds, that must elapse from the connection before a user can be removed using lmxendutil. | MIN_USER_REMOVE_TIME = 120 |
LICENSE_PATH = path | The full or partial path under which to search for license file(s). Specifying the license file name is optional, and you can specify one or multiple paths as needed. The path must be lowercase. | LICENSE_PATH = c:\ |
USAGE_DATABASE = database path | Pay-per-use usage database (used for billing purposes). See Pay Per Use feature for EXTENDED information, including database format and an example of data printout. | USAGE_DATABASE = d:\server\usage.db |
USAGE_LEVEL= detail level | Specify pay-per-use detail level.
| USAGE_LEVEL = STANDARD |
USAGE_WRITE_INTERVAL= number of actions | Specify the number of pay-per-use actions (checkouts, checkins, etc.) after which pay-per-use records will be written to the pay-per-use database file. The default setting is 1000. | USAGE_WRITE_INTERVAL = 1000 |
REMOTE_ACCESS_PASSWORD = password | Remote administration password (used when remotely stopping and restarting the license server and removing users from it). | REMOTE_ACCESS_PASSWORD = MyPassword123 |
FAST_QUEUE = feature1, feature2, etc. | Fast queuing allows requests that can be fulfilled immediately to be fulfilled. | FAST_QUEUE = f2, d5, app2 |
ALLOW_IPADDR_ALL = one or more IP addresses | Allow/deny specific clients from using the license server.
| The following example will deny all clients except that with hostname 'trusted'. This applies to all features. The following example will allow clients on only 2 subnets, user Administrator and root from any host and deny everyone else. This applies to all features.
|
ALLOW_BORROW_IPADDR_ALL = one or more hosts | Allow/deny specific clients from borrowing licenses. | The following example will allow the specific users, and deny host and IP addresses on the list from borrowing any feature. Everyone else will be allowed. |
LIMIT_USER_feature name___limit count = one or more users | Limit the number of licenses that can be used by individual users or groups to implement fair/desired distribution of licenses. | LIMIT_USER_f2_5 = harry joe sam |
RESERVE_USER_feature name___reserve count = one or more users | Reserve a number of licenses that can be used by individual users or groups to implement fair/desired distribution of licenses. | RESERVE_USER_f2_5 = harry joe sam |
BORROW_LIMIT_COUNT_ALL = limit count IGNORE_BORROW_LIMIT_COUNT_USER_feature name = one or more users IGNORE_BORROW_LIMIT_COUNT_HOST_feature name = one or more hosts IGNORE_BORROW_LIMIT_COUNT_IPADDR_feature name = one or more IP addresses
Note: You can use IGNORE_BORROW_LIMIT_* flag to whitelist small and specific predicates blacklisted by broader BORROW_LIMIT_* predicate. | Limit/Do not limit the number of licenses that can be borrowed to prevent all licenses from being borrowed at the same time.
| BORROW_LIMIT_COUNT_f2 = 1 The following example will allow the user ADMIN, and deny host and IP addresses on the list from borrowing more than 100 features. BORROW_LIMIT_COUNT_F1 = 100 IGNORE_BORROW_LIMIT_COUNT_USER_F1 = admin IGNORE_BORROW_LIMIT_COUNT_HOST_F1 = server IGNORE_BORROW_LIMIT_COUNT_IPADDR_F1 = 192.168.1.* |
BORROW_LIMIT_HOURS_ALL = limit hours IGNORE_BORROW_LIMIT_HOURS_USER_feature name = one or more users IGNORE_BORROW_LIMIT_HOURS_HOST_feature name = one or more hosts IGNORE_BORROW_LIMIT_HOURS_IPADDR_feature name = one or more IP addresses Note: You can use IGNORE_BORROW_LIMIT_* flag to whitelist small and specific predicates blacklisted by broader BORROW_LIMIT_* predicate. | Limit/Do not limit the number of hours licenses can be borrowed to prevent licenses from being borrowed for too long.
| The following example will allow the specific users, and deny host and IP addresses on the list from borrowing any feature. Everyone else will be allowed. BORROW_LIMIT_HOURS_f2 = 1 The following example will allow the user admin, and deny host and IP addresses on the list from borrowing more than 100 features. BORROW_LIMIT_HOURS_F1 = 10 IGNORE_BORROW_LIMIT_HOURS_USER_F1 = admin IGNORE_BORROW_LIMIT_HOURS_HOST_F1 = server IGNORE_BORROW_LIMIT_HOURS_IPADDR_F1 = 192.168.1.* |
FEATURE featurename | Specify licenses directly within the configuration file to eliminate the need to have both a license file and configuration file for the license server. You can specify any features from one or more license files. | _START_LICENSE_ |
GROUP_name = member1 member2 | Specify a group name and the group members to which you want to apply restrictions, limitations and reservations. Creating groups can make these features easier to use and help you to avoid/remove redundancies from the configuration file. You can create groups that contain users, host names and IP addresses. Groups can contain any other group, and there is no limit on the number of members that can be included in a group. The names of groups and group members are case-insensitive. | The following example creates a group named "hr" with one member, "anna," and another group, "employees," which contains three individual users (joe, mary, and sam), plus includes the group "hr" as a sub-group. GROUP_hr = anna After creating groups, you can apply permissions, reservations, and limitations described above to those groups in the same way you would individual users; for example: DENY_USER_f1 = employees |
DENIAL_STORE_PERIOD = time_in_seconds | Specify how long the license server will keep denial information, in seconds.
| The following example sets the denial storage period to 1 day: DENIAL_STORE_PERIOD = 86400 |