[midPoint] Help optimizing metarole that's called over 1000 times per user.

Alcides Carlos de Moraes Neto alcides.neto at gmail.com
Tue Feb 19 22:30:21 CET 2019


Hello list,

We have a very simple metarole that is applied to Roles in order to turn
them into AD groups, done based on the documentation example (
https://wiki.evolveum.com/display/midPoint/Roles,+Metaroles+and+Generic+Synchronization#Roles,MetarolesandGenericSynchronization-Higher-OrderInducements).


We extend it, adding more inducements with associationFromLink. In total,
there are 10 order=2 inducements. One for simple user account membership.
Another for group-group membership, and the other 8 are for Org types, one
for each AD projection that orgs can have. For these, there are script
conditions that check for some assignment fields values.

It all works just fine, however it performs horribly. When making changes
or recomputing a user with very few assignments, just a Org and a group,
the invocation count for this Metarole can reach 1500 calls. Each call is
fast, but they add up to 500ms sometimes.

This will not happen for users with no Org assigned. It seems midPoint goes
'nuts' and validates this metarole for every Org up in the organization
tree. We do have a fairly complex Org Tree, with almost 1300 Orgs. But all
the inducements are order=2, shoulnd't only the immediate Org be validated?

Any help here will be appreciated, thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20190219/da03b768/attachment.htm>


More information about the midPoint mailing list