*IIQ 8.4.2
*
I’m supposed to put source mapping of our identity attributes into a one well organized global rule. When i did that I noticed huge performance fall. Basically the new rule takes double the time than previous few rules. Hence the question. Is the size of rule a major factor in executing such mappings or is my logic in rule faulty?
To put it into perspective, we have 3 Identity Sources, so the mapping rule has a structure of:
switch (attrName):
case “attrName1” :
switch(identitySource):
case “source1”: //code here
case “source2”: //code here
case “source3”: //code here
note that this solution is for i think around 20 something attributeNames.
It depends on what the rule applies to. If you have some searches, some for\do-while etc…
Also, depending the logic in your rule, the rule could be execute foreach identity and foreach attribute.
For example, the rule start for a idn and you calculate every attribute every time, because the global rule will be execute every time. Instead, the application rule or direct mapping will be execute only if the identity have that application or if the source have the attribute that you are mapping.
So, a global rule could be much more inefficient than a normal mapping.
global rules that handle many attributes and sources can be slower because they run for every identity and attribute. To improve performance, consider splitting logic per identity source, using maps instead of nested switches, and only computing values when necessary.
I think you have the same problem, I suggest to you to mapping each attribute or map all the attribute that you can map directly and reduce the number that you manage into the rule