The COMSOL licence manager is the FlexNet licence manager software that COMSOL ships inside every installation and uses to count concurrent users and to lock single-user sessions to authorised computers.[1][2] Which licences need it depends on the licence type, region and operating system. COMSOL’s rule of thumb is that if the licence file contains a line starting with the word SERVER, the licence manager is required.[1] For a Floating Network License (FNL) its purpose is to count concurrent users and to give an error if the number exceeds the licensed amount. For a single user licence in some regions, its purpose is to lock the COMSOL session to a COMSOL-authorised computer.[2] Depending on region and operating system, a hardware dongle may also be required.[1]
Editions
The licence manager has four software components: the licence server manager lmgrd, the vendor daemon LMCOMSOL, the FlexNet utility lmutil and the optional graphical FlexNet Control Panel lmtools.[3] When a user starts COMSOL, the client contacts lmgrd over the network, and lmgrd asks the vendor daemon, which releases licences according to the licence file.[3] Any networked computer can act as the licence server, whether laptop, desktop, workstation or central server, and one computer can be both licence server and client.[2] The licence manager supports a mixed network of Windows, Linux and macOS computers.[2]
COMSOL recommends the licence manager bundled with the newest version of COMSOL, and using one from an older version might work but is not recommended.[1] The SLA goes further for support purposes: Maintenance and Support does not include “the use of the Programs with a license manager other than the one that was delivered by us in conjunction with that version of the Programs”.[12]
Metrics
The licence file is a set of lines that the licence manager evaluates. Its structure, as documented for COMSOL 6.4, is as follows.[4]
| Line | Purpose | Editable by the customer |
|---|---|---|
| Comment lines starting with # | Header with licence type, number and version | Yes, no effect |
| SERVER | Licence server hostname, hostid (MAC address) and port, default 1718 | Hostname and port only |
| USE_SERVER | Tells clients to pass checkout validation to the vendor daemon, so a client’s file can contain only SERVER and USE_SERVER | No |
| VENDOR | Names the LMCOMSOL vendor daemon and its port, default 1719 | Port only |
| FEATURE SERIAL | Licence serial line with licence type, number, products and borrow limit | No |
| INCREMENT | One line per feature with version, expiry, key count, DUP_GROUP, BORROW, serial number and signature | No |
COMSOL states: “You cannot modify anything in the license.dat file except the license server name and (if necessary) port numbers, or the license might not work.”[4] If another program uses port 1718, the port may be changed to any number between 1025 and 64,000.[4] A firewall between the clients and the licence server must allow both ports.[4] For FNL installations COMSOL recommends specifying the licence information in the form port@hostname, for example 1718@my_server.[7]
The unit that an asset manager reads is the FlexNet licence feature: the INCREMENT line carries a feature name, a version, an expiry (permanent or dated) and the number of keys. The documentation includes an example in which a permanent COMSOL 6.4 FNL allows four concurrent users of COMSOL Multiphysics and two of the Heat Transfer Module.[4] Each licensed product has its own feature name, for example ACDC, CFD, RF, STRUCTURALMECHANICS or LLSOLIDWORKS. COMSOL modules and add-on products lists them.
How features are checked out
- Each COMSOL Desktop process checks out COMSOL, COMSOLUSER and COMSOLGUI. COMSOL is checked out by all COMSOL Multiphysics processes, with or without a GUI, and COMSOLUSER counts distinct users.[4] See COMSOLUSER counts distinct users.
- Using functionality that needs an add-on product checks out that add-on’s feature.[4]
- An attached batch job inherits the COMSOL and add-on features from the Desktop, which takes them back when the job finishes or the user detaches.[4]
- Distributed jobs on a cluster check out CLUSTERNODE from each node.[4]
- For an FNL, separate batch features such as COMSOLBATCH and RFBATCH allow batch jobs on remote computers and clusters to run while the user works locally. The command-line option is -usebatchlic. One concurrent user can run an unlimited number of distinct batch processes on one licence when the models differ only by parameter values, which COMSOL implements by hashing the model and using DUP_GROUP=UV.[4]
- A COMSOL Multiphysics server process checks out nothing until a client connects. When a remote computer connects, the server also checks out CLIENTSERVER.[4] A FNL is needed to run server and client on separate computers.[13]
- CAD-kernel add-ons check out CADIMPORT in addition to their own feature, with CADIMPORTUSER counting distinct users.[4]
- Class Kit licences use features such as COMSOLCKL, and COMSOL Server uses CSL and CSLU suffixes, with COMSOLSERVER checked out without a limit; see COMSOL Server, COMSOL Compiler and applications.[4]
Counting / floors
Counting is done by the vendor daemon against the number of keys in each INCREMENT line. COMSOL fixes several settings that the administrator cannot override: VENDOR_STRING determines licence pools, borrowed licences can be returned early, fully qualified domain name matching is not used, the minimum LINGER time is 0 and each new licence request scans all the licence servers.[4] TIMEOUT is supported with a minimum idle time of 900 seconds, and if TIMEOUT or TIMEOUTALL is not specified, idle licences are never timed out.[4] See Idle licences are never timed out unless TIMEOUT is set. An administrator who wants to free abandoned sessions therefore has to configure it.
Options files
A licence administrator can create an options file, usually LMCOMSOL.opt, in the FlexNet format. It can define GROUP lines for user groups, INCLUDE lines to say which groups may use a feature, MAX lines to cap the keys that a group may use, and settings for borrowing such as INCLUDE_BORROW, EXCLUDE_BORROW, BORROW_LOWWATER and MAX_BORROW_HOURS.[10] COMSOL’s example splits an FNL with two COMSOL Multiphysics keys, one Structural Mechanics key and one AC/DC key between two departments.[10] Two cautions apply. A user who does not appear in a group listed in an INCLUDE statement cannot use that feature, and COMSOL advises entering corresponding lines for every INCREMENT line in the licence file so that all functionality works.[10] The same procedure applies to FNL, Class Kit and COMSOL Server licence files and combinations of them.[10]
Usage reporting
The installation includes the FlexNet utilities. Running lmutil lmstat -a with the licence file, or with port@host, lists the users of every feature, the licences issued and in use, and the start times. Linux and macOS use ./lmstat from the license folder for the platform. A user with checkout access can view usage from any computer on the network, and the report is not limited to the administrator or to the computer hosting the licence server.[11] This is the primary evidence for reconciling concurrent use against the number of purchased keys, and the SERIAL feature is shown as uncounted and node-locked.[11]
Virtualization & partitioning
The licence server is identified by a hostid, which is typically the Ethernet (MAC) address of the network card, or the volume serial number of the C drive.[6] The retrieved COMSOL documents give no separate rules for licence servers on virtual machines. A cluster installation needs the licence manager to be reachable from all compute nodes, with the relevant TCP ports open if firewalls are active.[14]
Cloud / BYOL
The documentation says that an FNL does not require an internet connection as long as the installations and the licence server are on the organisation’s internal network and can reach the licence manager on the two TCP ports.[7] If users work from outside the network, for example when working remotely or travelling, an internet connection and additional permissions may be needed.[7] COMSOL tested the software on IPv6-only and hybrid IPv4/IPv6 networks, with the environment variable FNP_IP_PRIORITY set to 6 to make the licence manager use IPv6.[15]
Programs
- License borrowing. Borrowing lets an FNL run without a connection to the licence server. The default maximum period is one month, BORROW=720 in the licence file. The borrower selects Licensed and Used Products and Borrow, other users cannot use borrowed keys, and only the borrower can return early with lmborrow while connected to the licence server network. For Class Kit licences borrowing is disabled by default and needs a request to COMSOL sales.[9]
- Options file administration. The mechanism to allocate keys and set borrowing permissions.[10]
- Changing the licence. If COMSOL sends a new licence file, for example when adding products, the administrator replaces the file and restarts the licence manager or rereads it, or the manager keeps using the old file in memory.[6] See Licence manager must be restarted or reread after a licence change.
- Moving the licence server. The server is defined by the hostid in the file. To transfer to a new machine, request a new licence file from COMSOL Support rather than edit the hostid.[7] The SLA also requires proof that the licence manager was uninstalled from the first computer.[12]
- Installing only the licence manager. The COMSOL Installer can install just the licence manager by clearing every other box on the Products page, or COMSOL Support can provide the files for machines where running the installer is inconvenient. The automated installation uses licmanager = 1 in the answer file.[5]
Audits and compliance
The licence manager is the enforcement point. The SLA requires use only with the delivered licence manager, forbids interfering with or disabling it and bars mechanising or automating the check-out and check-in of seats to circumvent licence management.[12] Replacement licence files depend on active Maintenance and Support, apart from licences for newly added Programs.[12] See New licence files depend on active Maintenance and Support. Licence files are not case sensitive, and the LM_LICENSE_FILE and LMCOMSOL_LICENSE_FILE environment variables are supported except when running the installer.[4]
Out of scope
- The FlexNet Publisher License Administration Guide, which COMSOL’s documentation refers to for options-file syntax, is a third-party document and is not summarised here.[4]
- Licence terms by type, covered in COMSOL Multiphysics licence types.
- Dongle ordering and region-specific enforcement, which COMSOL leaves to its representatives.[1]