FlexNet Licensing (flexlm) is an extremely popular commercial software license management system. It is used for network licensing with Matlab, ENVI/IDL, RemoteView, and a ton of other popular software products. This is a short note with tips for success hosting a flexlm license server on Windows.
- Follow the software manufacturer instructions to install supported version of flexlm license manager for your software product. You should be installing a license server distributed by the same company that makes the client server which uses the hosted licenses. You would NEVER want to attempt to host licenses for different products/manufacturers within the same flexlm instance. For the best chances of success, I would recommend installing each different product’s supported flexlm on a separate operating system instance (different physical or virtual machines).
- Each instance of flexlm provided by a software company will listen on a pre-configured TCP port. This port will be visible from the
lmtoolsutility when you query the license server status.
- Your software manufacturer is required to provide a “Vendor Daemon” that manages license features for the flexlm server. This vendor daemon will often require direct TCP connections from the client software. In order to assign a predictable TCP port for the vendor daemon, add
PORT=####(substitute a real port number) to the end of the VENDOR line in each license file that flexlm is hosting. EVERY time you upgrade to a new license file, you will need to REPEAT this step and add the vendor port assignment to the new license file. Stop and re-start the flexlm service to activate the vendor daemon on the correct port
- If you’re running Windows Firewall (recommended), you will need to ensure that BOTH the flexlm port AND the vendor daemon port are open.
- The jumbo packet issue with Sentinel RMS (Socet GXP) will not be an issue with flexlm because TCP negotiates a maximum packet size between client and server when establishing a connection. The fact that flexlm uses TCP makes it a better license server product in my opinion. Unfortunately software vendors are not usually interested in switching to a different license management platform once they learn how to use an inferior one.
As an example, let’s consider RemoteView. After installing the flexlm license manager provided by RemoteView, we would place the vendor-provided license file in the flexlm license directory and use
lmtools to make sure that the flexlm service is configured to use the appropriate license file. Then we would edit the license file to assign a static port to the vendor daemon
VENDOR overwatc PORT=27001. After stopping and re-starting flexlm using
lmtools, flexlm should be listening on TCP 27000 and vendor daemon “overwatc” on TCP 27001. Use the Windows Firewall configuration tools to open up ports TCP 27000-27001 which will allow your RemoteView clients to connect.
For your client machines, I recommend that you make client-specific license files based on your flexlm server license file. To do this, copy the server license file and then rename to something like
RemoteViewClient.lic (substitute your licensed product name). Edit the file and REMOVE ALL LINES EXCEPT the line beginning with
SERVER. Immediately after the SERVER line, place a new line with
USE_SERVER as the only text. The client license file will look something like the following.
SERVER yourServerName 0123456789AB USE_SERVER
On each client system, use the software vendor instructions to install the newly created client license file. This client license will never need any changes unless the server name or server mac address/hostid changes. When you update your server license file, the changes will be automatically available to clients (after restart of flexlm and client software).