Tuesday, September 18, 2007

AutoCAD and that Awful Network License Manager (FLEXlm)

I recently had a problem with AutoCAD 2006, the Network License Server (aka FLEXnet 10.1.5) and a borrowed network license.

The problem was that a laptop had borrowed a license and the hard drive died several days after.

A support call lodged with Autodesk resulted in a "wait for the borrowed license to expire", even after escalating the request to a supervisor. Sorry, not good enough. The annual maintenance fee paid to Autodesk should more than make up for either an immediate remedial action (ie an administrative return process that actually works), or a temporary key re-issue.

So I started Googling. I Googled some more and became thoroughly depressed. Yet another one of those well-known, but not one of those well-documented, products. I'll save my rant about large software companies who don't care about their customers for another day.

There was one useful poster on the Autodesk forums, who was careful with his information in a bid to retain his posting privileges to the Autodesk forums. Based on some of his information, I was able to finally come up with a solution.

The FLEXnet licensing "solution" under Windows provides a GUI front end (called LMTOOLS) to the lmutil command line utility that is used to manage FLEXnet license manager under Unix.

The last tab of the LMTOOLS utility is called borrowing and it's supposed to be used to be able to manage licenses that support borrowing. However it doesn't work out of the box and furthermore Autodesk do not recommend nor support the use of this tab for their licenses.

For anyone that wants to get it working, you need to go to the Utilities tab, leave Vendor Name blank and enter the path to the license file containing the floating licenses. Click Override Path. This will set the default path to the license file. In Vendor Name, enter 'adskflex' and use the same path as the previous step, then click Add Vendor Path. This will enter the vendor path for Autodesk products to point to the license file. You shold now be able to go to the Borrowing tab and click List Currently Borrowed Features to see the borrowed licenses and to also use the Return Borrowed Licenses Early button.

In my case, the Perform Status Enquiry on the Server Status tab was showing the AutoCAD license as being borrowed (by the presence of a 'linger' value), but the List Currently Borrowed Features command on the Borrowed tab indicated that no licenses are borrowed. This was most likely due to the fact that I had consolidated several different vendors' FLEXnet licenses under the one FLEXnet license server to improve license server reliability (which it actually did - a whole heap of ongoing random license server crashes disappeared once consolidated)

So, it appears that the Network License server + utilities are half-baked and the only resolution I had according to Autodesk was to wait the 2-odd months for the license to expire.

In a final act of desperation I started up the Network License service and watched its progress using Sysinternals' Process Monitor and found the location of the stored borrowed license. The borrowed license was stored at:

C:\Documents and Settings\All Users\Application Data\Macrovision\FLEXlm\adskflexborrow

I would expect to find an 'adskflexborrow' file on a Unix system that hosts a FLEXnet license server, for those people running on Unix.

After backing up this file and stopping and starting the Network License Service I was able to reissue the license.

Why the Autodesk Help Desk weren't able to tell me this is beyond me...


Anonymous said...

While I agree with you some of the way it's a hard topic you're discussing. Obviously software should be there to assist you and not work against you. However keep in mind that license managers are working against you since they are only there to limit your rights and ensure that you're compliant. So it's indeed a problematic topic. If everyone could remove the borrow period it's only defeating the license manager and allows you to overuse the license on a daily basis.

Flexlm license statistics
knowledgebase on lm-x, flexlm and ibm lum

Chris Knight said...

I'm not disagreeing that license management and compliance are hard.

The biggest problem I've had with FLEXlm over the years is its fragility and unreliability.

If you're going to make software available that costs half that of a new small car, then add 15-20% annual maintenance fee, then it's not unreasonable to expect that you can use that software under the licensed conditions when you need it.

In this instance with the death of a laptop hard drive, the lack of information available to me forced me to come up with a solution for my client, seeing as Autodesk - who are receiving the annual maintenance fee - weren't interested in helping them.

The information I made available is to help other unfortunate sysadmins who have to recover a borrowed license due to hard drive death, not to violate licensing agreements.

Anonymous said...

We had the exact same issue with Flexlm but for Solidedge licensing. A hardrive played up last week and we ended up having a license checked out that wasn't recognised by the client. After speaking to the VAR we decided to live with it until it expired. Then teh hard drive gave up all together so we had two licenses issued to the same machine that wasn't functional. This started to put the pressure on! Thanks to finding your post I was able to clear all borrowed licenses and we can keep using (legally) all our copies of the software so THANKS!

Anonymous said...

OMG this worked out so well, Thanks for posting your find

I searched for hours today on this.

flexlm borrowed license

I came up empty until I found this page.


Anonymous said...

Thanks... Worked like a charm...

Anonymous said...

After much searching I found your article. Thanks, removing the files from 'C:\Documents and Settings\All Users\Application Data\Macrovision\FLEXlm' did the trick!!

Anonymous said...


Anonymous said...

For different reasons today we have found the same information at the client end of a FlexLM install.

We had a case where the client end of FlexLM thought it had borrowed a license when the server had lost that "borrow". So we could not return it. Less of a problem but still wrong.

If you need to clear this case you can delete FlexLM's record of the borrow on the client by deleting the keys in registry: HKEY_LOCAL_MACHINE\SOFTWARE\FLEXlm License Manager\Borrow

(As above - thanks for this page - really useful info - shame FlexLM is so fragile - there should be a law removing patents from the ownership of companies who are not up to producing usable software!)

Chris Knight said...

Thanks very much for the information regarding licensing failure on the client end - much appreciated!
I vaguely remember bringing forward an OS re-install because of this problem.

Anonymous said...

Thank you for posting this. It helped me to get the orphaned borrowed licenses back!

After i got the licenses back i upgraded the lmgrd.exe and adskflex.exe file to the newest version. After testing with borrowing and returning the licences the problem of the orphaned borrowed licenses was gone. Thanks a lot for this solutions on getting back borrowed licenses.

Anonymous said...

After having this issue and finding this page to resolve it I wanted to share some updated info. On newer versions of Windows Server the file is located at "C:\ProgramData\FNP\FLEXlm".

Anonymous said...

Thank you from the year 2015! :-)

Long after the original post, and nothing has changed with Autodesk Licensing Server.

My problem was the server showing a license borrowed for 150+ days (according to the "linger" value), while it was actually borrowed for a week and should have been returned by that time.

Renaming the adskflexborrow file helped, all my licenses are available again.


Anonymous said...

Can confirm that renaming the adskflexborrow file works, thanks heaps for the solution. Similar situation with a dead hdd.

Server 2012 the file is located as follows: