Hi,
In an enhanced service protocol, I try to retrieve the profile definitions via the Read() of the ProfileDefinitions in the ProfileHelper:
Unfortunately, when DataMiner (version: 10.1.5) gets failed over, I get a DataMinerException:
(Code: 0x80131500) Skyline.DataMiner.Net.Exceptions.DataMinerException: There is no known manager that can process objects for CrudComponentIdentifier[ProfileDefinition]. Check if the agent is licensed and is using the required database.
So far, this error message has only appeared when the DMA gets failed over and not when the DMA gets restarted.
Question 1
Could you provide a little more background info why the exception is thrown? The agent is licensed and I assume that the required database is accessible and used (worked perfectly before failover).
Question 2
I suppose that re-executing the method till I retrieve the profile definitions (or till a timeout) would do the trick but is there more elegant solution?
- Waiting/checking process X.
- Using a different method to collect the profile definitions?
- ...
Hi Frederic,
For question 1:
- In order to use Profiles, you should use the ProfileHelper instead of the ProfileManagerHelper.
- it could be that Profiles is stored in Elastic database instead of in XML.
This can be checked in client test tool (Advanced > Migration)
- Could you test the following code and see if this works? And then filter client -side on empty name:
var allDefs = _profileHelper.ProfileDefinitions.ReadAll();
- If following did not help, please do check server logging as SlProfileManager, SLError, SLWatchdogs2, SLDBConnection, .. Please also check information events or active alarms if any pops up in the system while requesting.
Good old support question (in cas eof internal or staging system): 'have you tried to turn it off and on again'?
For question 2, I believe it is not sufficient, nor wise, to re-execute the script. Things will remain the same or even get 'worse'.
As Einstein said once: "Insanity is doing the same thing over and over again and expecting different results."
Hope this helps you further.
ProfileHelper and Elastic support start from 10.0.8.0.
ReadAll() is an extension method, more info: https://docs.dataminer.services/develop/api/types/Skyline.DataMiner.Net.ManagerStore.CrudHelperComponentExtension.html#Skyline_DataMiner_Net_ManagerStore_CrudHelperComponentExtension_ReadAll__1_Skyline_DataMiner_Net_ManagerStore_CrudHelperComponent___0__
Thanks again 🙂
Hi Frederic,
I would use the following call
List<PrflDefinition> prflExistingDefinitions = SrmManagers.ProfileManager.GetProfileDefinitionsWithFilter(new ANDFilterElement<PrflDefinition>()).ToList();
// using PrflDefinition = Skyline.DataMiner.Net.Profiles.ProfileDefinition;
Don't forget to add the SLSRMLibrary.dll as a reference.
I'm not 100% sure about your call if it's correct or not but I had errors in the past when elastic was down or had issues starting up, having a look at SLSearch logs and the elastic logs might be a good idea. I would still first try my suggested call though.
Please let me know if this helped.
Hi Matthias,
Thank you for your answer. I will check the logs but I don’t think I can use your call. I believe that the minimum DMA version is 10.2.6 (or at least higher than 10.2.1), because I don’t have that call yet + customer is 10.1