FLEXlm v2.4 executables and later will not run on Apollo SR10.1. The FLEXlm kit, however, contains everything required to re-build all executables on these Apollo releases. If you need to support SR10.1, you will need to re-build lmgrd, the FLEXlm utilities, and your vendor daemon on SR10.1.
The /dev/lan0 device must be readable to obtain an ethernet hostid. The uname -i hostid is preferable for this reason, and because ethernet is not always present.
In version 2.4, /dev/lan0 must have read and write permissions for everyone. Ethernet and FDDI are known to be supported devices, although earlier versions of HPUX had a bug with FDDI as hostid.
IBM changed the system call that returns the node id (uname) several times; most recently, in AIX 3.1, the low-order decimal digit of the machine serial number was left off. The AIX 3003 version has a corrected system call which returns the entire serial number. This means that the hostid of your customer's RS/6000 system CAN CHANGE when they upgrade OS revisions. We know of no workaround other than to re-issue passwords.
We believe that this condition stabilized in AIX v3.1.
Redundant servers are not supported on NCR systems, due to a bug in the accept() networking call on these platforms.
The permissions on the /dev/lan0 device must be readable to obtain a hostid.
On SGI systems, NIS is not enabled in your application by default. In order to build your program (and vendor daemon) for NIS support on SGI systems, add the following libraries at the end of your ld command:
-lsun -lbsd -lc_s |
All SVR4 systems, including Solaris 2.x, require linking with -lsocket -lnsl. Solaris 2.x also requires -lintl. (OSF/1 does NOT require these link flags, although it is otherwise similar to SVR4).
The Ultrix ethernet address lookup algorithm will search all ethernet devices, if the device is not found in the vendor-supplied or standard tables. The search order is now:
vendor-supplied table.
standard table.
generic lookup.
Redundant server hosts are not supported on VMS.
FLEXlm client routines continue to use SIGALRM and setitimer(), as they do on the UNIX version. The FLEXlm implementation of setitimer() uses the alarm() call on VMS.
On VMS, the SYSNAM and SYSLCK privileges are required to run the daemons.
Vendor daemons support up to 255 clients each.
The VMS version of FLEXlm uses DECnet as a transport, rather than TCP/IP. This means that VMS servers cannot serve UNIX clients, and UNIX servers cannot serve VMS clients.
If you let FLEXlm do its checking automatically, the check routine is implemented with signals (i.e., it runs at AST level). Therefore, if you use any of the following handler routines:
LM_A_USER_RECONNECT
LM_A_RECONNECT_DONE
LM_A_USER_EXITCALL
LM_A_PERIODIC_CALL
you should be careful to code them such that they can work at AST level. Note that you can call any of the FLEXlm client routines (routines that start with “lc_”) from AST level.
If you use your own encryption routine (the “crypt” member of the setup struct), this routine must be coded to work properly from AST level.
Each FLEXlm client requires a pair of DECnet logical links. A typical default for the maximum # of logical links is 32, therefore, you will need to increase this parameter on the node that runs your vendor daemon(s). Do this with the following NCP command sequence.
$ mcr ncp NCP> set exec links 100 |
To show how many logical links your system is configured for, do the following:
$ mcr ncp NCP> show exec char |
The result will be displayed as “MAXIMUM LINKS”.
Setting the number of links to 100 should allow for 30 FLEXlm clients and a sufficient number of links for other uses. (If your current number of links is greater than 32, increase it accordingly).
VMS supported ethernet devices:
_xqa0: | DELQA, DEQNA, DESQA | |
_xea0: | DEUNA, DELUA | |
_esa0: | DESVA | |
_eta0: | DEBNA | |
_ewa0: | Alpha | |
_eza0: | uVax 4000 | |
_exa0: | Vax 9000 |
If your customer's device is not one of the supported devices, they can “add support” by doing an assign. The standard table includes the logical device names “flexlm_hostid0”, “flexlm_hostid1”, “flexlm_hostid2”, and “flexlm_hostid3”. Assuming that your customer has ethernet device qqa0:, the following assign statement would add device qqa0:
$ assign _qqa0: flexlm_hostid0 |
This assignment would be done in the process that runs the daemon (for floating licenses) or the process that runs your application (for nodelocked licenses).