LICENSE: Merge FlexNet License Files
Information in this knowledgebase article applies to:
- MDK v4.60 and newer versions
- Flex Floating licenses
QUESTION
Our company purchased MDK products with different FlexNet Serial
Numbers (Flex SNs). How do I combine the Flex products into one? Can
they run on one server?
BACKGROUND
Yes, a user can merge the product licenses into one FlexNet
license file (license.dat). The advantages of doing this:
-
Simplification - all MDK clients can point to a single server
and a single port
-
Improved network performance - there is only one instance of
lmgrd.exe and one instance of
armlmd.exe running
-
Increases the number of seats available for all MDK
clients
- Flexibility - the merge is reversible
To simplify merging, all licenses:
- Must have the same HostID
-
Can have multiple MDK editions such as MDK Plus or MDK Pro
- Can have the same support expiration date
- Should have the same FlexNet license owner in the company
-
Running on a server with up-to-date FlexNet binaries. Required
upgrades to the FlexNet Publisher utilities are mentioned in the
Release Notes,
inside each MDK release.
See the Other
considerations for workarounds and caveats to merging files.
ANSWER
The following steps merge two license.dat files into one file. The
same steps will work for merging multiple license files together.
They assume the server already has the
FlexNet Publisher Software Installed.
OBTAIN THE LICENSE.DAT FILES
If both of the license.dat files:
-
are already hosted on a server, then note their
locations.
-
are on different servers, then submit a
request a rehost through the webform, or open a Keil
support case for each license.dat file that needs to be
moved.
Once the request is processed, the license.dat files will need to
be regenerated (see the next step).
-
have not been created yet, then follow the steps in
Retrieve a FlexNet License File to make a license.dat file for
each FlexNet Serial Number (SN).
When filing out the form, make sure to use the same hostID (MAC
address) each time, since these products will be on the same
server.
MERGE THE LICENSE.DAT FILES
After obtaining the license files, it is time to merge them. If
the license server is running, first
Shut down FlexNet Publisher on the Server. Then choose a merge
method.
AUTOMATED MERGING METHOD
-
Open the licensing webpage and click on
Merge.
-
Check the boxes next to each Serial Number (SN), and the click
the Merge button to generate the merged license.dat.
This tool requires that both SNs are registered to one user and
the license files have already been generated. Otherwise, follow the
Manual Merging Method.
MANUAL MERGING METHOD
-
Open the first license.dat file in a text editor - this will
become the merged license.dat file.
-
Open the second license.dat file in a separate text editor.
Copy the PACKAGE and INCREMENT sections, (as well as the UPGRADE
section, if present) from one license file. Do NOT copy the SERVER,
VENDOR, or USE_SERVER lines. Lines starting with # are
comments and can be ignored.
-
In the first license.dat file, paste the sections together,
before a product's first section (PACKAGE) in the merged file, or
after the end of a product's last section (which can be either
INCREMENT or UPGRADE). Below is an example of manually merging
license.dat files:
#####################################
#START OF FIRST LICENSE.DAT FILE [One split seat from a time-limited license]
#####################################
SERVER my.server.name.com F48C5036F2F9 8224
VENDOR armlmd
USE_SERVER
PACKAGE mdk_pro armlmd 5.9 COMPONENTS="mdk_pro_µVision \
mdk_pro_armasm5 mdk_pro_compiler5 mdk_pro_armlink5 \
mdk_pro_fromelf5 mdk_pro_arm_lcf5" OPTIONS=...="..."
INCREMENT mdk_pro armlmd 5.9 31-oct-2017 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx1 START=05-JUL-2017 SIGN="..."
#####################################
#END OF FIRST LICENSE.DAT FILE
#####################################
#####################################
#START OF SECOND LICENSE.DAT FILE [One seat from a permanent license]
#####################################
SERVER my.server.name.com F48C5036F2F9 8224
VENDOR armlmd
USE_SERVER
PACKAGE mdk_pro armlmd 5.0 COMPONENTS="mdk_pro_µVision \
mdk_pro_armasm5 mdk_pro_compiler5 mdk_pro_armlink5 \
mdk_pro_fromelf5 mdk_pro_arm_lcf5" OPTIONS=...="..."
INCREMENT mdk_pro armlmd 5.0 permanent 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx2 SIGN="..."
UPGRADE mdk_pro armlmd 5.0 5.0201710 permanent 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx2 SIGN="..."
#####################################
#END OF SECOND LICENSE.DAT FILE
#####################################
#####################################
#START OF MERGED LICENSE FILE
#####################################
SERVER my.server.name.com F48C5036F2F9 8224
VENDOR armlmd
USE_SERVER
PACKAGE mdk_pro armlmd 5.9 COMPONENTS="mdk_pro_µVision \
mdk_pro_armasm5 mdk_pro_compiler5 mdk_pro_armlink5 \
mdk_pro_fromelf5 mdk_pro_arm_lcf5" OPTIONS=...="..."
INCREMENT mdk_pro armlmd 5.9 31-oct-2017 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx1 START=05-JUL-2017 SIGN="..."
PACKAGE mdk_pro armlmd 5.0 COMPONENTS="mdk_pro_µVision \
mdk_pro_armasm5 mdk_pro_compiler5 mdk_pro_armlink5 \
mdk_pro_fromelf5 mdk_pro_arm_lcf5" OPTIONS=...="..."
INCREMENT mdk_pro armlmd 5.0 permanent 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx2 SIGN="..."
UPGRADE mdk_pro armlmd 5.0 5.0201710 permanent 1 DUP_GROUP=... \
SUITE_DUP_GROUP=... ISSUER="ARM Limited" BORROW=... \
NOTICE="For support see http://silver.arm.com/support" \
SN=xxxxx-xxxxx-xxxx2 SIGN="..."
#####################################
END OF MERGED LICENSE FILE
#####################################
USE THE MERGED FILE
-
Verify that the merged license file has been properly modified
- see
Adapt the FlexNet License File.
-
Save the merged license.dat file and copy it onto the
server.
-
Shutdown the FlexNet Publisher.
-
Start the FlexNet Publisher.
VERIFY THE MERGE WORKED
A user can verify the number of seats available on a client MDK
machine.
- Open µVision.
-
If necessary, follow the steps in
Installing a FlexNet License.
-
Open File-> License Management - if this dialog shows
a smaller number of seats than expected, try these troubleshooting
tips:
-
Restart the server daemon (in LMTOOLS, on the
Start/Stop/Reread tab, select Stop Server then
Start Server). In µVision, re-open License
Management - the number of seats should be correct.
-
For MDK version 5.23 and earlier versions: old
versions of MDK and FlexNet Publisher do not display the
correct number of seats (if the licenses had different support
expiration dates and one or some licenses have already
expired); update the software and support period of the license
to fix this.
-
For MDK version 5.12 and earlier versions: old
versions of MDK and FlexNet Publisher do not display the
correct number of seats; update the software to fix this.
-
For other license errors, follow the steps in LICENSE: FlexNet:
Installation, Management, Troubleshooting.
UN-MERGING A LICENSE.DAT FILE
If necessary, the merging process can be reversed.
-
Shut down FlexNet Publisher on the Server.
-
Replace the license.dat file with the original, un-merged one.
Rehost the other licenses before moving them to other servers.
-
Start FlexNet Publisher on the Server.
OTHER CONSIDERATIONS
-
If the two license.dat files were split up from the same
FlexNet Serial Number (SN), and the files have the same host ID,
they cannot be merged - see LICENSE: Merging Flex
Floating License File Does Not Increase Seats.
-
If multiple flex floating licenses have the same MDK license
type, e.g. MDK Pro, but have different support expiration dates,
they should not be merged into one license file. If they are
merged, only the flex license with the oldest support date will be
visible and usable in MDK.
-
Other FlexNet licensed products (such as ARM DS-5) can be
merged with MDK FlexNet products, although this type of combination
is neither tested by the MDK validation suite nor guaranteed.
-
Use the latest FlexNet binaries, because MDK Flex licenses are
designed to be forwards compatible with FlexNet Publisher. This
allows the broadest range of MDK releases to be used.
-
Using earlier versions of FlexNet with newer versions of MDK is
not recommended.
-
Although it is not necessary to have all license.dat files
registered by the same user, it simplifies the process and future
maintenance.
-
License files must be merged to work on the same server - there
cannot be two ARM vendor daemons (armlmd)
running on the same license server. However, if you have other
products, you can run multiple instances of the FlexNet server
daemon (lmgrd)
on the same server.
-
Licenses are checked out in the order listed in the license.dat
file.
-
If the SNs do not have the same number of seats, place the
license with the largest number of seats first.
-
If the SNs do not have the same support expiration date,
place the license with the latest support end date first.
-
Merged license files can optionally set a unique sorting
priority - try adding "SORT=..." into the license.dat file.
This KB article describes the syntax.
For example, a less feature-rich product, like a group of
MDK-Cortex-M seats should be favored over a product with more
features, like a single-seat MDK-Professional license. This
way, the higher featured product is only used, when necessary,
so the max number of seats is less likely to be reached.
SEE ALSO
Last Reviewed: Tuesday, January 5, 2021