Finding a pot of gold in your software license portfolio

A substantial part of the budget of any company is taken up by IT, especially in engineering, healthcare and scientific organizations. For this reason, most CFOs scrutinize any capex or opex emanating from the IT division. One of the recurring costs that is laid out there in black and white will be for software licensing. The CFO will be unhappy about this ever-increasing cost, but regards it as an important part of compliance; after all, he does not want to be subject to a software audit that finds the company has compromised their license agreement and are now subject to a punitive fine. The number of licenses purchased and how efficiently they are used is rightly regarded as the CIO’s responsibility.

The CIO’s Challenge

The CIO, in turn, does his best to optimize license usage, by buying concurrent user licenses where possible and then monitoring that these licenses are used as efficiently as possible. However, if he is relying on the license management software provided by the vendor, the visibility of what is really happening is limited; the software is provided to help the vendor monitor usage, rather than the customer. Some organizations  that have never paid much attention to engineering and scientific software licensing costs, especially where licenses are acquired for every project and those costs are passed on to the customer. In these organizations, the licenses are often not under the control of IT, but are looked after by the relevant engineering department or project.

This does not mean that there are not IT shops who actively monitor and report on their concurrent licenses, but good license management results in demonstrable cost savings, and the CIO will obviously not downplay his success in cost reduction. There will also be readily available reports, which the CFO should take the time to understand.

Are The Cost of Engineering Licenses Often Overlooked?

The CFO is aware of licensing costs. After all the company usually has ERP, accounting and human capital software with which he is closely involved, as well as general office software, such as Microsoft Office, and will probably have several cloud-based applications like SalesForce. For these software products he has a close involvement in the licensing and renewals, but they tend to be on a per-seat or per user basis. This might be why so many CFOs leave money on the table when it comes to engineering software. The CFO will question the acquisition of new hardware, such as a high-spec laptop for the engineering department, but accept that new licenses need to be loaded on to the laptop. The fact that these licenses can cost far more than the laptop is often missed.

What a CFO can do to Mitigate these Costs

Tracking licensing costs for scientific and engineering software is a very labor-intensive task, especially if done manually. A diplomatic first step to get the information required, would be to request a new set of reports that show the number of licenses purchased, in use and the level of their utilization. There will probably be some resistance from the CIO, mainly because these values are very difficult if not impossible to determine using the vendor-supplied software. Any arguments can be countered by conceding that a reasonable budget will be allocated for getting the right software to do the job, but that this must be done as soon as possible. By showing empathy and understanding of the problem, there is no implication that the CIO has neglected to look after his licenses. It might even be the case that he has no control over these licenses, because the engineers buy and manage them directly.

Where this is the case, there may need to be some additional work to bring the license back under IT’s management. Whatever the situation, the reporting will be an eye-opener.

Finding the Money

There are three main sources of unnecessary spending or “waste” on licenses:-

  • unused licenses, or “shelfware”.
  • single-user or named user licenses that are only used occasionally
  • a concurrent or network license pool with poor utilization.

Shelfware. Unused licenses are commonly found where a set of new licenses was procured for a new project, and the project is now completed or the phase of the project where they were needed has passed. What tends to happen with these licenses is that license renewals are entered into without checking that they are needed. These licenses can immediately be dispensed with, you have enough licenses without them.

Single-User Licenses. It is often valid to purchase a single-user license for a resource who uses the software daily and for most of the day. However, there needs to be real justification for retaining them, rather than assigning the user to the concurrent user pool and freeing up the license, to be exchanged for a concurrent license or terminated. Single-user licenses are cheaper, but not if they are not used extensively.

Concurrent Licenses. Concurrent licenses cost more but can be used much more efficiently because users draw them from a pool and (hopefully) return them to the pool when they are finished (good license management software can manage that too by “harvesting” idle licenses). Ensuring that concurrent licenses are used to the maximum is not an overnight job, but the CIO should be able to demonstrate gradual improvement month-by-month once he has the right software to see what is really going on. We have several case studies where customers have used OpenLM to optimize concurrent license usage.

