Keil Logo

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

  1. Open the licensing webpage and click on Merge.
  2. 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

  1. Open the first license.dat file in a text editor - this will become the merged license.dat file.
  2. 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.
  3. 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

  1. Verify that the merged license file has been properly modified - see Adapt the FlexNet License File.
  2. Save the merged license.dat file and copy it onto the server.
  3. Shutdown the FlexNet Publisher.
  4. Start the FlexNet Publisher.

VERIFY THE MERGE WORKED

A user can verify the number of seats available on a client MDK machine.

  1. Open µVision.
  2. If necessary, follow the steps in Installing a FlexNet License.
  3. 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.

  1. Shut down FlexNet Publisher on the Server.
  2. Replace the license.dat file with the original, un-merged one. Rehost the other licenses before moving them to other servers.
  3. 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.

MORE INFORMATION

SEE ALSO

Last Reviewed: Tuesday, January 5, 2021


Did this article provide the answer you needed?
 
Yes
No
Not Sure
 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.