Managing Licenses from Multiple Vendors

> ## Chapter 3

> ## Managing Licenses from Multiple Vendors

> Since more than 2500 vendors have chosen FLEXlm as their license manager, chances are good that you have to administer FLEXlm licenses from more than one vendor.

> ### 3.1 Overview of Multiple License Management Strategies

> When you are running FLEXlm-licensed products from multiple vendors, you may need to take steps to prevent licensing conflicts during installation. There are several strategies to accomplish this, of which three are presented here:

> - Multiple machines, each running one `lmgrd`, one vendor daemon, and using one license file.
> - One license server machine running multiple `lmgrd`s, each of which running one vendor daemon and using one license file.
> - One license server machine running one `lmgrd`, multiple vendor daemons each of which using its own license file. License files share a common directory.

> These strategies are ordered from most to least independence among vendors. In the first option mentioned above, you have the most license server machines to monitor; in the third option you have only one server and one license file to administer. Each of these three strategies is described in detail in the following sections. Variations are mentioned in Section 3.6, “Additional Considerations.”

> ### 3.2 Multiple Machines

> In this scenario, each distinct vendor daemon and its associated license file or files is located on a separate server machine. Each machine serves licenses just for its vendor daemon and runs its own local copy of `lmgrd`. Figure 3-1 shows this arrangement.

> Figure 3-1: Multiple Server Machines

> ##### Advantages

> - The license files for each vendor are independent from one another.
> - Machines are maintained separately. If one machine goes down, the other machines continue to serve licenses for their vendors.
> - Each server has its own debug log.
> - Licensing load is distributed.

> ##### Disadvantages

> - Administrative overhead is the highest.
> - If one machine goes down, licensing for the vendor’s product associated with that machine is down.

> ##### Starting the License Server

> Invoke the license manager daemon on each machine:

> lmgrd -c `server_machine_n_license_list`

> Where `server_machine_n_license_list` is a license-file list as described in Section 3.5, “Managing Multiple License Files.” Each `lmgrd` starts the vendor daemon referred to in its license file(s).

> ### 3.3 One Machine with Multiple License Servers

> In this model, each vendor daemon and its associated license file or files is served by its own lmgrd process, and everything is contained in one server machine. Figure 3-2 depicts this scheme.

> Figure 3-2: Multiple lmgrds, Multiple License Files

> When maintaining separate license servers on the same machine, keep in mind:

> - If the TCP/IP port number is specified on the SERVER line, it must be different for each license server. Use a standard text editor to change the TCP/IP port number in each license file so that they are all different. If you are running 10 license servers or less, you can omit all port numbers and `lmgrd` will choose unique ones for you within the default range of 27000-27009.
> - You must make sure that you are using a compatible version of `lmgrd` for each particular license file. This is done by using an explicit path to `lmgrd`. See Section 3.6.2, “Version Component Compatibility.”
> - The number of license servers is limited only by the CPU memory and networking of the machine.

> ##### Advantages

> - The license files for each vendor are independent from one another.
> - License servers are maintained separately. If one server goes down, the other servers continue to serve licenses for their vendors.
> - Each server has its own debug log.

> ##### Disadvantages

> - Administrative overhead is high.
> - If the machine goes down, all licensing is disabled.
> - Licensing load is concentrated to one machine.

> ##### Starting the License Server

> Invoke each license server:

> - For Server 1: `lmgrd -c` `vendor_ABC_license_dir_list`
> - For Server 2: `lmgrd -c` `vendor_DEF_license_dir_list`
> - For Server 3: `lmgrd -c` `vendor_XYZ_license_dir_list`

> Where `vendor_nnn_license_list` is a license-file list as described in Section 3.5, “Managing Multiple License Files.” Each `lmgrd` starts the vendor daemon referred to in its license file(s).

> ### 3.4 One Machine with One License Server and Multiple License Files

> In this scenario, one `lmgrd` process runs on the server machine and serves one or more vendor daemons, each with one or more license files; the license files usually are in the same directory. The standard filename extension for license files is `.lic`. The number of vendor daemons is not limited by FLEXlm. Figure 3-3 illustrates this scenario.

> Figure 3-3: One lmgrd, Multiple License Files

> ##### Advantages

> - The license files can be maintained separately.
> - Reduced administrative overhead.

> ##### Disadvantages

> - One lmgrd serves all vendor daemons. If `lmgrd` goes down, all licensing is disabled.
> - If the machine goes down, all licensing is disabled.
> - Output from all vendor daemons goes into one common debug log unless separate debug logs are specified with DEBUGLOG in each vendor’s options file. Having one common debug log makes it harder to debug a single vendor daemon’s problem.
> - Maximizes licensing load to one machine and one `lmgrd` process.

