The FLEXlm License Management System protects TASKING products released before 2014. All TASKING toolsets are subject to the terms and conditions of the End-User License Agreement.

faq

FREQUENTLY ASKED QUESTIONS

This page contains answers to common questions concerning FLEXlm handled by our customer support staff, along with some tips and tricks that we have found useful and presented here as questions.

LICENSE FILE QUESTIONS

I've received FLEXlm license files from 2 different companies. Do I have to combine them?
You don't have to combine license files. Each license file that has any 'counted' lines (the 'number of licenses' field is >0) requires a server. It's perfectly OK to have any number of separate license files, with different lmgrd server processes supporting each file. Moreover, since lmgrd is a lightweight process, for sites without system administrators, this is often the simplest (and therefore recommended) way to proceed. With v6+ lmgrd/lmdown/lmreread, you can stop/reread/restart a single vendor daemon (of any FLEXlm version). This makes combining licenses more attractive than previously. Also, if the application is v6+, using 'dir/*.lic' for license file management behaves like combining licenses without physically combining them.

When is it recommended to combine license files?
Many system administrators, especially for larger sites, prefer to combine license files to ease administration of FLEXlm licenses. It's purely a matter of preference.

Does FLEXlm handle dates in the year 2000 and beyond?
Yes. The FLEXlm date format uses a 4-digit year. Dates in the 20th century (19xx) can be abbreviated to the last 2 digits of the year (xx), and use of this feature is quite widespread. Dates in the year 2000 and beyond must specify all 4 year digits.

My license key has a date 1-jan-00. Will it continue working in the year 2100?
Yes. The date 1-jan-00 in a license key indicates that it is a "non-expiring" license, so it will continue working in the year 2100 and beyond.

FLEXLM VERSIONS

I have products from several companies at various FLEXlm version levels. Do I have to worry about how these versions work together?
If you're not combining license files from different vendors, the simplest thing to do is make sure you use the tools (especially lmgrd) that are shipped by each vendor.

lmgrd will always correctly support older versions of vendor daemons and applications, so it's always safe to use the latest version of lmgrd and the lmutil utilities.

If you've combined license files from 2 vendors, you must use the latest version of lmgrd.

If you've received 2 versions of a product from the same vendor, you must use the latest vendor daemon they sent you. An older vendor daemon with a newer client will cause communication errors.

Please ignore letters appended to FLEXlm versions, i.e., v2.4d. The appended letter indicates a patch, and does NOT indicate any compatibility differences. In particular, some elements of FLEXlm didn't require certain patches, so a 2.4 lmgrd will work successfully with a 2.4b vendor daemon.

I've received a new copy of a product from a vendor, and it uses a new version of FLEXlm. Is my old license file still valid?
Yes. Older FLEXlm license files are always valid with newer versions of FLEXlm.

I've received a new license file, and the format is different from the old one I had from the same vendor? Why? Are they compatible?
As of v3.0, FLEXlm has an optional new format for license files. FLEXlm products always understand older versions; therefore, the pre-v3.0 files are understood by every FLEXlm version. However, your old applications (pre-FLEXlm v3.0) will not be able to use the new license file. See Also: Section 2.2, 'License File Format', on page 10.

USING FLEXLM

If my client dies, does the server free the license?
Yes, unless the client's whole system crashes. Assuming communications is TCP, the license is automatically freed immediately. If communications are UDP, then the license is freed after the UDP timeout, which is set by each vendor, but defaults to 45 minutes. UDP communications is normally only set by the end-user, so TCP should be assumed. If the whole system crashes, then the license is not freed, and you should use 'lmremove' to free the license.

What happens when the license server dies?
FLEXlm applications send periodic heartbeats to the server to discover if it has died. What happens when the server dies is then up to the application. Some will simply continue periodically attempting to re-checkout the license when the server comes back up. Some will attempt to re-checkout a license a few times, and then, presumably with some warning, exit. Some GUI applications will present pop-ups to the user periodically letting them know the server is down and needs to be re-started.

How do you tell if a port is already in use?
99.44% of the time, if it's in use, it's because lmgrd is already running on the port - or was recently killed, and the port isn't freed yet. Assuming this is not the case, then use 'telnet host port' - if it says "can't connect", it's a free port.

