question

Steven Hamoen avatar image
0 Likes"
Steven Hamoen asked Karan commented

Using the options file on a license server

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.

FlexSim 23.0.3
activate license serveroptions file
· 4
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Ben Wilson avatar image Ben Wilson ♦♦ commented ·

@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 0 ·
Ben Wilson avatar image Ben Wilson ♦♦ commented ·

@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 0 ·
Ben Wilson avatar image Ben Wilson ♦♦ Ben Wilson ♦♦ commented ·

@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 0 ·
Steven Hamoen avatar image Steven Hamoen Ben Wilson ♦♦ commented ·
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.
1 Like 1 ·
Joerg Vogel avatar image
1 Like"
Joerg Vogel answered Joerg Vogel commented

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


· 6
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Steven Hamoen avatar image Steven Hamoen commented ·

@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 0 ·
Joerg Vogel avatar image Joerg Vogel Steven Hamoen commented ·
@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 0 ·
Steven Hamoen avatar image Steven Hamoen Joerg Vogel commented ·
@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 0 ·
Show more comments
Steven Hamoen avatar image
2 Likes"
Steven Hamoen answered Karan commented

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.

· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Karan avatar image Karan commented ·

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 0 ·
Joerg Vogel avatar image Joerg Vogel Karan commented ·
@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.

1 Like 1 ·
Karan avatar image Karan Joerg Vogel commented ·
Thank you Joerg, this was helpful.
0 Likes 0 ·