Head Node will not read config file or contents for FlexLM Activation Filter DLL RRS feed

  • Question

  • Hello

    I've been beating my brain on trying to implement a FlexLM activation filter to our 2012 R2 4.2.440 head node Running Server 2012.

    I'm using the HPC pack 2012 SDK and examples on VS Pro 2012, update 5 .NET 4. Also tried 3.5-4.5 /w same results.

    The project is the Activation FlexLM and the issue seems to be the ConfigurationManager.AppSetting calls in the cache.cs file, as it doesn't seem to read my config file when I copy the files to the head node and restart the scheduler service.

    Debugging the DLL by calling PollLicenseServer() from VS Immediate window will read the "CacheFile" path (Path2 of the .IO.path.Combine function) and read/write to the cache xml file with the lmstat output, as does the Console Application executable I started working with before moving to the DLL. So I thought I was set.  NOPE.

    I've tried several things from changing the build .NET versions to adding in the app.config file to the DLL solution and populated it with the XML contents to create the "Activation FlexLM.dll.config" on build, instead of copying it by hand. I'll copy them both over to the CCP_DATA path and add the dll in the custom job template and run a test job from a XML file that requests a valid license specifying the job template and it just goes right to QUEUE with the following in the HPC Server event log:

    Name="Exception">Microsoft.Hpc.Scheduler.AddInFilter.HpcServer.AddInFilterTimeBoundedCallException: Exception during time bounded call. See Inner Exception. ---> System.ArgumentNullException: Value cannot be null. Parameter name: path2 Server stack trace: at System.IO.Path.Combine(String path1, String path2) at FlexLM.Cache.get_Path() at FlexLM.Cache.Save() at FlexLM.Cache.Load(Int32 SchedulerIndex, Int32 JobIndex) at FlexLM.JobFlexLM.FilterActivation(Stream jobXml, Int32 schedulerPass, Int32 jobIndex, Boolean backfill, Int32  .....

    This is telling me the  Scheduler / Activation Filter  can't read the .dll.config or is having a issue with the Path.Combine call. I hardcoded the path to the cache file path, then the next test submission would continue past the "Path" call but throw another null exception error about the next line that calls the ConfigurationManager.AppSettings "PollCommandName" so I'm pretty sure something somewhere is having an issue with ConfigurationManager.Appsettings from the Scheduler.

    What I cant figure out is why or where and what I can try next!

    Is it the scheduler service??  It'll lock the .dll file after a restart it so I know its using it.

    Is it the path or the name of the .dll.config file it doesnt like??? 

    It works for the ConsoleApp using the exact same config file and AppSettings lines and  for debugging the dll via immediate window or attaching the HPCScheduler service in and Debugging that way, but being a noob to Visual Studio, C# and Object based coding I get lost when it starts jumping around to all the other references, so I'm no pro here.

    Thanks for any suggestions or ideas, I'm plumb out at this point.


    Thursday, October 20, 2016 10:23 PM