This may seem like an exercise that will result in small savings, but if you take the cost of these licenses into account, some companies have realized over a $1,000,000 by reducing their license overhead. It depends which software you use, but when you consider the price of Catia, Solidworks, Revit or AutoCad, it would be foolish not to get rid of licenses you don’t really need.

Different types of licensing models

Licensed Software applications are managed in a variety of methods. These methods differ in

  • The license management interface and process,

  • License allocation and availability,

  • Compliance to licensing agreements,

  • Usage chargeback considerations.

License vendors should be aware of the different opportunities and disadvantages resident in each of these methods. System administrators and license managers should also heed the capabilities and prices that are embedded in the different options and methods of software licensing. This document is a brief review of these different available licensing models.

License dongles or license usb keys

This is an electronic device provided by the software vendor, which enforces copy protection and authenticity validation of a licensed application. The hardware key is programmed with a singular product key and is attached to an external bus of the computer to enable work with the software. This form of licensing is very rigid, unconfigurable and lean on features. Consequently – dongle licenses are typically the cheapest form of supplied licenses.

Software node locked licenses

This type of license is merely a software implementation of the former one: Prior to enabling the application on the designated computer, The vendor would provide a license key or license file specific to that machine. The result is a rigid – format license per machine.

Floating licenses, Network licenses, Concurrent license

These are synonyms to the same concept of possessing expensive licenses in a smaller number than the maximal number of users. Floating licenses effectively shares software assets among users on a network, time-dividing licenses according to a queue of demand; When a user requires a license, a request is made to a central license server, which in turn either grants the request or refuses it according to availability or predefined constraints.

Floating licenses often involve a certain form of “contract” that articulates the quantity of acquired licenses and the policy of permitted usage. This license file may be either physically provided by the vendor or reside in trusted storage on the network.

Some Concurrent License Management systems provide methods of excluding limited quantities of licenses from the collective license pool, to assign them to specific users or workstations, for either a predefined period or indefinitely. These methods would also be elaborated in the license file.

License Borrowing

License Borrowing”, also referred to as “License Commuting” or “Offline license” is a method of providing application usage privileges in the absence of connection to the central license server. This is an effective solution for travelling businessmen and engineers, that need to work using a laptop computer.

The Borrowed licenses’ option is usually the most expensive form of licensing; Usage is counted as the entire period in which the license was extracted from the pool. It is recommended to return license servers to the pool as soon as possible.

Host locked, Node locked licenses, Single Use licenses

These are synonyms to licenses that are allocated to specific workstations. This option is defined in the licensing files or “Options files” provided by some license management systems. Connecting a floating license to specific workstations decreases license maneuverability, but in turn it ensures the productivity of certain staff members, and generally lowers the cost of licensing in the organization.

Named users

Similar to having licenses tied to workstations, there is also the possibility to connect a specific license to a predefined user. the advantage of the latter is the user’s capability to apply their usage rights once, on each of the organization’s workstations.


OpenLM is an Application Usage Management tool, which monitors license usage on every type of the license models as described above. OpenLM can either query the central license manager for license usage, or manage workstation specific license – dongle applications by introducing the OpenLM Agent module on each of the ‘Dongle’-ed machines.


FLEXlm Timeout Settings

What is FLEXlm?

FLEXlm is a license manager that manages software used by multiple end users on different computers. Notably, it allows companies to take advantage of floating licenses. A system employing floating licenses has a license pool on a host server from which end users check out licenses. When a user finishes using a software license, it is checked back into the pool, now available for another user to check out.

Further information on FLEXlm

What is FLEXlm license timeout?

FLEXlm license timeout is a feature that releases inactive licenses back to the license pool. Licensed software is determined to be inactive when a machine is completely idle, meaning no mouse clicks, keystrokes, modal dialog boxes are occurring. Its timeout settings determines how long such a period continues before licenses are freed up.

How to set FLEXlm timeout

License timeout settings can be configured for some or all the features, and are configured in the FLEXlm option file.

Further information on option files

Individual license key timeout is set by entering the variable “timeout” followed by the timeout period (in seconds).

Example: Setting AutoCAD to be timed out in 108000 seconds (3 hours)

 timeout AutoCAD 108000

License timeout for all license keys in the system is set by the variable “timeoutall,” followed by the timeout period.

