IMSL Products: License Tips 1. License manager - How to get system hostids on various systems PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION How do I get the system hostid (lmhostid, Ethernet, ncp, DECStation / Ultrix, DG / dgux5, HP700, RS - 6000 / AIX, SCO / Unix, SGI / IRIX, SUN, VMS, Windows and NT) ? SOLUTION This differs by hardware platform and operating system. You can always get the hostid using the command : lmhostid However, customers that don't have access to lmhostid often need to get the hostid. Following is a chart for the most popular operating systems : Hardware / OS Hostid type How to obtain --------------------------------------------------------------------------- DECStation / Ultrix Ethernet lmhostid arp on a different node usually works. DG / dgux5 32 - bit number /usr/sbin/systemid HP700 (also LM HP700 32 - bit number uname -i question) RS - 6000 / AIX 32 - bit number uname -m, remove last 2 digits, then use remaining last 8 digits; 000276513100 becomes 02765131 SCO / Unix String uname -x, then prepend (post v3.0) ID_STRING= SCO / Unix 32 - bit uname -x, remove any (pre v3.0) leading letters, then use only next hex digits; sco3ax5 becomes 3a. SGI / IRIX 32 - bit echo '/etc/sysinfo -s' and convert to hex from decimal SUN 32 - bit hostid VMS For systems running Decnet Phase IV procedure : $mcr ncp NCP> show known lines char NCP> exit Use the "Hardware address" as the hostid. For systems running Decnet Plus: $MCR NCL NCL> show csma-cd station * all status NCL> exit Use the "Hardware address" as the hostid. ALSO : to get the hostname from VMS, type : show node Windows and NT Ethernet lmhostid (Windows : Supports ODI, NDIS, and Packet Driver Ethernet interfaces. NT : Supports "NWLink IPX/SPX" -- available from NT system CD) 32 - bit C : vol dir c:\ and look for serial number "Volume Serial Number is", and remove '-'. 32 - bit Sentinel lmhostid -sentinel dongle from Globetrotter 2. License manager - Blank hostid or wrong host on HP700 PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: HP700 PROBLEM DESCRIPTION On HP700, the hostid seems to be blank (""). Executing a program returns the error message "Wrong host for xxxxxx", where xxxxxx is the product name. SOLUTION Because obtaining the Ethernet address (which is sometimes used as the hostid on hp700 systems) requires read and write permissions on "/dev/lan0". To fix this, 1) log in as root 2) type "chmod 777 /dev/lan0" No, this is not a security hole. It is trivial to read TCP packets by simply connecting a notebook computer to the net. System administrators should assume these packets are readable. Therefore, changing perms on /dev/lan0 is not a security problem. We've seen postings suggesting using setuid to get around this problem. Using setuid is a serious, real security hole; setting permissions on /dev/lan0 is not. Better yet, if you're using v3.0 or later of FlexLM, use the uname -i hostid. This is the default hostid produced by lmhostid with v3.0 and later, primarily to get around all the problems we were seeing using Ethernet address. 3. License manager - HP gives Ethernet or uname hostid, why? PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: HP PROBLEM DESCRIPTION At some HP sites lmhostid gives an Ethernet hostid, and at others a uname -i hostid. Why? SOLUTION Until v3.0 of FlexLM, FlexLM only supported Ethernet hostid on hp700. VNI uses FlexLM 2.4, so using LMHOSTID is recommended when using this version. On hp700: Command Version Result lmhostid v3.0+ uname -i hostid lmhostid -long v3.0+ uname -i hostid lmhostid -idmodule v3.0+ id-module hostid lmhostid v2.4 Ethernet hostid lmhostid -long v2.4 id-module hostid lmhostid -ether v2.2+ Ethernet hostid lmhostid v2.1 id-module hostid (^--rare, and old) 4. License manager - SGI gives wrong hostid PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: SGI PROBLEM DESCRIPTION For some applications, the hostid on some SGI systems (IRIX 4 / IRIX 5) seems to be wrong. Why? SOLUTION This only happens when an application has been compiled on IRIX 4, and is running on an IRIX 5 system. Since IRIX 4 is now getting old, this problem should occur less often. After IRIX 5.1, SGI has two hostids available on each system, and old and a new hostid. A hostid problem arises when using FlexLM binaries linked with IRIX 4 on an IRIX 5 system. The IRIX 4 binaries only see the "old" hostid, whereas the IRIX 5 binaries see the "new" hostid. To use FlexLM binaries linked with IRIX 4 on an IRIX 5 system, the end-user will have to change his system's hostid to the "old" hostid. To fix, as root, run: # systune -i systune- use_old_serialnum use_old_serialnum = 0 systune- use old_serialnum 1 Do you want to change this to 1? y systune- quit # You will see several values printed, one of which is "use old serial num". Value is set to 0 on 5.1 by default. This should be set to 1 using systune. Example: new: 332293 old: 53336b32 5. License manager - Wrong hostid (0 or FFFFFFFF) on Windows NT (NWLink IPX/SPX) PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: Windows NT PROBLEM DESCRIPTION On NT, I'm getting a 0 hostid (or FFFFFFFF)--how do I fix this (NWLink IPX/SPX)? SOLUTION The "NWLink IPX/SPX" network driver must be installed. To do this: o Put the NT system disk in the CDROM drive. o Select "Main" o Select "Control Panel" o Select "Network" o Select "Add" o And add the NWLink IPX SPX driver 6. License manager - Application can't find license file PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION My application can't seem to find the license file. What do I do ($LM_LICENSE_FILE / license.dat) ? (Error -1 NOCONFILE "cannot find license file") SOLUTION Applications find the license file in one of 3 places: 1) A location specified in the application by the vendor. See the application manual for this location. 2) $LM_LICENSE_FILE (including VMS and Windows/NT). This can also be a colon-separated list (like $PATH) of license files, so that this environment variable can be set once for all applications. 3) the default FlexLM license location: /usr/local/FlexLM/licenses/license.dat With v4.0+ applications (available spring-1995), a new feature, the License Finder, can also be used in place of $LM_LICENSE_FILE. See the FlexLM End-Users or Programmers Guide 7. License manager - LMSTAT doesn't report features PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION lmstat doesn't report all the features in my license file (LM_LICENSE_FILE, "uncounted" features). Why? SOLUTION Here's the possibilities: 1) $LM_LICENSE_FILE is set to the wrong file. 2) lmstat only reports the first file in the $LM_LICENSE_FILE colon-separated list. Use lmstat -c to report on each file separately. 3) lmstat doesn't report on "uncounted" features. These are features with a "number of licenses" field set to '0'. "Number of licenses" is the 6th item on a FEATURE line (after the expiration date). There's nothing to report on uncounted features. 8. License manager - FlexLM license files from multiple vendors PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION I've received FlexLM license files from 2 different companies. Do I have to combine them? SOLUTION 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. 9. License manager - How to combine license files PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION I want to combine license files. How do I do it? SOLUTION Only license files with identical hostids on the SERVER line can be combined. Note that license files may refer to the same host using different hostids, particularly on hp700, where one file may use Ethernet hostid, and another uname -i. In this case these license files CANNOT be combined because the hostids are not identical. If the hostids are identical, concatenate the 2 files, and then remove identical SERVER lines, so there's only one (or three for redundant servers) SERVER line(s). It's then strongly recommended that symbolic links be made from the new, merged file to the old file locations. That way, the applications will be able to find the newly merged file without having to change anything. Finally, make sure you use the latest version of lmgrd on the merged file. The FlexLM version of lmgrd MUST be = the FlexLM version of the vendor daemon (noted on the DAEMON line). Use lmver to determine the FlexLM version of the vendor daemon or lmgrd. (The patch letters at the end of the version are not significant when comparing versions for this purpose.) ALSO The LM_LICENSE_FILE environment variable can be used to establish a new default location for the license file ( note that a " -c " option will override the setting of LM_LICENSE_FILE ). In addition, client programs can process a series of license files by setting LM_LICENSE_FILE to a path, as in : setenv LM_LICENSE_FILE file1:file2:file3:...:filen or on VMS : assign file1,file2,file3,...,filen LM_LICENSE_FILE or also on VMS (for example) : define LM_LICENSE_FILE DISK$USER:[abc]license.dat,DISK$USER:[def]license.dat,DISK$USER:[ghi]license. dat , ....etc Client programs will then try using file1; if it fails, file2 will be tried, etc. 10. License manager - When to consider combining license files PRODUCT/PLATFORM INFORMATION Product/Version #: All Architecture/OS version: All PROBLEM DESCRIPTION When is it recommended to combine license files? SOLUTION 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. 11. License manager - Conflict with MATLAB and IMSL on VAX / VMS PRODUCT/PLATFORM INFORMATION Product/Version #: IMSL libraries Architecture/OS version: VAX/VMS PROBLEM DESCRIPTION There seems to be a license manager conflict with MATLAB and IMSL on the VAX / VMS. MATLAB ignores the ACL's (access control lists) on the license.dat file and MATLAB must be checking its access to this file not using the VMS-provided RMS (Record Management Services) facilities; otherwise, whether access is granted due to protection codes or ACLs is normally totally transparent. Also MATLAB uses port number 201 and IMSL / VNI uses port number 200 in the DAEMON lines. What are the issues involved in combining the license.dat files of both products ? SOLUTION 1. MATLAB and ACL's : VMS has 2 mechanisms for controlling who can access a file: There is the "protection codes" and the more elaborate "access control lists" (ACLs). We tend to control access to the library of 3rd-party software using ACLs. The ACLs on the file allow everyone who is authorized to run the 3rd-party software access to it. However, MATLAB, by some convolutions, was ignoring the ACLs on the license file. Instead, the protection code had to be set to world read/execute (W=RE). This means MATLAB must be checking its access to this file not using the VMS-provided RMS (Record Management Services) facilities; otherwise, whether access is granted due to protection codes or ACLs is normally totally transparent. To change the protection codes, type : set prot = (w:re)