Multiple FlexLM Activation Filters in a job template. RRS feed

  • Question

  • License Activation Filter using FlexLM - lmstat.

    Hi, I'm using a license Activation Filter that I built & tuned from the HPC2012 dll example using flexlm to check for license count before a job can fire by a particular license server and vendor, (tag). port@host.

    It works great for a job that only uses one license server or tag. Like mathworks or mentor as examples.

    We have some users jobs that may require licenses from multiple vendors or (tags) that require a separate activation filter and *.dll.config to point to the specific license server and port  for that vendor. We have several license servers that serve various tool licenses all with unique port @ host.

    If I create a job template that specifies two activation filters. One for each license server, port. Then create a job from xml that specifies a license from each server, they always fail.

    From the activation filter debug log and general job error, it appears HPC scheduler is trying to find the job license using the wrong activation filter and it fails like its a feature that does not exist as opposed to it trying the next activtion filter .dll that will match the license.

    Is there a way or logic to specifying the jobs license properties, the vendor(tag) or activation filter dll name so the scheduler knows to search for that license in activationfilter1.dll instead of activationfilter2.dll by the license feature name, or am I employing multiple vendor activation filters improperly? The filters are the same base C# code with separate assembly names and config files.

    For the activation filters, they each have their own cache file by name and I wondered if a common or combined cache file would work some how so the activation filter's, Cache.Load (lmstat), output to a common file for reference? Far fetched maybe??



    Monday, September 25, 2017 4:27 PM

All replies

  • Hi,

      This should be expected behavior. A chain on activation filter is to check a list of licenses that's all available before starting a job. Here is the description from online doc: https://technet.microsoft.com/en-us/library/ff919469(v=ws.11).aspx

    If you have specified a chain of activation filters, a job will be evaluated by each filter in the order listed as long as it passes with an exit code of 0. If a filter returns a non-zero exit code, that value is passed to the HPC Job Scheduler, and any activation filters that already ran on the job are called again in reverse order to allow the filters to revert actions, if necessary. For example, an activation filter that checks for available licenses might include code to release the licenses if the revert function is called.

      You requirement is to check multiple license server for one license in that case, you just do these check against multiple license server within one activation filter.

      And if your job does require multiple licenses from different servers, your activation filter logic should "skip" license check and always return 0 if the requested "license" feature is not his duty.

    Qiufang Shi

    Tuesday, September 26, 2017 1:37 AM
  • OK, thanks qiufang

    "You requirement is to check multiple license server for one license in that case, you just do these check against multiple license server within one activation filter."

    I kinda figured a combined (two license server in one configuration) Activation Filter would be needed in this case. I was hoping there was a way to incorporate two separate filters that each query there own license server to prevent from having to build further custom filters.

    In my scenario the requirement would be to check for two licenses, of which each is on its own license server but I think the logic is the same using a single filter unless there is a way to pass additional attributes to the scheduler in the license configuration for a job with out confusing the filter itself.



    <svg id="midnight-lizard-filters" style="display:none;"><filter id="ml-blue-filter" style="fill:rgb(0, 0, 0) !important;"><fecolormatrix style="fill:rgb(0, 0, 0) !important;" type="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"></fecolormatrix></filter></svg>

    Tuesday, September 26, 2017 2:46 PM