Example: Setting all licenses to be timed out after 30 minutes of inactivity

timeoutall 1800

Limitations on license timeout settings

It is important to note that software vendors often impose limitations on the timeout period for their products; specifically, the minimum amount of time of inactivity after which licenses can be freed up. For example, whereas Autodesk licenses can be released after 15 minutes of inactivity, MathWorks licenses can only be released after 4 hours.

Autodesk 900 sec (15 minutes)

MathWorks 14,400 seconds (4 hours)

IBM 7200 seconds (2 hours)


Customizing FLEXlm timeout settings is simple way to improve the efficiency of your company’s licenses, ensuring that end users aren’t slowed down by waiting for inactive, locked-up licenses.


FLEXnet Option Files Examples

What is FLEXnet publisher?

FLEXnet publisher (formerly known as FLEXlm) is a software license manager utilized by companies to manage software shared by different people on different workstations. With what are termed “floating licenses,” FLEXnet enables end users to draw and return software licenses from a license pool on a host server.

What is a FLEXnet option file?

An option file defines various operating parameters of the license manager.

Creating/Editing an option file

In order to create an option file, save a text document in the same folder as the license file. Next, the document the according to the name of the vendor, followed by the extension “.opt”

For example, an option file for Matlab will be named “mlm.opt”. Accordingly, option files for Autodesk and ESRI ArcGIS would be named “adskflex.opt” and “ARCGIS.opt,” respectively.

Allocating licenses to a specific user group

First, define a group with the keyword “GROUP,” followed by the name of the group, followed by the members of that group. Names are all case sensitive.

Example: A group called “Matlab_Users,” consisting of Billy, Jim, and Kim

GROUP Matlab_Users billy jim kim

Next, to select which licenses to allocate to that group, type the keyword “INCLUDE,” followed by the feature name, followed by the group name.

 Example: Allocating feature “Optimization Toolbox” to the group “Matlab_Users”


These two steps are combined:

GROUP Matlab_Users billy jim kim


Limiting individuals or groups of users to a maximum number of licenses

In order to limit the usage of a feature by a group, first allocate the license to that group or individual as demonstrated above. Then, set a usage limit with the keyword “MAX,” followed by the name of the feature, followed by the group name.

Example: Limiting the max number of Autocad 2002 licenses used by group “Autocad_Users,” consisting of users Ronald and Lisa, to 7. (41100ACD_2002_OF is the name of the Autocad 2002 feature)

GROUP Autocad_Users ronald lisa

INCLUDE 41100ACD_2002_0F GROUP Autocad_Users

MAX 7 41100ACD_2002_0F GROUP Autocad_Users

Excluding access to specific features

Enter the keyword “EXCLUDE,” followed by the feature name, followed by group or individual being excluding.

Example: Excluding user Franklin from feature “Geosteering plug-in for Petrel 2013”


Controlling license borrowing

To allow someone to borrow a feature, use keyword “BORROW,” followed by the name of the borrowed feature, followed by the user or group of users.

Example: Including users Bill and Sam in the list to borrow the feature Ansys Fluent

BORROW fluent bill sam

Alternately, to exclude someone from borrowing a feature, simply replace “BORROW” with “EXCLUDE_BORROW”

Example: Excluding users Bill and Sam from the list to borrow the feature Ansys Fluent

EXCLUDE_BORROW fluent bill sam

A “borrow lowwater” determines the number of licenses that must remain unused at any given time. Enter the keyword “BORROW_LOWWATER,” followed by the feature name, followed by the number of licenses that can’t be borrowed.

 Example: Setting a borrow lowwater for the feature autocad at 5


To adjust how long a license feature can be borrowed, enter “MAX_BORROW_HOURS,” followed by the feature name, followed by the number of hours

Example: Maxing the number of hours a solidworks feature license can be borrowed for at 15 hours

MAX_BORROW_HOURS sldworks 15

Setting license timeout

FLEXlm license timeout is a feature that releases inactive licenses back to the license pool. Enter the keyword “TIMEOUT,” followed by name of the feature, followed by the time (in seconds) after which inactive licenses are released. To set a timeout for all features, simply enter “TIMEOUTALL,” followed by the time.

