|ARM Technical Support Knowledge Articles|
The aim of this guide is to make it easier for you to diagnose and solve floating licensing problems with the ARM tools. The guide is intended to help you identify an error, and navigate the product documentation and Knowledge Article database to solve it.
Before proceeding further with the guide it is recommended you review the steps for setting up a floating license server, and its client workstations, in the ARM FLEXnet License Management Guide.
The guide makes number a number of assumptions:
lmutil, etc..) provided by ARM
For a Windows install of RVDS, the installer will by default add the FLEX binaries to the
PATH. For Linux installs, you will need to source the configuration script generated by the installer (e.g.
If after following the steps in this FAQ you are still unable to use your tools, please contact email@example.com.
The first step in the diagnostic is to determine whether the client machine is able to successfully communicate with the server. To do this, run two quick tests:
Open a command prompt and enter:
lmutil lmstat -a
This command queries all the license servers on the search path (
LM_LICENSE_FILE). The output will look something like this:
c:\>lmutil lmstat -a lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved. Flexible License Manager status on Thu 1/29/2009 12:52 [Detecting lmgrd processes...] License server status: 8224@my_lic_server <- Name of server License file(s) on my_lic_server: C:\\license.dat: <- License file location on server my_lic_server: license server UP (MASTER) v10.8 <- lmgrd version Vendor daemon status (on my_lic_server): <- the daemons running armlmd: UP v10.8 <- daemon version Feature usage info: <- list of components and current users Users of compiler: (Total of 1 license issued; Total of 0 licenses in use)
Or, if the connection fails the output will look something like this:
c:\>lmutil lmstat -a
lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
Flexible License Manager status on Thu 1/29/2009 12:52
[Detecting lmgrd processes...]
Error getting status: Cannot connect to license server system. (-15,10:10061 "WinSock: Connection refused")
Now run the test again, but this time on the server machine. On the server, open a command prompt and enter:
lmutil lmstat -a
The output will be of the same format as on the client. Based on the results of the two tests you have an indication on where the problems lies:
|On the Client||On the Server||See section on...
|FAIL||SUCCEED||Client or Connection Problems|
If the server software (
lmgrd) is running correctly, then the next step is to determine why the client is unable to check-out a license.
On the client, open a terminal and enter the command:
The command tells the compiler to attempt a license check-out. The output will look something like this:
C:\>armcc --vsn ARM C/C++ Compiler, RVCT4.0 [Build 400] Error: C9932E: Cannot obtain license for Compiler (feature compiler) with license version >= 4.0: Cannot connect to license server system. The license server manager (lmgrd) has not been started yet, the wrong port@host or license file is being used, or the port or hostname in the license file has been changed. Feature: compiler Server name: 10.1.72.146 License path: 8224@my_lic_server FLEXnet Licensing error:-15,10. System Error: 10061 "WinSock: Connection refused" For further information, refer to the FLEXnet Licensing End User Guide, available at "www.macrovision.com".
The error message gives much useful information. For now it is the FLEXnet Licensing error (-XXX,XXX) and the License path lines which are of most interest.
The license path is where the tools are looking for licenses. It can contain a number of entries, each will either be
firstname.lastname@example.org) or the path to a license file. In the case of license files, these should be a copy of the license file on the server (this gives the server's hostname/IP address and port). It is recommended that you use the
The error code gives the reason for the failure, the most common codes are listed below:
NOTE: It is possible that there is more than one reason the tools are unable to connect to the server. The error message from the tools will only give the first error. So once you have resolved this issue, you should re-run the command to check for further errors!
The following gives a list of common error codes:
FLEX error -4: Licensed number of users already reached
FLEX error -12: Invalid data returned from server system
FLEX error -15: Cannot connect to license server system
FLEX error -18: License server system does not support this feature
FLEX error -25: License server system does not support this version of the feature
FLEX error -38: User host on EXCLUDE list for feature
FLEX error -39: User host not on INCLUDE list for feature
FLEX error -68: License BORROW support not enabled
FLEX error -96: License server machine is down or not responding
FLEX error -97: The desired vendor daemon is down
FLEX error -114: SIGN= keyword required, but is missing from license certificate
FLEX error -9990: Invalid error code
armccto check-out a license. It may be that this check-out succeeds, but the check-out for other tools fail. If this is the case for you, run the tool that is failing and see what error code it reports. The codes are common across ARM development tools.
If the lmutil command failed on the server, it is likely that the FLEXnet server software (lmgrd and/or armlmd) is not running. You should confirm, using Task Manager on Windows or the ps command on Linux.
If the processes are listed, these may be stale processes left over from a crash. Usually you will have to manually kill these stale processes before attempting to re-start the server software. BEWARE - it is possible to run multiple lmgrd servers (but not
armlmd) on the same physical machine - refer to here.
Once you have killed any stale processes try manually re-starting the lmgrd software. The command is as follows:
lmgrd -c /path/to/license.dat -z
/path/to/license.dat" as appropriate. The
-z flag causes the server to print all log and diagnostic information to the console. This is not usually desirable, but useful for trouble shooting. Alternatively, you can replace
-l <filename>, which directs the messages to a file.
If the server starts up correctly, you will see something similar to this:
C:\>lmgrd -c license.dat -z
(lmgrd) Please Note:
(lmgrd) This log is intended for debug purposes only.
(lmgrd) In order to capture accurate license
(lmgrd) usage data into an organized repository,
(lmgrd) please enable report logging. Use Macrovision's
(lmgrd) software license administration solution,
(lmgrd) FLEXnet Manager, to readily gain visibility
(lmgrd) into license usage data and to create
(lmgrd) insightful reports on critical information like
(lmgrd) license availability and usage. FLEXnet Manager
(lmgrd) can be fully automated to run these reports on
(lmgrd) schedule and can be used to track license
(lmgrd) servers and usage across a heterogeneous
(lmgrd) network of servers including Windows NT, Linux
(lmgrd) and UNIX. Contact Macrovision at
(lmgrd) www.macrovision.com for more details on how to
(lmgrd) obtain an evaluation copy of FLEXnet Manager
(lmgrd) for your enterprise.
(lmgrd) pid 524
(lmgrd) Done rereading
(lmgrd) FLEXnet Licensing (v10.8.5.0 build 31891 i86_n3) started on my_lic_server (IBM PC) (2/5/2009)
(lmgrd) Copyright (c) 1988-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
(lmgrd) US Patents 5,390,297 and 5,671,412.
(lmgrd) World Wide Web: http://www.macrovision.com
(lmgrd) License file(s): license.dat
(lmgrd) lmgrd tcp-port 8224
(lmgrd) Starting vendor daemons ...
(lmgrd) Started armlmd (pid 132)
(armlmd) FLEXnet Licensing version v10.8.5.0 build 31891 i86_n3
(armlmd) Server started on my_lic_server for: compiler
(armlmd) EXTERNAL FILTERS are OFF
(lmgrd) armlmd using TCP-port 1142
If the server appears to have started correctly, re-run "
lmutil lmstat -a" to check that you are able to query it successfully. If this also succeeds, then monitor the server as the problem may come during operation rather than start up.
Otherwise, you will see an error message at some point after the notice. How far through the start up sequence it got before the error gives an indication of where the issue lies. Below are common messages to see in the output:
A license file provides a fixed number of seats for each component. If all the seats are in use, further requests will not be satisfied. Normally, the server will queue a request until a seat becomes available - so that the client does not see a failure. On the client you would see something like this:
Waiting for license...
There are cases where this queuing mechanism fails, and this is when you would see this error message on the client. Please see the following Knowledge Article for more information:
This message is normally only seen with older tools, such as ADS 1.2. It means that the something is interfering with the communication between the server and client. This is covered in more detail in the following FAQ:
The hostname or IP address specified in the license path is valid. However, the tools were unable to open a connection to a FLEX license server on the specified port. Possible causes include:
The FLEX server software (lmgrd) has not been started.
lmutil lmstat -a" succeeded on the server then the server software is be running.
On the client, you have specified the wrong port on
Check the port listed in the server's lmutil output, does it match the setting on the client?
A firewall is blocking the connection.
It is possible that something is blocking communication, typically a firewall. This is covered in more detail in the following FAQ:
The tools were able to connect to the license server successfully. However, the server does not host the feature that the client was trying to check-out. This can happen for a number of reasons. For example, RVDS is sold as Professional and Standard editions. The Professional edition includes additional features. If you were to try using the Professional edition with a Standard license, you could see this error.
Another explanation could be that you have multiple license servers. For example, one server for ARM licenses and another third party licenses. In which case this could indicate that you are specifying the wrong server on the search path. Check the value of
ARMLMD_LICENSE_FILE on the client, and that this matches the ARM license server.
The tools were able to connect to the license server successfully. The server hosts the feature that was requested - but not the correct version. This usually indicates that you are trying to use an older license with a more recent tool. For example, using the RVDS 4.0 tools with an RVDS 3.1 license.
NOTE: You may see this message in license server logs, even when the check-out succeeded. This is due how the server operates internally when it hosts a mix of licenses, and can be ignored. For further information please see FAQ: "Why am I getting DENIED messages in my server log?"
The FLEX server allow licenses to be reserved for certain users, or groups of users. This is done using an options file.
These messages can be seen when a user attempts to check out a license reserved another user/group. For more information on option files, please see the following FAQ:
ARM's tool licenses do not support the FLEX borrow feature. Attempting to user borrow will result in this error. For further information, please see the following FAQ:
There are several variants of this message:
WinSock: Host not found (HOST_NOT_FOUND)"
This message is a networking fault being flagged by the host operating system (in this case Windows). It shows that the OS failed to translate the hostname into an IP address. Check that the correct name is being specified, and that your network's name resolution is working correctly. If these are correct, try using the "
ping" command to check that the client can see the server on the network.
Alternatively, try using the server's IP address instead of the hostname.
This usually indicates the port being used by armlmd is being blocked, possibly by a firewall. Check on the server which port is being used by the daemon and that it is open on the server's firewall.
By default, the armlmd port number is not specified. It is assigned by the host operating system at server start. If the server has a firewall it is advisable to set the port manually. In the license file change:
VENDOR armlmd port=XXXX
XXXX is the port number you wish to use.
In this case the tools were able to contact the license server (
lmgrd), but the vendor daemon (
armlmd) did not respond. This usually indicates that armlmd has crashed. Check the server's debug log, you should see a message indicating that
lmgrd lost its connection to armlmd. Shut down
lmgrd, and check that there are no stale
armlmd processes. Then re-start
This message is displayed when the server attempts to issue an old format license to a more recent tool. For example, trying to issue an ADS license to RVDS. Normally this will not happen, however there are cases where it can. Please see this FAQ for further information.
NOTE: You may see this message in license server logs, even when the check-out succeeded. This is due how the server operates internally when it hosts a mix of licenses, and can be ignored. For further information please see this FAQ.
The license file is missing the
SERVER line. This could be because it has been edited, or accidently commented out. Try re-downloading the license file from ARM's website. Alternatively, you may be passing a node-locked license file, which can not be hosted in this way.
lmgrd has launched and parsed the license. It has tried to launch the ARM vendor daemon (
armlmd), but was unable to locate the executable.
lmgrd will have searched on the
PATH, and within the same directory as itself. Check the location of
armlmd.exe on Windows) and ensure that it is on the search path. Alternatively you can specify the location in the license file. The file from ARM will have this line:
The port specified on the
SERVER line of the license file is in use. This is usually caused by having a lmgrd process already running, for example a stale process.
lmgrd has previously crashed the OS may not yet had released the port.
It is possible, but rare, that the port is being used by another application.
There are two common causes for this error:
The hostid in the license file does not match the machine. You will need to rehost the license to use this machine.
The license file has been edited. Only a few sections of the license file can be editted, editing any other section will result in this error. Re-download the license file from the ARM web licensing portal.
The feature specified has expired. If all the features in the license file have expired the server will fail to start.
(lmgrd) MULTIPLE "armlmd" license server systems running.
You can run multiple FLEXnet license servers on the same machine - if they are for different vendors' licenses. However, only one instance of
armlmd (the ARM vendor deamon) can be running on the machine. If armlmd is already running when the server software starts it fail with this error:
(armlmd) EXITING DUE TO SIGNAL 32 (lmgrd) armlmd exited with status 32 (Exited because another server was running) (lmgrd) MULTIPLE "armlmd" license server systems running.
There are two common causes of this error. You be trying to run two instances of the license server on the same machine - both hosting ARM licenses. This is not supported. You will need to merge the license files, and host them from a single instance of the server software. Merging license file is covered here.
lmgrd has previously exited uncleanly it is possible that
armlmd did not close down. You should check for stale instances of
armlmd, and terminate them. On Linux this can be done with the "
ps -ax | grep armlmd" command. On Windows you can use Task Manager.
Unfortunately this error message is not very informative. It is usually caused when the server is passed a node-locked license. This configuration is not supported, and leads to this error message. The message is only seen at the point a client attempts to use the license, not when the license it initially parsed. You confirm whether this is the cause by running "lmutil lmstat -a" on the either the server or a client. If a node-locked license is present on the server, the lmstat output will include one or more lines similar to this:
Users of <feature>: (Uncounted, node-locked)
To resolve this issue you must remove all the node-locked licenses from the license file.
This error can be seen when using Microsoft Windows for the license server. The armlmd daemon requires libraries from Microsoft Visual Studio, if they not present this error is seen. Refer to:
If you see this when starting the license server:
... (lmgrd) license manager: can't initialize:No SERVER lines in license file. (lmgrd) License Path: "license.dat" (lmgrd) FLEXnet Licensing error:-13,66
This shows that your license file does not contain a SERVER line. The SERVER line in a license file should be near the top of the file, and the format is:
SERVER <HOSTNAME or IP ADDRESS> <HOSTID> <PORTNUMBER> VENDOR armlmd
Possible causes include:
Article last edited on: 2016-01-11 17:49:23
Did you find this article helpful? Yes No
How can we improve this article?