Does FLEXlm require root permissions?
No. There is no part of FLEXlm, lmgrd, vendor daemon or application, that requires root permissions. In fact, it is strongly recommended that you do not run the license server (lmgrd) as root, since root processes can introduce security risks. If lmgrd must be started from the root user (for example, in a system boot script), we recommend that you use the 'su' command to run lmgrd as a non-privileged user:

su username -c"/path/lmgrd -c /path/license.dat -l /path/log"

where username is a non-privileged user, and path is the correct paths to lmgrd, license.dat and debug log file. You will have to ensure that the vendor daemons listed in /path-to-license/license.dat have execute permissions for username. The paths to all the vendor daemons in the license file are listed on each DAEMON line.

Is it ok to run lmgrd as 'root' (Unix only)?
It is not prudent to run any command, particularly a daemon, as root on Unix, as it may pose a security risk to the Operating System. Therefore, we recommend that lmgrd be run as a non-privileged user (not 'root'). If you are starting lmgrd from a boot script, we recommend that you use

su username -c"umask 022; lmgrd..."

to run lmgrd as a non-privileged user.

Does FLEXlm licensing impose a heavy load on the network?
No, but partly this depends on the application, and end-user's use. A typical checkout request requires 5 messages and responses between client and server, and each message is < 150 bytes.

When a server is not receiving requests, it requires virtually no CPU time. When an application, or lmstat, requests the list of current users, this can significantly increase the amount of networking FLEXlm uses, depending on the number of current users.

Also, prior to FLEXlm v5, use of 'port@host' can increase network load, since the license file is down-loaded from the server to the client. 'port@host' should be, if possible, limited to small license files (say < 50 features). In v5, 'port@host' actually improves performance.

Does FLEXlm work with NFS?
Yes. FLEXlm has no direct interaction with NFS. FLEXlm uses an NFS-mounted file like any other application.

Does FLEXlm work with ATM, ISDN, Token-Ring, etc.?
In general, these have no impact on FLEXlm. FLEXlm requires TCP/IP or SPX (Novell Netware). So long as TCP/IP works, FLEXlm will work.

Does FLEXlm work with subnets, fully-qualified names, multiple domains, etc.?
Yes, although this behavior was improved in v3.0, and v6.0. When a license server and a client are located in different domains, fully-qualified host names have to be used. A fully-qualified hostname is of the form: node.domain, where node is the local hostname (usually returned by the 'hostname' command or 'uname -n') domain is the internet domain name, e.g. 'globes.com'.

To ensure success with FLEXlm across domains, do the following:

1. Make the sure the fully-qualified hostname is the name on the SERVER line of the license file

2. Make sure ALL client nodes, as well as the server node, are able to 'telnet' to that fully-qualified hostname. For example, if the host is locally called 'speedy', and the domain name is 'corp.com', local systems will be able to logon to speedy via 'telnet speedy'. But very often, 'telnet speedy.corp.com' will fail, locally. Note that this telnet command will always succeed on hosts in other domains (assuming everything is configured correctly), since the network will resolve speedy.corp.com automatically.

3. Finally, there must be an 'alias' for speedy so it's also known locally as speedy.corp.com. This alias is added to the /etc/hosts file, or if NIS/Yellow Pages are being used, then it will have to be added to the NIS database. This requirement goes away in version 3.0 of FLEXlm.

If all components (application, lmgrd and vendor daemon) are v6.0 or higher, no aliases are required; the only requirement is that the fully-qualified domain name, or ip-address, is used as a hostname on the SERVER, or as a hostname in $LM_LICENSE_FILE port@host, or @host.

Does FLEXlm work with NIS and DNS?
Yes. However, some sites have broken NIS or DNS, which will cause FLEXlm to fail. In v5 of FLEXlm, NIS and DNS can be avoided to solve this problem. In particular, sometimes DNS is configured for a server that's not current available (e.g., a dial-up connection from a PC). Again, if DNS is configured, but the server is not available, FLEXlm will fail.

In addition, some systems, particularly Sun, SGI, HP, require that applications be linked dynamically to support NIS or DNS. If a vendor links statically, this can cause the application to fail at a site that uses NIS or DNS. In these situations, the vendor will have to relink, or recompile with v5 FLEXlm. Vendors are strongly encouraged to use dynamic libraries for libc and networking libraries, since this tends to improve quality in general, as well as making NIS/DNS work.

On PCs, if a checkout seems to take 3 minutes and then fails, this is usually because the system is configured for a dial-up DNS server which is not currently available. The solution here is to turn off DNS.

