Using the options file on a license server

Using the options file on a license server

SCHamoen
Advisor Advisor
808 Views
15 Replies
Message 1 of 16

Using the options file on a license server

SCHamoen
Advisor
Advisor

[ FlexSim 23.0.3 ]

We are hosting 4 licenses on our server and we would like that certain people can only check out certain licenses. According the information in the FlexNet Publisher License Administration Guide we thought this should be possible with the use of the INCLUDE_ENTITLEMENT option. So we defined GROUPS and each license has an INCLUDE_ENTITLEMENT with the group. So in the option file it looks something like this:

GROUP ABC person1 person2

INCLUDE_ENTITLEMENT xxx.com01-AAAA-BBBB-CCCC-FSENT22.0 GROUP ABC

But this is not working because if a person that doesn't belong to any group asks for a license, one is given. One could say that we should use exclude but that is also not fail proof because if somebody is not in a group he would get access to a license. Is there somebody with experience with the option file that has any idea how to solve this?

EDIT:

I looked further in the GUIDE and found this example:

INCLUDE_ENTITLEMENT Example

INCLUDE_ENTITLEMENT gy7210 USER tom

INCLUDE_ENTITLEMENT gy7210 USER anthony

INCLUDE_ENTITLEMENT gy7210 HOST jupiter

This options file does the following:

• Allows the user tom to activate any licenses contained in the fulfillment record obtained using the entitlement Id gy7210 on any system on the network.

• Allows the user anthony to activate any licenses contained in the fulfillment record obtained using the entitlement Id gy7210 on any system on the network.

• Allows any user, as long as they are on the host jupiter to activate any licenses contained in the fulfillment record obtained using the entitlement Id gy7210.

• By implication, denies the activation of any licenses contained in the fulfillment record obtained using the entitlement Id gy7210 to anyone except tom, anthony, or someone on the host jupiter

So if I read the last point it should work the way I intented. But studying further it also makes this remark:

To use the ENTITLEMENT modifier, you must set the variable ls_entitlement_based_pooling in lsvendor.c to 1 (default). This enables pooling based on the entitlement ID. For more information, see the Programming Reference for License File–Based Licensing, chapter Customizing the Vendor Daemon

@Ben Wilson can you check with development if this is the case? And on your earlier questions I don't see error message in the log and I the server is restarted in the meantime several times.

0 Likes
Accepted solutions (1)
809 Views
15 Replies
Replies (15)
Message 2 of 16

Ben_WilsonADSK
Community Manager
Community Manager

@Steven Hamoen,

After composing your new options file, did you restart the licensing service? Does the log show the options file was read without errors?

0 Likes
Message 3 of 16

joerg_vogel_HsH
Mentor
Mentor
Accepted solution

You need to restrict access to all licenses first. Then you can allow license features to a set of users.

We do this by set a LM_PROJECT passphrase and include all features. Then we can compose a set of features to a special designed computer name. This should work for a different filter, too.

You can restrict some features by reserving them for some users (computers,...).

TIMEOUTALL 1800
RESERVE 1 dragdropconnect USER vogel
RESERVE 1 expertfit USER vogel
RESERVE 1 compile USER vogel
RESERVE 1 xmlsaveload USER vogel
RESERVE 1 stochastics USER vogel
RESERVE 1 consolescript USER vogel
RESERVE 1 nomodellimit USER vogel
RESERVE 1 entiretree USER vogel
RESERVE 1 createobjects USER vogel
RESERVE 1 optquest USER vogel
INCLUDEALL PROJECT FHLM1g43

here an older option example to control a version

INCLUDE expertfit:VERSION=5.1 PROJECT FHLM1g43


Message 4 of 16

SCHamoen
Advisor
Advisor

@Joerg Vogel Thank you for answering, but I'm not completely with you yet. You say: You need to restrict access to all licenses first This sounds very logical but how do I do that?

0 Likes
Message 5 of 16

joerg_vogel_HsH
Mentor
Mentor
@Steven Hamoen , I did it with a project variable. PROJECT filter expects a environment variable in system or for a user called LM_PROJECT with a matching value. If there isn't such a variable present or there isn't a match, FlexSim starts in a demo license. Or in your case FlexSim starts with a set of a different features by INCLUDE feature GROUP.
0 Likes
Message 6 of 16

SCHamoen
Advisor
Advisor
@Joerg Vogel I edited my original question because according to the manual my solution should work but considering the fact it doesn't I'm also looking further into your solution. But unfortunately I still don't get it. I do see how the project type can be used with a keyword but what keyword do you use to exclude everything? Would it be possible to post a complete opt file? (anonymized of course)
0 Likes
Message 7 of 16

Ben_WilsonADSK
Community Manager
Community Manager

@Steven Hamoen,

I'll check with dev about that vendor daemon question.

Our options file experience is limited to the one TIMEOUTALL directive we ship in our default flexsim.opt options file. Anything else we know about options files is anecdotal after working with clients who have used the documentation you've linked to.

Your best bet is to keep testing against the documented directives and using the advice from people like Joerg who have successfully implemented more complex options files.

Looking at the documentation and comparing to the directives you've tested, it appears to me you've done things correctly. But again, I don't have any experience. Just looking at the docs.

You might Google around a bit as well. Many different software products use Flexnet, and you may get good direction from another product's community, or Flexnet itself.

0 Likes
Message 8 of 16

joerg_vogel_HsH
Mentor
Mentor

@Steven Hamoen , I am sorry, I made a bad assumption. ENTITLEMENT is restricted to fewer keywords. Only excluding has priority over including to activate licenses. What do you want to do: Activate Licenses or Checkout concurrent licenses with heartbeat to a daemon?
I thought from your description you want to manage concurrent licenses to check them out. Entitlement is for me a feature of an activation process.

