Problem Description

You can control multiple COMSOL network licenses from the same license server.

As a license administrator, you can get full control over who is allowed to use each of the licenses on the network. In this solution we show how to administrate two different floating network licenses by merging the two license files into a single license file. It is also shown how to create a so called options file (LMCOMSOL.opt) which is used to control license usage across the network.

Note: Merging two license files together does not mean that it will be possible to access both licenses' modules/products simultaneously from a single COMSOL application (desktop GUI, batch, app, etc). A COMSOL application can only use one license file at a time, and the options file (LMCOMSOL.opt) will dictate which of the license files a specific user or computer can access.

The procedures in this knowledgebase solution are meant to be addressed by a qualified license administrator.

Solution

Please note that this solution is about combining two FNLs. For information on how to combine an FNL with a CSL, please see: Solution 1211

In this example, we will combine two floating network license files (FNLs) that have been generated for the same license server. The procedure is the same when combining a floating network license file with a classkit license file, but for this combination an options file is not needed.

  1. A Floating network license (FNL) number 1234567 with two concurrent seats of COMSOL Multiphysics and the Structural Mechanics Module.
  2. An FNL license number 2234567 with five concurrent seats of COMSOL Multiphysics and the Chemical Reaction Engineering module.

These two licenses will be managed by the server licserver.company.com.

The first license.dat file (license 1234567) you received from your COMSOL representative looks like this:

#------------------------------------------------------------------
# COMSOL 6.0 FNL License No: 1234567
# Visit www.comsol.com/install for latest installation instructions
#------------------------------------------------------------------
SERVER licserver 123456789012 1718
USE_SERVER
VENDOR LMCOMSOL port=1719
FEATURE SERIAL LMCOMSOL 6.0 permanent uncounted \
      VENDOR_STRING=C,5200000000000 HOSTID=ANY BORROW=720 SN=1234567 TS_OK \
      SIGN=AD9753BE1F54
INCREMENT COMSOL LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
      ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=1E7CBFAC1394
INCREMENT COMSOLBATCH LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
      ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=4569FP789S76
INCREMENT COMSOLGUI LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
      ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=850405640240
INCREMENT STRUCTURALMECHANICS LMCOMSOL 6.0 permanent 2 SUPERSEDE \
      DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
      SIGN=423417E46C62
INCREMENT STRUCTURALMECHANICSBATCH LMCOMSOL 6.0 permanent 2 SUPERSEDE \
      DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
      SIGN=654KF75U6127
INCREMENT CLIENTSERVER LMCOMSOL 6.0 permanent 2 SUPERSEDE \
      DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
      SIGN=EB1D0E36ADD2
INCREMENT CLUSTERNODE LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=U \
      ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=C3D87DD042DD
INCREMENT COMSOLUSER LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=U \
      ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A

The second license.dat (license 2234567) looks like this:

 #------------------------------------------------------------------
 # COMSOL 6.0 FNL License No: 2234567
 # Visit www.comsol.com/install for latest installation instructions
 #------------------------------------------------------------------
 SERVER licserver 123456789012 1718
 USE_SERVER
 VENDOR LMCOMSOL port=1719
 FEATURE SERIAL LMCOMSOL 6.0 permanent uncounted \
        VENDOR_STRING=C,5200000000000 HOSTID=ANY BORROW=720 SN=2234567 TS_OK \
        SIGN=AD9733B11F5A
 INCREMENT COMSOL LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=95CFCD46342F
 INCREMENT COMSOLBATCH LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=65FR5874F68F
 INCREMENT COMSOLGUI LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=73D3EF54C60F
 INCREMENT CHEM LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=A25AAAA43499
 INCREMENT CHEMBATCH LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=KU752F6874G6
 INCREMENT CLIENTSERVER LMCOMSOL 6.0 permanent 5 SUPERSEDE \
        DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=2234567 \
        SIGN=3D627674C3BC
 INCREMENT CLUSTERNODE LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=U \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A
 INCREMENT COMSOLUSER LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=U \
        ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A

