PDA

View Full Version : General questions about implementation



cmp2488
02-17-2015, 10:04 AM
Hi, I'm very new to this licensing software and I'm using the FlexNet Embedded Java XT package, mostly just playing around with the examples right now. I'm using binary license files and running the "client" example. My first question is, given a license with a single count like this (which I have converted into a binary file signed by my keys for use in the client example):

INCREMENT somefeature mycompany 1.0 1-dec-2015 1 HOSTID=ID_STRING=1234567890

(I've changed the feature name and company for privacy's sake). I then run the client example, passing it the binary representation of the above license (I've modified the client example to use the appropriate feature) and it gets a license no problem, great. I then add a small delay in the client example after calling "acquire" to get the license and I start up a second instance of the client example after the first. The first process gets the license fine, so I would expect the license to now be in use, but the second instance of the client example is also able to acquire the license. Why is this? Am I doing something wrong? (again just the client example here and I've only made changes to ask for my feature and added a small sleep after doing so).

I thought maybe I needed to somehow put the license into "trusted storage" (no server here as of yet, I need to be able to support node locked licenses without requiring a server, but I also can't allow them to run multiple instances of the program on the same system if they only have a single license), but I haven't been able to figure out how to do that.. the "CapabilityRequest" example seems to do this, but it is expecting the license to come from a server, which it is not in my case. I thought maybe the intended use was for the client to use this binary license file, put it into trusted storage, then my application would check there for the license and maybe things would work as I expected.

Also, assuming I get the above working, I was wondering how to continuously check, at some interval, whether or not the license was still valid (not expired, no clock windback, etc). Would this be something I do manually in my application, or is there an API thread I can kick off that would do this for me?

Thanks,
Craig

cmp2488
02-17-2015, 02:27 PM
As an update. I did manage to get the license into "trusted storage" (file based) by using the tools to generate a server response binary and then using the "UsageCaptureClient" example to load it into trusted storage (a hack I know). After that I was able to obtain the license in the "Client" example using trusted storage instead of my binary license file. This, however, did not behave as I expected either... I was still able to launch multiple instances of the "Client" example and acquire a license on all of them (even though there should only be a single license available). So this doesn't appear to be what I want either. After reading more documentation I think the buzz words for what I'm trying to do is something like "unserved counted node-locked" licensing.

cmp2488
03-02-2015, 09:10 AM
Just to update, in case it is helpful to somebody in the future... The licensing model I describe here isn't supported. There isn't a mechanism in FNE to maintain a feature usage count of a node locked buffered license between different instances of the licensed software. The "count" field in the node locked license applies on a per-instance occurrence of the licensed software, so in a single instance the software cannot acquire more licenses than the "count" field specifies in the feature, but a user can launch as many separate instances as they would like.