Setting up software licensing mechanisms sometimes feels like the biggest source of frustration in my life. (I’m only halfway joking…) With that said, we at Claytex attempt to minimize this pain. As you likely realize, software licensing is one of the necessary evils in the life of a commercial software company. Without effective software licensing, license fees can be circumvented, and Claytex (and most other software companies) wouldn’t be able to survive. This blog post is being written to provide an overview of the Claytex license server setup on Windows Server 2022 desktop edition.
General licensing overview – precursor to the license server setup
Let’s first review the licensing basics. The Claytex licensing mechanism (like most others) can be broken down into 2 primary parts; the ‘client side’ and the ‘server side’ (which may be optional depending on the type of licenses you have purchased).
Now for a quick overview of the ‘client side’ of the licensing mechanism, in our case, this is the piece of software that checks to see if the client (user’s computer) is approved to run our software. This piece of software is effectively the middle-man that is queried by our various pieces of software (including but not limited to our Modelica libraries) and is called the ‘License Manager’ (licensemanager.exe). It is automatically installed via all of our installers, as without it, the user would not be able to run up any of our software. This ‘license manager’ will either check validity of a local license file (in the node locked case), or communicate with the Claytex license server via the network in an attempt to check out a license to run the software (floating network license case).
As for the ‘server side’ of the licensing mechanism, the license server itself is FlexNet based and we are currently using version 11.17.1 for both the vendor daemon and in our applications. You must use this version or later to ensure the server will work with our software tools. The license server installation is available as a standalone download from Claytex. If a download link has not been provided, please contact firstname.lastname@example.org to request the most current option.
Step 1 (install the required files):
Run the installer to lay down the required files.
Accept the agreement… Next
Pick the install path… Next.
Install the files… Install.
Click Finish and then you can have a look at the files that were installed in the selected directory.
Now we can start to work on the license server setup. If you’re familiar with FlexNet licensing then you will recognize the lmgrd.exe, lmtools.exe, and lmutil.exe files. One noteworthy file for this blog post is the installs.exe file. It is a utility that helps you configure your license service. We will use this utility to help configure the license server service.
Step 2 (The license server setup):
If you’ve read this far into this blog post, I’d bet that you have already received a network license file from Claytex. Once you receive your license file you will need to open it up in a text editor (notepad++ is my preference) and update the file to have the same name as your server. The text server.name.here in the license file should be modified to match that of the host machine. Additionally, if a port other than 27000 (the default) is desired, you can modify that entry on the same line in the license file. For example to tell the license system to use port 5000 you would change the line as follows.
SERVER server.name.here aabbccddee 5000
Once you have finished updating the license file to match your computer name and preferred port, open a cmd window and use the installs.exe utility to help you configure your license server service. The command and options that are needed are as follows.
installs -c license_file_path -e lmgrd_location -l log_file_path -n service_name
|Argument||Description||Value if default installation is used|
|license_file_path||Full path to the license file||C:/Program Files (x86)/Claytex/License-Server/claytex_license.lic|
|lmgrd_location||Full path to lmgrd.exe||C:/Program Files (x86)/Claytex/License-Server/lmgrd.exe|
|log_file_path||Full path to the server log file||C:/Program Files (x86)/Claytex/License-Server/log.log|
|service_name||Name of the service to be created||“Claytex License Server”|
In my case the exact inputs needed for the CMD window were:
cd C:\Program Files (x86)\Claytex\License-Server
installs -c “C:\Program Files (x86)\Claytex\License-Server\Claytex2023.lic” -e “C:\Program Files (x86)\Claytex\License-Server\lmgrd.exe” -l “C:\Program Files (x86)\Claytex\License-Server\log.log” -n “Claytex License Server”
You should get something back like this:
Step 3 (Start the service):
At this point, the service has been configured. Now you can use the lmtools.exe utility to start the server, adjust things to your preference and make sure the service starts and is working properly. To do this, double click on the lmtools.exe file. You should see something like this:
To start the service, go to the Start/Stop/Reread tab:
Click the ‘Start Server’ button. If it works correctly, you will see ‘Server Start Successful’ in the lower portion of the window, like this:
It turned out that I didn’t initially get the ‘Server Start Successful’ note. On top of this my log file was empty… so debugging was challenging. Ultimately, we determined that my service ‘Claytex License Server’ was running under the wrong user (this is the most common issue we see from our customers). To remedy this I typed services in the windows search bar to help find the services application:
Which I clicked to launch… and hunted down my ‘Claytex License Server’ service:
Then I right clicked and opened the ‘Properties’ for this service:
Then I clicked the radio button next to the Local System account as shown above (the second radio button for ‘This account’ was initially selected) and then clicked OK.
At this point I went back to the LMTOOLS utility and clicked ‘Start Server’… and I received the ‘Server Start Successful’ on the lower border of the LMTOOLS utility window.
Once you get the ‘Server Start Successful’ you will want to check your log file to ensure the license file was deemed valid and accepted when the service was started. To do this, go to the ‘Config Services’ tab:
From here you can click the ‘View Log’ button on the middle/lower right hand side of the panel. Which will bring up the log file in a popup window:
You can then scroll down and look over the contents of the log to see information related to the functionality of your license service. Of course, you could also open the log file in notepad or notepad++ to read through the contents…. which is my preference. 🙂
At this point you should be good to go on the license server setup. As long as your client machine is on the same network, and you have enough licenses for the current number of users, you should be good to go on the Claytex licensing front.
I hope this blog post is useful in helping you set up your license server. If you have any questions about this topic or another, please reach out to email@example.com and we will get back to you promptly!
Nate Horn – Vice President
Please get in touch if you have any questions or have got a topic in mind that you would like us to write about. You can submit your questions / topics via: Tech Blog Questions / Topic Suggestion.