0 Likes
Message 9 of 16

SCHamoen
Advisor
Advisor

@Joerg Vogel You might be on to something. Yes I want to checkout concurrent licenses but I don't want to specify every individual feature but I thought to instead use the entitlement ID to get the complete license with all the features.

So apparently there is a difference between activating a license or using all the features of a license. The first one is what you do if you go to the FlexSim license server with your activation ID and what I'm now doing is simply using all the features of a license and there is no shortcut.

So reading through the Guide it might be that indeed this ENTITLEMENT is only for activatable licenses and in this case there are none so that might be the reason why my idea is not working. So I probably have to start looking into the features anyway and simply make my options file a lot bigger.

But I still have no idea how you "restrict access to all licenses" Could you please give the line or lines that do exactly that?

0 Likes
Message 10 of 16

joerg_vogel_HsH
Mentor
Mentor

@Steven Hamoen,I think what you want is a package as a delimiter. But a package is not allowed in a trusted storage:

The following line types are not supported in trusted storage:
• UPGRADE (a combination of returns and activations are used for an upgrade)
• PACKAGE (a fulfillment record effectively packages multiple feature definition lines) Page 25 (FlexNet Publisher 2022 R3 (11.19.2) License Administration Guide)

You will work with INCLUDE and EXCLUDE each feature and get so a long option file. You can reduce some work if you can modify the start of a line by their line number to comment or undo it.

0 Likes
Message 11 of 16

Ben_WilsonADSK
Community Manager
Community Manager

@Steven Hamoen

Phil responded after checking our vendor daemon implementation:

ls_entitlement_based_pooling isn't in our lsvendor.c. It might be a feature of a newer version. Our licensing toolkit was built using Flexnet Publisher 11.14.0.1.

0 Likes
Message 12 of 16

SCHamoen
Advisor
Advisor
Hi @Ben Wilson thanks for checking. I guess it is a feature of a newer version then. If I find a solution on how I solved it I'll post it as well so you can learn from it.
Message 13 of 16

SCHamoen
Advisor
Advisor

I'll answer my own question for documentation purposes. I solved it by using the features which means you get a large opt file but it does work. Suppose we have 2 licenses with each 1 seat and 2 different clients that can use those licenses. Each client has multiple employees capable of using FlexSim so I define groups:

GROUP Client1 John Peter

GROUP Client2 Jim Alice

#We use the MAX keyword to prevent the client using too many licenses

MAX 1 createobjects GROUP Client1

......

MAX 1 nomodellimit GROUP Client1


MAX 1 createobjects GROUP Client2

......

MAX 1 nomodellimit GROUP Client2


#We use the INCLUDE keyword to prevent somebody that is not known can take a license

INCLUDE createobjects GROUP Client1

......

INCLUDE nomodellimit GROUP Client1

INCLUDE createobjects GROUP Client2

......

INCLUDE nomodellimit GROUP Client2


The only thing is that it is not certain that Client1 also uses the createobjects feature of the license of Client1 but that doesn't matter. This could matter with different FlexSim versions but a version can be added to the different keywords to distinguish between the same feature belonging to different licenses.

Message 14 of 16

zbarachki
Enthusiast
Enthusiast

Hi @Steven Hamoen,

I believe I am trying to achieve the same thing at my company. We have one license with multiple seats and I am looking to restrict a group of users to a particular number of seats.
Would it be possible for you to post an anonymized options file as an example? Or point me to where I can learn more about:

  1. How do can I know what are the different features like createobjects or nomodellimit?
  2. I read about INCLUDEALL in the FlexNet manual, could that possibly be used here instead of INCLUDE for each feature?
  3. If I were to implement what you did, would I be messing with any activation restrictions as well? I didn't quite follow the activation vs use messages. Would I have to add some ENTITLEMENT lines for this?
0 Likes
Message 15 of 16

joerg_vogel_HsH
Mentor
Mentor
@Karan, please check your log file to see what data you can use to distinguish between different users. Then you set up Groups by attributes. In your log file you see also your features.

Editing an Option file is only troublesome, if you write it line by line. If you write a single block of features and you copy it, then you can replace words by other attributes really easily in a text editor.
A feature list is here.

ENTITLEMENT is a feature to activate licenses persistent on a user machine. Your license must be made to use this functionality. Concurrent licensing does not use activation on user machines. You activate only once a license on your license server to distribute license rights, then a user machine checks out licensed features. The license heartbeat restricts any other use of this numbered license by other machines. You can use this license only again after it has been checked in. This happens automatically if the previous granted machine does not pull the license during its lifespan between an heartbeat interval.
ENTITLEMENT is a feature to setup an own License Server to manage standalone licenses.
BORROW is a feature to grant a license on a standalone machine for a limited time (weeks, months). I am not sure if this feature is available for FlexSim on an own License Server.
CONCURRENT is a feature to grant licenses while there exists a permanent connection to a license server. A heartbeat interval is responsible to limit the traffic to your license server (minutes, half an hour). Checking of licenses occurs often in shorter intervals, but if a granted machine cannot renew its license in its lifespan of a heartbeat interval, then granted features gets lost and only features of an express licensed version are still available. A user on a granted machine gets a notification about it. You can break a permanent connection during a life span, but you must reconnect to your license server in this lifespan time between heartbeats to keep your license alive.

Message 16 of 16

zbarachki
Enthusiast
Enthusiast
Thank you Joerg, this was helpful.
0 Likes