Example: Setting timeout for Matlab Database Toolbox for 14400 seconds (4 hours)

TIMEOUT Database_Toolbox 14400

Example: Setting a timeout for all licenses for 108000 (3 hours)

TIMEOUT  108000

The OpenLM Difference

OpenLM allows users to harness the full capability of option files using a unique graphical user interface. This interface dramatically simplifies the process of managing license parameters by allowing companies to use active directory groups to automatically generate option files.

Trouble Shoot Form: Database Item 001 (Connection to SQL Server Database failed)

Trouble Shoot Form: Item 02.001

Title Connection to SQL Server DB failed.
Category Data Base
Date Sep 26, 2011
Handled by Rachel.
Relevant Links (link to mantis item, docs, customer correspondence etc.)
Applies to license managers FLEXlm, FLEXnet Publisher, IBM LUM, HASP, RLM, Sentinel RMS, DSLS, LM-X
Applies to license model Floating licenses, Network licenses, Concurrent licenses
Symptoms Customer reported failure to connect to a new SQL Server through EasyAdmin. Succeeded in connecting it via the Configuration form “Check” button. Customer succeeded in connecting to old FB Server through EasyAdmin.
Observed during investigation Log contained fatal error:
Login failed for user ‘DPI\ORANTESTSPATIAL$’
Trouble shoot process Credentials issue
Solution Found (Options: Found/Pending/Known Issue)


Customer reported a failure in connecting to an SQL Server.
The “Check” button worked OK in the “OpenLM Database Configuration” dialog box, but EasyAdmin couldn’t connect to the SQL Server. See customer’s image below.

Observed during investigation

1. The customer defined the OpenLM Server (in the “OpenLM Database Configuration” dialog box) to work with SQL server using “Windows Authentication”. This means that logging to the SQLServer was done using windows credentials.

2. The customer clicked “Check” on the “OpenLM Database Configuration” dialog box, and it worked OK because the process worked fine with these windows credentials.

3. Then he started the “OpenLM Server”. It didn’t work because it had other credentials.
The customer sent a log containing these lines:

FATAL 2011-09-26 12:11:14,276 [thread 11]  SessionProducer CreateFactory – Can’t map nhibernate domains
System.Data.SqlClient.SqlException (0x80131904): Login failed for user ‘DPI\ORANTESTSPATIAL$’.

This means that a user named DPI (on server ORANTESTSPATIAL) could not login to the SQL Server, hence the system halts (FATAL error means that the application could not recover).

Trouble shoot process

  1. The “Database credentials” dialog box may be configured wrong, e.g.: check the “Embedded” check box in the window for Databases that are located on local drives.
  1. OpenLM Service credentials: In the “Windows Services” window, Select the “OpenLM Server” item. The “OpenLM Server Properties” dialog window opens. Select the “Log On” tab.

Here you can see under what credentials the service runs. By default we install it with “Local System Account” but some users change it.

We suggest acting according to one of these options:

1. Change the OpenLM Service credentials to that of a user who has both administrative permissions and a permission to login to the SQL server.

2. Another option is not to use the “Windows Authentication” (but “SQL Server Authentication”).

Trouble Shoot Form: Database Item 003 (Following data migration from SQL to FB, EasyAdmin doesn’t show any logging)


Title Following data migration from SQL to FB, EasyAdmin doesn’t show any logging
Category Database
Date Sep 25, 2011
Handled by Rachel
Relevant Links (link to mantis item, docs, customer correspondence etc.)
Applies to license managers FLEXlm, FLEXnet publisher, IBM LUM, HASP, RLM, Sentinel RMS, LM-X, DSLS
Applies to license model Floating licenses, Network licenses, Concurrent licenses
Symptoms Customer complained that EasyAdmin does not show any stats.
Observed during investigation
Trouble shoot process
Solution Found (Found/Pending/Known Issue)


A customer complains that: “I have successfully connected the new database, BUT nothings seems to be logging. I have no stats showing on the EasyAdmin screen.”

Trouble shoot process

