NW IdM Performance of Provisioning Jobs: reading privileges
[admin privileges] [flush privileges] [privileges] [provisioning] [sap_getABAPRoles] [sap_getSPMLRoles] [SetABAPRole&ProfileForUser] [SetJavaRole&GroupForUser]
Related:
- NW IdM Performance of SAP Provisioning JobsSymptom You are using SAP NetWeaver Identity Management 7.1, and...
Symptom
You are using SAP NetWeaver Identity Management 7.0 or 7.1 and you encounter performance problems in a provisioning job that is reading several priviliges of a user multiple times.
Other terms
SetABAPRole&ProfileForUser, sap_getABAPRoles, SetJavaRole&GroupForUser, sap_getSPMLRoles
Reason and Prerequisites
You are running provisioning jobs in an SAP NetWeaver Identity Management 7.0 or 7.1 system. If a user is assigned to multiple privileges that aopply to the same repository, multiple provisioning tasks are triggered for the same target system.
As part of the processing, tasks or jobs use the JScript sap_getRoles() to find out which privileges are assigned in the target system.
For example, the task “SetABAPRole&ProfileForUser”, which is located at “SAP Provisioning Framework” -> “System Type Specific Tasks” -> “AS ABAP Tasks” uses this script.
You can see how much time is consumed by a job, in this example, “SetABAPRole&ProfileForUser”, in the job log for each job that has been started so far.
Solution
If a user is assigned to multiple privileges that belong to the same repository, you can use a time-dependent cache to speed up the runtime of the job.
To do so:
- Save the existing JScript sap_getRoles() in “Global scripts” -> JScript to a safe place
- Unzip sap_getRoles() from the attachment of this note and import this script into your “Global scripts”.
- Define a new global constant: SAP_CACHE_PERIOD and set the value to 60000
The new global constant defines the life time of the time-dependent cache entry in milliseconds.