IIQ uses the Quartz package to manage task scheduling. All Quartz-scheduler (JVM) threads pull task schedule objects from a shared queue for execution. At the time of this writing, Access Governance Suite sets # of scheduler-related threads to 5. The scheduler pool's threadcount limits the number of concurrently running scheduled tasks. At startup, the (Quartz) scheduler starts the cfg-ed number of worker
threads (filling the pool).
To detail the threads operation, browse to the "hidden" debug page "Threads" option. Depending upon the Access Governance Suite release, the displayed page lists the JVM threads or (later releases) gives a full stack trace:
To change the quartz threadpool, add the following line to iiq.properties (and restart Access Governance Suite):
As a cfg scenario, the "Sequential Task Launcher" task steps thru the task list, queueing a task schedule object at each entry and then waiting for a completion status before moving on to the next task list entry.
If multiple (or nested) "Sequential Task Launcher" tasks run, then the # of tasks waiting for completion could match/exceed the total number of scheduler threads. If so, then the scheduler threads deadlock, waiting forever for a task schedule completion while the task schedule object remain in the queue (awaiting a scheduler thread pickup).