This section provides more detailed debugging information about specific areas of FLEX lm . We hope it helps you debug problems you experience at your site.
· When you start the license server (
lmgrd ) be sure that you direct the output into a log file where you can examine it. The log file often contains useful information. You should examine it when you have a problem, and be prepared to answer questions about it when you talk to a support person.
· If the license server appears to have started correctly (which you should be able to determine from the log file), try running lmstat -a to see if that program has the same problem as your application.
· What version of FLEX lm does the program use? Use the lmver script, or execute the following command on your
lmgrd , vendor daemon, and application:
strings <program> | grep -i copyright | grep -i flexlm
In FLEX lm v2.2 the ethernet address can be used as the hostid on an HP system. To get the ethernet hostid, use the FLEX lm command lmhostid ether (note there is no dash before ether ). For FLEX lm v2.1 and earlier, the simplest solution is to purchase an HP ID module and attach it to the system. Call your HP representative for details. Note that 0 is a valid ID number. You can ask your software vendor for a license file with an ID of 0 and a short expiration date (perhaps good for a few days or one week) to give you some time to get an ID module.
The vendor daemon checks the hostid listed on the SERVER line in the license file; if it does not match the hostid of the machine it is running on, this message will be printed. Possible causes include 1) you are trying to run the license server on a different machine from the machine the file was made for; 2) the hostid of the machine you are running on changed (for example, the HP ID module was moved, or the cpu board was replaced); 3) the hostid in the license file was modified.
Verify that the hostid of the machine on which the vendor daemon (or node-locked client program) is being run matches the hostid specified in the license file (on the SERVER line for the vendor, or on the FEATURE line for a node-locked client). You can run the lmhostid program to see what FLEX lm thinks the hostid is. You may not modify the hostid in the license file. If the hostid of your server machine changes, you must get a new license file from your software vendor.
Verify that the application is using the proper license file. Verify that specified server machine is up and reachable by executing another command that uses TCP, such as rsh or rlogin , from the client to the server. Verify that the vendor daemon is running (you can use ps on the server to look for it). Examine the license log file to see if any problems are reported, particularly messages indicating that the vendor daemon has quit. Run lmstat -a from the server machine to verify that the vendor daemon is alive. Run lmstat -a from the client machine to verify the connection from client to vendor daemon across the network. Try using telnet <hostname> <portnum> where hostname and portnum are the same as on the SERVER line in your license file.
There is a bug in FLEX lm v1.5 in which the license server only listens to the ethernet address associated with the primary hostname on the system. The simplest solution is to get an upgraded license server from your software vendor (you can run a new license server and still keep running the old application software). Alternatively, you can ask your software vendor for a different license file and run your license daemon on a different machine with a single ethernet board. If this is not possible, you may be able to modify your host tables to direct all FLEX lm requests to the active port on the machine.
The program is able to find the server, but it is not getting the expected data. The most likely cause for this is that you are running a v2.1 application program (or lmstat) and a v1.5 daemon program.
Possible causes for this are 1) the license file was modified (either the hostid on a SERVER line or anything on the FEATURE line was changed); 2) the vendor used the wrong version of his license creation program to generate your license file (or there is a bug in that process).
You may not modify the license file (except for specific fields, see License File ). If you need to change something in your license file, you must get a new license file from your software vendor.
The most likely cause of this problem is that you are simultaneously trying to run two different versions of the application program, and the software vendor has not specifically set up the new version for this kind of compatibility. Check the license server log file for a comm version mismatch warning message; this indicates that someone is running a v1.5 client with a v2.1 or later license server.
lmgrd uses execl to start each vendor daemon running. If there is a problem starting the vendor daemon, this message is output to the log file. This error is typically caused by one of the following: 1) there is no executable at the location referred to by the license file (and printed out in the log file); 2) the executable does not have the proper protection to be run (the file does not have the "x" bit set, or one of the directories in the path is not readable); 3) there was an error building the executable, and it can not be run; 4) the executable is for a different machine architecture.
Verify that the path to the vendor daemon is absolute (i.e. starts with a slash character, "/",) and that it points to the executable program itself, not the containing directory (for FLEX lm v1.5). Ensure that the file exists by doing an ls -lof the vendor daemon filename(s) specified in the log file. Make sure you do this as the same user that started
lmgrd . Verify that the file is executable. Note that if you are running as root and using an NFS-mounted filesystem, the relevant protection bits are the "other" bits ( not the "user" bits), even if the file is owned by root. Do a whatis on the file (if your system has that program). whatis should tell you the file is an executable for the machine you are trying to run it on. Run the vendor daemon directly from the command line. If the vendor daemon is properly linked, it will tell you that it must be run from
lmgrd ; if it crashes or fails to execute, then it is not properly linked.
Check to see if there is more than one copy of the daemon running: use a command like ps -aux | grep vendorname to search for it. Check for more than one
lmgrd running as well, since it will restart your vendor daemon when it is killed. If more than one
lmgrd is running, kill them all (using simple kill commands, not kill -9 etc.), then kill any remaining vendor daemons (try a simple kill, if that fails then try kill -9 ) and start one fresh copy of
lmgrd . Check to see if there is a shell script running that cleans out /tmp (or /usr/tmp ). If so, try modifying it so that it does not delete zero length files.