Finally, hostnames must NOT have periods in the name. These are not legal hostnames, although PCs will allow you to enter them, and they will not work with DNS.

Is the FLEXlm 'display' the same as an X-Display?
Not by default. The default FLEXlm display is what is returned by the ttyname() function call (or the 'tty' command), and is usually something like '/dev/ttyp4'. However, the application developer can change this default to the X-Display. A paper is available on this topic to FLEXlm developers from GLOBEtrotter Software.

We're using FLEXlm over a wide-area network. What can we do to improve performance?
FLEXlm network traffic should be minimized. With the most common uses of FLEXlm, traffic is negligible. In particular, checkout, checkin and heartbeats use very little networking traffic. There are two items, however, which can send considerably more data and should be avoided or used sparingly:

  • 'lmstat -a' should be used sparingly. 'lmstat -a' should not be used more than, say, once every 15 minutes, and should be particularly avoided when there's a lot of features, or concurrent users, and therefore a lot of data to transmit; say, more than 20 concurrent users or features.
  • Prior to FLEXlm v5, the 'port@host' mode of the LM_LICENSE_FILE environment variable should be avoided, especially when the license file has many features, or there are a lot of license files included in $LM_LICENSE_FILE. The license file information is sent via the network, and can place a heavy load. Failures due to 'port@host' will generate the error LM_SERVNOREADLIC (-61).

WINDOWS QUESTIONS

What PC Platforms are supported?
FLEXlm supports Windows 95/98, Windows NT 3.5, 3.51 and 4.0 on Intel, Mips and Alpha, Windows 2000/ME/XP/Vista, Windows 7 32/64-bits, Netware 3.12 and 4.X, OS/2 3.0. For 64-bit operating systems, the 32-bits FLEXlm version must be installed anyway. Networking is required on all 32-bit versions.

Why do I need to include NWlink IPX/SPX on NT and Win 95?
This is necessary for either obtaining the Ethernet card address, or to provide connectivity with a Netware License server.

Will the Server run on Windows 95?
Yes, lmgrd runs in its own window. If available, NT systems are preferred, since it can be run as an NT 'service'. Special software to emulate NT services is available from your software vendor.

When I unplug the network cable on my Windows 2000 laptop, FLEXlm stops working. Why?
Windows 2000 running on laptops detects whenever the network cable is unplugged. It blocks access to the network card, thus preventing FLEXlm to obtain the ethernet id. If a license is bound to the ethernet id, the license cannot be used anymore, until the network cable is plugged in again.

See also Knowledge base article Q239924 on the Microsoft website.

This detection of unplugging the network cable can be deactivated, by running the following registry file:

Download registry file (zipped, 276 bytes)

My license server does not start on Windows 7. Why?
On Windows 7, the license server does not start when configured to run as a service. You may receive one of the following error messages:

  • "The service did not respond to the start or control request in a timely fashion."
  • "The FLEXlm License manager does not respond in a timely manner."
  • "Server Start Failed. The Server May Already Be Running!"
  • "StartService: unknown error."

However, starting the license manager via the command line does work. This is caused by lmgrd.exe which does not completely comply with the requirements for a service running on Windows 7.

To solve this:

  • contact Altium for a download of lmgrd for Microsoft Windows 32-bit, x86.
  • rename the existing lmgrd.exe to something else, and put the new lmgrd.exe instead

Now you should be able to start the license server using the Services Control Panel of Windows 7.

To be able to use LMTOOLS to control the license server, you'll need to update LMTOOLS as well:

  • contact Altium for a download of lmtools for Microsoft Windows 32-bit, x86.
  • rename the existing lmtools.exe to something else, and put the new lmtools.exe instead

Note: the 32-bits version of lmgrd and lmtools work fine on Windows 7 64-bit.

LINUX QUESTIONS

When I start lmgrd on Linux, I get an error message about GLIBC_2.0.
On some systems, when starting lmgrd on Linux, lmgrd complains with the following error message:

relocation error: ./lmgrd: symbol errno, version GLIBC_2.0 not defined in file lib.so.6 with link time reference

The solution to this problem is to prepend "LD_ASSUME_KERNEL=2.4" to the lmgrd startup command.

Example:

LD_ASSUME_KERNEL=2.4 lmgrd -l /var/tmp/lmgrd.log