> ##### Starting the License Server

> Invoke the license manager daemon once on the server machine.

> lmgrd -c `common_license_directory`

> `lmgrd` processes all files with the `.lic` extension in `common_license_directory` and starts all vendor daemons referred to in those files; so, there is no need to enumerate each license file name on the `lmgrd` command line.

> ##### See Also

> - Section 3.5, “Managing Multiple License Files”
> - Section G.1.2, “Capturing Debug Log Output for a Particular Vendor Daemon”

> ### FLEXlm Version Notes

> - Ability for one `lmgrd` to process multiple license files introduced in v6.0 `lmgrd`.

> ### 3.5 Managing Multiple License Files

> You can manage multiple license files that are on the same server machine via a license-file list. A license-file list is specified two ways:

> - By using the `-c` option to `lmgrd`

> lmgrd -c `license_file_list` [other lmgrd options]

> - By defining the `LM_LICENSE_FILE` environment variable within the scope of the `lmgrd` process’ environment.

> Install the license files in convenient locations on the server machine and then define the `license_file_list`.

> Wherever `license_file_list` is specified it consists of a list of one or more of the following components:

> - the full path to the license file
> - a directory containing one or more license files with a `.lic` extension

> > Note: Use a colon (“ : ”) to separate the license file names on UNIX and on Windows use a semicolon (“ ; ”).

> `lmgrd` builds up an internal license-file list when it starts up by parsing each license-file list component in the order listed.

> Some scenarios where a license-file list is used include those described in Section 3.2, “Multiple Machines,” Section 3.3, “One Machine with Multiple License Servers,” or Section 3.4, “One Machine with One License Server and Multiple License Files.”:

> ##### See Also

> - Section 2.1.1, “Setting the Path with an Environment Variable”
> - Section 4.3.1, “Redundancy via License-File List”
> - Appendix D, “FLEXlm Environment Variables”

> ### 3.6 Additional Considerations

> #### 3.6.1 Combining license files

> If you have two or more products whose licenses are intended for the same machine, as specified by their SERVER lines, you may be able to combine the license files into a single license file. The license files for the models described in Section 3.3, “One Machine with Multiple License Servers,” and Section 3.4, “One Machine with One License Server and Multiple License Files,” could be combined if they met certain criteria. Figure 3-4 shows one possible scenario using a combined license file.

> Figure 3-4: One lmgrd, One License File

> ##### Advantages

> - A single license file to administer.
> - Low administrative overhead.

> ##### Disadvantage

> - It is complicated to decide how to combine license lines from multiple vendors into one file, initially and over time.

> ##### Starting the License Server

> Invoke the license manager daemon once on the server machine.

> lmgrd -c `combined_license_file`

> ##### Criteria for Combining License Files

> Your product’s license file(s) define the license server(s) by host name and hostid in the SERVER line(s) in the license file. License files are candidates for combining under the following conditions:

> - The number of SERVER lines in each file is the same.
> - The hostid field of each SERVER line in one file exactly matches the hostid field of each SERVER line in the other file.

> Some possible reasons license files may not be compatible are:

> - License files are set up to run on different server machines, so hostids are different.
> - One file is set up for single server (has only one SERVER line), the other is set up for a three-server redundant license server (has multiple SERVER lines).
> - Hostids for the same machine use different hostid types. For example, the SERVER line in one license file uses INTERNET= for its hostid type and the other file uses the ethernet MAC address for its hostid type.

> If your license files are compatible as described above, then you have the option of combining license files as summarized in Figure 3-4 and below in “How to Combine License Files.” Note that you are not required to combine compatible license files. There is no performance or system-load penalty for not combining the files.

> ##### How to Combine License Files

> If your license files are compatible, use any text editor to combine them. To combine license files, read all of the compatible license files into one file, then edit out the extra SERVER lines so that only one set of SERVER lines remains. Save the resulting data, and you have your combined license file. Figure 3-5 shows an example of combining license files.

> Figure 3-5: Combining License Files

> #### 3.6.2 Version Component Compatibility

> When one lmgrd process manages multiple vendor daemons, it may be the case that those vendor daemons do not use the same version of FLEXlm. By observing the FLEXlm version compatibility rules described in Section H.1, “Version Compatibility and Components,” you are assured that all of your FLEXlm components are compatible.

> For specific FLEXlm-licensed applications, use either the new or the old version (of course, the vendor daemon for that application must be at least as new as the application itself).

FLEXlm End Users Guide
July 2003