1 Merge Files

  • Make sure that the first line in both license files are identical (commented lines starting with # do not count). If they are not identical, the files cannot be combined.
  • Make sure that the ISSUED dates are identical in both license files. Contact your local COMSOL sales representative if they are not identical.
  • Combine the two files by copying only the FEATURE and INCREMENT lines from the second license file and pasting them at the bottom of the first license file. Feel free to add comment lines starting with #. The result is shown below.

Combined license.dat:

#------------------------------------------------------------------
# COMSOL 6.0 FNL License No: 1234567 and 2234567
# Visit www.comsol.com/install for latest installation instructions
#------------------------------------------------------------------
SERVER licserver 123456789012 1718
USE_SERVER
VENDOR LMCOMSOL port=1719
FEATURE SERIAL LMCOMSOL 6.0 permanent uncounted \
       VENDOR_STRING=C,5200000000000 HOSTID=ANY BORROW=720 SN=1234567 TS_OK \
       SIGN=AD9753BE1F54
INCREMENT COMSOL LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=1E7CBFAC1394
INCREMENT COMSOLBATCH LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=4569FP789S76
INCREMENT COMSOLGUI LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=850405640240
INCREMENT STRUCTURALMECHANICS LMCOMSOL 6.0 permanent 2 SUPERSEDE \
       DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
       SIGN=423417E46C62
INCREMENT STRUCTURALMECHANICSBATCH LMCOMSOL 6.0 permanent 2 SUPERSEDE \
       DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
       SIGN=654KF75U6127
INCREMENT CLIENTSERVER LMCOMSOL 6.0 permanent 2 SUPERSEDE \
       DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=1234567 \
       SIGN=EB1D0E36ADD2
INCREMENT CLUSTERNODE LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=U \
       ISSUED=30-AUG-2016 BORROW=720 SN=1234567 SIGN=C3D87DD042DD
INCREMENT COMSOLUSER LMCOMSOL 6.0 permanent 2 SUPERSEDE DUP_GROUP=U \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A
# ==Lines below for license 2234567
FEATURE SERIAL LMCOMSOL 6.0 permanent uncounted \
       VENDOR_STRING=C,5200000000000 HOSTID=ANY BORROW=720 SN=2234567 TS_OK \
       SIGN=AD9733B11F5A
INCREMENT COMSOL LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=95CFCD46342F
INCREMENT COMSOLBATCH LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=65FR5874F68F
INCREMENT COMSOLGUI LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=73D3EF54C60F
INCREMENT CHEM LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=A25AAAA43499
INCREMENT CHEMBATCH LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=UHD \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=KU752F6874G6
INCREMENT CLIENTSERVER LMCOMSOL 6.0 permanent 5 SUPERSEDE \
       DUP_GROUP=UHD ISSUED=30-AUG-2016 BORROW=720 SN=2234567 \
       SIGN=3D627674C3BC
INCREMENT CLUSTERNODE LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=U \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A
INCREMENT COMSOLUSER LMCOMSOL 6.0 permanent 5 SUPERSEDE DUP_GROUP=U \
       ISSUED=30-AUG-2016 BORROW=720 SN=2234567 SIGN=DFB4AB06C20A

2 Restrict Use with the LMCOMSOL.opt Options File

Now we will make sure that the network license usage of license 1234567 is restricted to a number of designated machines and license 2234567 to another set of machines. These are typically machines belonging to different work groups. To do this, create the options file, LMCOMSOL.opt. The options file allows administrators to control various usage parameters. Users can be identified by their user name, host name, display, IP address, or the LM_PROJECT environment variable. Below is an example options file which restricts the use of the license seats to two groups of machines, "Building1" and "Building2". The first two HOST_GROUP lines in the file define which computers belong to a certain group. Add computers belonging to the two buildings.

Note: The hostnames and usernames (used in HOST_GROUP and GROUP, respectively) are case sensitive by default. This can be turned off by adding the instruction

GROUPCASEINSENSITIVE ON

to the LMCOMSOL.opt file.

Restricting access in the options file can be done in a few different ways. For the FEATURE lines, the most common is to use the SIGN=XXXXXXXXXXX from each FEATURE line of the combined license file. However, the SIGN will change for all lines in a license file in each new, major release of COMSOL Multiphysics. This means that you would have to manually change all SIGN values in your options file when you install a new release. A simpler way is to instead use the asset_info=value keyword. This would allow you to reference the features using asset_info instead. Even though the SIGN value will change for every new version of the license file, the asset_info will not (however, you will have to add the asset_info key to all the lines when a new license is given to you.) It is important that the asset_info entry is before the SIGN entry for each FEATURE line in the license file.

Applying this would make the FEATURE SERIAL line of the combined license file look like this:

FEATURE SERIAL LMCOMSOL 6.0 permanent uncounted \
VENDOR_STRING=C,5100000 HOSTID=ANY BORROW=720 SN=2234567 TS_OK \
asset_info=Building1 SIGN=AD9733B11F5A

An example of a merged license file using asset_info can be found at the bottom of this Knowledge Base entry. Please note that the value given to the asset_info key does not need to match the name of a group or host group. It only serves as a unique identifier to be used in the options file.

For INCREMENT lines, SIGN=XXXXXXXXXXX or asset_info=*** are not supported, instead all INCREMENT lines for the same feature (COMSOL, COMSOLGUI, etc) are added into a single license pool. For this reason we need to use a combination of INCLUDE and MAX instructions in order to control who can use these features while at the same time limit the number of licenses available for checkout.

In the examples of the options file below, it is assumed that the corresponding lines in the license file have been given the asset_info Building1 and Building2 respectively. Also one INCLUDE and one MAX line has been added for each INCREMENT line in the combined license.dat file.

Note that if you are combining a floating network license (FNL) with a classkit license (CKL), rather than two FNLs as in this example, the options file only needs to have INCLUDE statements for the SERIAL lines. The reason is that all other feature names in the FNL and the CKL license.dat files differ, as the CKL license.dat has the string "CKL" appended to all feature names except the SERIAL feature.

LMCOMSOL.opt:

HOST_GROUP Building1 numserver1 numserver2 123.0.0.12
HOST_GROUP Building2 labcomp01 labcomp02 labcomp03

INCLUDE SERIAL:asset_info=Building1 HOST_GROUP Building1
INCLUDE COMSOL HOST_GROUP Building1
INCLUDE COMSOLBATCH HOST_GROUP Building1
INCLUDE COMSOLGUI HOST_GROUP Building1
INCLUDE STRUCTURALMECHANICS HOST_GROUP Building1
INCLUDE STRUCTURALMECHANICSBATCH HOST_GROUP Building1
INCLUDE CLIENTSERVER HOST_GROUP Building1
INCLUDE CLUSTERNODE HOST_GROUP Building1
INCLUDE COMSOLUSER HOST_GROUP Building1
MAX 2 COMSOL HOST_GROUP Building1
MAX 2 COMSOLBATCH HOST_GROUP Building1
MAX 2 COMSOLGUI HOST_GROUP Building1
MAX 2 STRUCTURALMECHANICS HOST_GROUP Building1
MAX 2 STRUCTURALMECHANICSBATCH HOST_GROUP Building1
MAX 2 CLIENTSERVER HOST_GROUP Building1
MAX 2 CLUSTERNODE HOST_GROUP Building1
MAX 2 COMSOLUSER HOST_GROUP Building1

INCLUDE SERIAL:asset_info=Building2 HOST_GROUP Building2
INCLUDE COMSOL HOST_GROUP Building2
INCLUDE COMSOLBATCH HOST_GROUP Building2
INCLUDE COMSOLGUI HOST_GROUP Building2
INCLUDE CHEM HOST_GROUP Building2
INCLUDE CHEMBATCH HOST_GROUP Building2
INCLUDE CLIENTSERVER HOST_GROUP Building2
INCLUDE CLUSTERNODE HOST_GROUP Building2
INCLUDE COMSOLUSER HOST_GROUP Building2
MAX 5 COMSOL HOST_GROUP Building2
MAX 5 COMSOLBATCH HOST_GROUP Building2
MAX 5 COMSOLGUI HOST_GROUP Building2
MAX 5 CHEM HOST_GROUP Building2
MAX 5 CHEMBATCH HOST_GROUP Building2
MAX 5 CLIENTSERVER HOST_GROUP Building2
MAX 5 CLUSTERNODE HOST_GROUP Building2
MAX 5 COMSOLUSER HOST_GROUP Building2`

As an alternative the software use can be based on the users' login names. In this case you will use the keyword GROUP instead of HOST_GROUP.

LMCOMSOL.opt, login id based:

GROUP Building1 andy brett chelsea david eric farzad
GROUP Building2 zachary george cynthia chen yael bob sergei clara

INCLUDE SERIAL:asset_info=Building1 GROUP Building1
INCLUDE COMSOL GROUP Building1
INCLUDE COMSOLBATCH GROUP Building1
INCLUDE COMSOLGUI GROUP Building1
INCLUDE STRUCTURALMECHANICS GROUP Building1
INCLUDE STRUCTURALMECHANICSBATCH GROUP Building1
INCLUDE CLIENTSERVER GROUP Building1
INCLUDE CLUSTERNODE GROUP Building1
INCLUDE COMSOLUSER GROUP Building1
MAX 2 COMSOL GROUP Building1
MAX 2 COMSOLBATCH GROUP Building1
MAX 2 COMSOLGUI GROUP Building1
MAX 2 STRUCTURALMECHANICS GROUP Building1
MAX 2 STRUCTURALMECHANICSBATCH GROUP Building1
MAX 2 CLIENTSERVER GROUP Building1
MAX 2 CLUSTERNODE GROUP Building1
MAX 2 COMSOLUSER GROUP Building1

INCLUDE SERIAL:asset_info=Building2 GROUP Building2
INCLUDE COMSOL GROUP Building2
INCLUDE COMSOLBATCH GROUP Building2
INCLUDE COMSOLGUI GROUP Building2
INCLUDE CHEM GROUP Building2
INCLUDE CHEMBATCH GROUP Building2
INCLUDE CLIENTSERVER GROUP Building2
INCLUDE CLUSTERNODE GROUP Building2
INCLUDE COMSOLUSER GROUP Building2
MAX 5 COMSOL GROUP Building2
MAX 5 COMSOLBATCH GROUP Building2
MAX 5 COMSOLGUI GROUP Building2
MAX 5 CHEM GROUP Building2
MAX 5 CHEMBATCH GROUP Building2
MAX 5 CLIENTSERVER GROUP Building2
MAX 5 CLUSTERNODE GROUP Building2
MAX 5 COMSOLUSER GROUP Building2
  • On the license server (licserver.company.com), place the LMCOMSOL.opt file in the same directory as the combined license.dat file - it will be found automatically when the license manager (lmgrd) is started.
  • Start the license manager. Check in the license manager log file that the options file has been detected, and that no error messages are presented. Don't worry if a DENIED statement occurs. It means that checkout of the first SERIAL line is denied for a particular user, but the next may still be accepted. Please note that DENIED messages are expected to occur whenever a user from the Building2 HOST_GROUP (or GROUP) is checking out licenses. These DENIED messages are presented because the license manager will start from the top of the combined license file and try to check out the first valid line for a requested feature (in license 1234567), and only then check in the options file if the user is actually allowed access to that line. If the user is not allowed access, a DENIED message is printed in the log, and the license manger proceeds further down the license file, finds the next valid line (in license 2234567), which should be successfully checked out. Such DENIED messages can be safely disregarded.

Summary

  • Each line in LMCOMSOL.opt is a rule that controls license use.
  • Each FEATURE/INCREMENT line in the combined license.dat file has corresponding lines in the LMCOMSOL.opt file. For the FEATURE lines, the value of the asset_info=value key must be the same in both files.
  • An INCLUDE statement in LMCOMSOL.opt means that the group listed on that line (for example "HOST_GROUP Building1") is allowed to use the matching line in license.dat. Anyone not in an INCLUDE statement will not be able to use the line.
  • Note that when installing the COMSOL software using the the combined license file, you get to choose which of the included licenses you wish to use for the installation.

There are many other options available apart from HOST_GROUP, GROUP, and INCLUDE. A complete documentation of the FlexNet licensing system can be found in the COMSOL Help Desk (Help->Documentation) at the very bottom.