1. Make sure the license servers list is defined at the “OpenLM Server Configuration Form”
2. All settings of OpenLM are saved in the database. When you migrate to a different database (e.g.: from SQL to FB), you need to re-enter the license servers list.

  1. Switch to Firebird.
  2. Open “OpenLM Configuration Form”, navigate to “Advanced” panel, click “Export…” button and save the settings to a file.
  3. Close “OpenLM Configuration Form”.
  4. Switch to SQLServer.
  5. Open “OpenLM Configuration Form” again and you will see that servers list is empty.
  6. Navigate to “Advanced” panel, click “Import…” and import the file you saved earlier.
  7. Click “Apply” and restart OpenLM server.
  8. Check EasyAdmin.

Trouble Shoot Form: Database Item 002 (Data migration from SQL to FB)

Trouble Shoot Form: Item 02.002

Title Data migration troubles, from SQL to FB.
Category Database
Date Sep 25, 2011
Handled by Rachel
Relevant Links (link to mantis item, docs, customer correspondence etc.)
Symptoms Customer reported failure to import the SQL database to FB At first.
Applies to license managers FLEXlm, FLEXnet publisher, IBM LUM, HASP, RLM, Sentinel RMS, LM-X, DSLS
Applies to license model Floating licenses, Network licenses, Concurrent licenses
Observed during investigation
Trouble shoot process
Solution Found (Found/Pending/Known Issue)


Customer reported failure to import the SQL database to FB.

Trouble shoot process


  1. Make sure the “Data Migration” tool version is compliant to the OpenLM version.
  2. A special version of the data migration tool is required for 64 bit computers.
  3. Migration of a database over to a new database that is not empty may result in failure to migrate certain tables. This is indicated by the following message: 

If this is the case, create a clean database again, and run the OpenLM_SQLServer.SQL” script to build the tables and try to migrate again.

Trouble Shoot Form: Broker Item 004 (Broker installation stuck after installing JRE1.6.)

Trouble Shoot form: Item 01.004

Title Broker installation stuck after installing JRE1.6.
Category Broker
Date Apr17, 2012
Handled by
Relevant Links
Applies to license managers FLEXlm, FLEXera FLEXnet publisher , IBM LUM, LM-X
Applies to license mode Floating licenses, Network licenses, Concurrent licenses
Observed during investigation
Trouble shoot process Erase directory in “InstallJammer Registry”


According to a client: “I’m trying to install the OpenLM Broker.  When I first tried to install it, I didn’t have Java v1.6 installed, so the installation failed.  I then went and downloaded and installed JRE 1.6.  Now, when I go to install Open LM Broker, I get this error message.”


1. One option is:

Navigate to “C:\Program Files\InstallJammer Registry” or
“C:\Program Files (x86)\InstallJammer Registry” and erase a directory that looks like

2. Another option for solving this, is by Installing the broker in command line, e.g.:
openlmbroker-windows-setup_1718.exe \notcheckprevver

Trouble Shoot Form: Broker Item 002 (Broker commands not showing)

Trouble Shoot form: Item 01.002

Title Broker commands not showing.
Category Broker
Date Oct 11, 2011
Handled by
Relevant Links
Applies to license managers FLEXlm, FLEXera FLEXnet publisher, IBM LUM, LM-X
Applies to license mode Floating licenses, Network licenses, Concurrent licenses
Observed during investigation
Trouble shoot process Troubleshooting


Upon start-up, the OpenLM Broker compiles lmutil commands that are installation specific. These commands would later be used for interfacing the license server, and sending information over to the OpenLM server. These commands are ‘Status’, ‘Data inquiry’, ‘Start’, ‘Stop’ and ‘Reread’. In the image below, The command set of two license servers are highlighted, and the ‘Status’ command respective to the ArcGIS License manager is shown.

The Broker has the capability of self extracting information regarding the License Server’s port, and the location of the License file and lmutil executables in order to compile the commands. At the time of writing this document, This capability is only available for Windows’ license servers (OpenLM Broker version 1.7xx).


The Command lines are blank



  1. Unix servers: As mentioned above, auto compiling of lmutil commands is only available on Windows servers. Solution:
    1. Add a Windows License server and get the commands there.
    2. Modify the commands so that they comply with the Unix format.
    3. Following are the commands as they appear on my Windows Broker (as an example), followed by the respective Unix command templates:



