Application scheduler daemon

An application scheduler daemon is a background thread that searches for tasks to run in the database.

An application scheduler daemon is started for each application scheduler defined on each server. For example, if Scheduler 1 is configured on server1, then only one application scheduler daemon runs on server1. If Scheduler 1 is defined at the node scope, then the application scheduler will run on each server within that node.

The poll interval determines the frequency of queries for a persistent store. By default, this value is set to 30 seconds. When a task is found that is scheduled to run within the current poll interval, an asynchronous beans alarm is set. The task then runs as close to this time as possible using an alarm thread from the application scheduler's associated work manager. Therefore, the number of alarm threads configured on the work manager determines how many concurrent tasks are executed. No tasks are lost. If the task limit is reached, then new tasks are simply queued to be executed when an alarm thread becomes available. The server load and availability dictate he actual firing time of free threads in the alarm thread pool of the associated work manager.

Scheduler daemons in a cluster

When multiple application schedulers are configured to use the same tables (as is the case in a clustered environment, any of the daemons can find a task and set the alarm in its Java virtual machine (JVM). The task is executed in the virtual machine where the scheduler daemon first runs until the daemon is stopped and another daemon starts. For example, if an application on server1 schedules a task to run while server2 is already running, then the task runs on server2 instead of server1.


Copyright IBM Corp. 2003, 2005 |