At my company not everyone has access to our servers (like most companies) and we have concurrent licensing with the Licenses Manager on our server. Is there a way I can allow everyone to see what license's are in use with the usernames of who is using them, so we can see who is using it? A third party software or custom code can work too.
Thank you in advanced.
Solved! Go to Solution.
Yes there is! I can't guarantee it will work depending on your IT security, but theoretically, if your users have access to the floating license, this method should work.
Download LMTOOLS by Flexera. I actually downloaded a version from Autodesk. It's not specific to Autodesk, so it works fine for Esri. https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/EB0JPJWkEgBXjZRPBONh1.html
Once you install it, open it and on the Server/License File tab, click "Configuration using License File." And in the box, type in your server name that contains the floating license server and put an "@" in front of it. For example, @Servername.
Afterwards, click the "Server Status" tab. Click "Perform Status Enquiry" and within the box below, it will include information about who is occupying floating licenses.
I'm sure there are more elegant solutions, but this was good enough for me.
Hey CHedger,
I've actually been looking into this myself, and I found this link, sadly it seems that there is not a way to manage it other than directly through the server itself. I have seen REST information about updating the License Manager, but that seems to be as far as it goes, not sure why!
You could activate the web server on your VM running the license manager. Then a simple script that runs the lmutil.exe lmstat -a -c 27000@servername with some print statements to wrapped around it to render the output as HTML. Using the url link to the script users can see the results of the lmutil command on demand.
You should be able to write this in your choice of scripting languages.
Yes there is! I can't guarantee it will work depending on your IT security, but theoretically, if your users have access to the floating license, this method should work.
Download LMTOOLS by Flexera. I actually downloaded a version from Autodesk. It's not specific to Autodesk, so it works fine for Esri. https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/EB0JPJWkEgBXjZRPBONh1.html
Once you install it, open it and on the Server/License File tab, click "Configuration using License File." And in the box, type in your server name that contains the floating license server and put an "@" in front of it. For example, @Servername.
Afterwards, click the "Server Status" tab. Click "Perform Status Enquiry" and within the box below, it will include information about who is occupying floating licenses.
I'm sure there are more elegant solutions, but this was good enough for me.
That is exactly what i was looking for great workaround thank you
Here's an example of all the code you need to display the current license manager results in a web page. On the License Server enable IIS, install python, put this script under the C:\inetpub\wwwroot area, make some simple IIS configurations and make sure your network folks do whatever it is they do give access. I've got a more advanced one but this is all you need. Using this method, all you GIS users need is a web browser to view current license manager results.
import os, sys, string
import subprocess
import datetime as dt
import re
timestamp = dt.datetime.now()
webPageTemplatePath = r'C:\inetpub\wwwroot\LicenseUsageViewer'
lmStatCmd = [webPageTemplatePath + '\lmutil.exe','lmstat', '-a', '-c', '27000@XXXXXXXXX']
print ("Content-Type: text/html\n\n") # html markup follows
print '<HTML><HEAD><TITLE>Flexlm License Manager Utility</TITLE></HEAD>'
print '<center><H2>ESRI License Manager Status</H2></center><pre>'
print '<b>Time Stamp {} <br></b>'.format(timestamp)
proc = subprocess.Popen(lmStatCmd,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
stdin = subprocess.PIPE,
shell = True)
proc.stdin.close()
stdoutData = proc.communicate()[0]
stdoutData = stdoutData.replace('\n', ' ')
stdoutData = re.sub(r'<', '_', stdoutData)
print stdoutData
print '</body></html>'