Windows: “C:\PROGRA~2\ESRI\License\arcgis9x\lmutil” lmstat -c 27004@olm2008

Unix: <installationFolder>/lmutil lmstat -c <port>@licenseServerName


Data inquiry:

Windows: “C:\PROGRA~2\ESRI\License\arcgis9x\lmutil” lmstat -a -c 7004@olm2008 -i

Unix: <installationFolder>/lmutil lmstat -a -c <port>@licenseServerName -i



Windows: “C:\PROGRA~2\ESRI\License\arcgis9x\lmgrd” -z -c “C:\Program Files (x86)\ESRI\License\arcgis9x\Viewer9.lic”

Unix: <installationFolder>/lmgrd -z -c <license file>



Windows: “C:\PROGRA~2\ESRI\License\arcgis9x\lmutil” lmdown -q -c  “C:\Program Files (x86)\ESRI\License\arcgis9x\Viewer9.lic”

Unix: <installationFolder>/lmdown -q -c <license file>



Windows: “C:\PROGRA~2\ESRI\License\arcgis9x\lmutil” lmreread -c  “C:\Program Files (x86)\ESRI\License\arcgis9x\Viewer9.lic” -all

Unix: <installationFolder>/lmreread -c <license file> -all


  1. The automatic detection capability is only applied when a license manager is installed on the same machine as the OpenLM Broker. If no such installation is noted in the registry, no Broker commands would be automatically compiled.


  1. In the OpenLM Broker’s installation folder, under the ‘tools’ directory (i.e.: C:\Program Files\OpenLM\OpenLM Broker\tools) there is a default lmutil executable file. This file is referred to when no other lmutil executable file is set. Note its existence in order to avoid problems arising from multiple code reference.
  1. View the Broker.xml file under the Broker’s installation folder ( i.e.: C:\Program Files\OpenLM\OpenLM Broker) in order to extract information regarding the Broker’s whereabouts. See the following code cut-out as a reference to the required Broker’s behavior

Troubleshoot Form: Broker Item 001 (Broker Service Not Starting)

Title Broker Service not starting.
Category Broker
Date Oct 05, 2011
Handled by Efrat, Rachel.
Relevant Links (link to mantis item, docs, customer correspondance etc.)
Symptoms Broker service failed to start,
No broker log file was written
Applies to license managers FLEXlm, FLEXera FLEXnet, IBM LUM, HASP, RLM, Sentinel RMS
Applies to license mode Floating licenses, Network licenses, Concurrent licenses
Observed during investigation Error when attempting to run the broker service via command line.
Trouble shoot process 1. Run the Broker as a Java application (Not a service) from a command line, to establish whether the problem is in the application or just with running the service:
– Succeeded.
2. Check the registry for the required key.
– Failed.
3. Import the key.
Solution Fo



Run net start “OpenLM Broker” on the command line.
The following error was observed

In this case

-NO log file is created, since the service does not run the application.

-NOR errors in the EventViewer

Trouble shooting:

  1. Try running the Broker from the command line.

This is running the Broker as a Java application, not as a service.

java -jar “C:\Program Files\OpenLM\OpenLM Broker\OpenLMBroker.jar”

start “C:\Program Files\OpenLM\OpenLM Broker\broker.xml”


In this case, this procedure succeeded. This means there is a problem only with the service and not the application.

  1. Check the Registry:

a. Open the registry editor : type regedit in the start command line.

b. Navigate to

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OpenLM Broker

c. check that you have a Parameters key, with an Application name.

The value of this name should be:

“C:/Program Files/Java/jdk1.6.0_25/bin/java.exe” -Xrs -jar “C:\Program Files\OpenLM\OpenLM Broker/OpenLMBroker.jar” start “C:\Program Files\OpenLM\OpenLM Broker/broker.xml”

  1. If this key does not exist, save the following marked text in a .reg file, and import it under key OpenLM Broker:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OpenLM Broker\Parameters]
“Application”=”\”C:/Program Files/Java/jdk1.6.0_25/bin/java.exe\” -Xrs -jar \”C:\\Program Files\\OpenLM\\OpenLM Broker/OpenLMBroker.jar\”  start \”C:\\Program Files\\OpenLM\\OpenLM Broker/broker.xml\””