Scheduler in WebSphere Commerce is a background server which schedules and runs specified jobs both at the site and store level. So what I mean by job here? A job can be any WebSphere Commerce controller command that you would like to run on a site or store level.
You can find overview of a scheduler in Knowledge Center article here
This post will cover details about important database table's which are used with respect to Scheduler Framework functionality.
SCHCMD - All the store and site level scheduler commands are configured in this table. For site level scheduler commands, we can also use the controller commands configured in the struts config file and it's not necessary that all site level schedulers commands needs to be configured in this table but all store level scheduler commands need to configured in this table.
CHKCMD - Check command details are stored in this table. Lets consider a simple scenario, as per requirement you would like to run a specific scheduler command only on weekdays. So before running a scheduler command, you would like to check whether it's weekday or not and decide based on it. This kind of validation is done through this check command and each scheduler command may or may not have a check command.
SCHCONFIG - When you configure a scheduler in WebSphere Commerce admin console, all configuration details are stored in this table. It has details about all the scheduler jobs configured at WebSphere Commerce
SCHACTIVE - This table holds details about what schedule job needs to be executed and when it needs to be executed. WebSphere Commerce scheduler framework looks up for this table to identify which scheduler job needs to be executed at a given time.
SCHSTATUS - The status of all the scheduled jobs gets stored in this table. Like what's the current status of this schedule job, when it's started, when it's ended, whether it's failed or succeed etc.
SCHERRORLOG - When particular schedule job failed to execute, this table logs the exception information against each failed job. This helps to understand why specific scheduled job failed to run.
In short, scheduler command and task command details are stored in SCHCMD and CHKCMD table and scheduler configuration related details are stored in SCHCONFIG and SCHACTIVE. Scheduler framework monitors the SCHACTIVE table to identify which scheduled job needs to be running at a specified time, pulls the corresponding scheduled job configuration details from SCHCONFIG table, executes the identified scheduled job and updates the status in SCHSTATUS table and logs the error message in SCHERRORLOG table if specific scheduled job failed.
The above mentioned tables are not the complete list of tables used by WebSphere Commerce Scheduler Framework, you can refer the Knowledge Center article here to know more about it. This is more like a basic foundation blog for the succeeding blogs which I am going to write about scheduler framework.