Setting worker pool size on "Refresh Identity Cube" task

  • 7011192
  • 10-May-2011
  • 02-Nov-2012

Environment

NetIQ Access Governance Suite

Situation

Setting worker pool size on "Refresh Identity Cube" task

Resolution

By design, "Refresh Identity Cube" task builds a list of identities and processes each identity according to the selected option(s).  The design queues each targeted identity to a worker thread pool.  A worker thread pulls and actually processes the identity.  Task execution time grows as the target list gets larger.

As a tuning option, each refresh task object sets the size of the worker pool. Each identity refresh task can spawn multiple worker threads. Each execution builds a (new) pool (except for group-only refreshes which don't use a pool at all). Increasing worker pool threads significantly improves the task duration in many scenarios.

The "hidden" task attr "refreshThreads" resides in the object map list, with a numeric value for the pool size (default value is '1'):

<TaskDefinition ...
<Attributes>
<Map>
<entry key="refreshThreads" value="5"/>
...
</Map>
</Attributes>

The identity refresh worker thread pool is separate from the (Quartz) scheduler thread pool. The refresh worker pool ties to a dedicated/private queue, based on user and task names. To trace a refresh worker pool, then enable debug log4j on:

log4j.logger.sailpoint.task.IdentityRefreshExecutor=debug