_ScheduledJobs
The _ScheduledJobs table stores the schedules of the scheduled jobs. The OLAP reads through this table to decide if any new jobs should be added to the _Jobs table.
This table describes _ScheduledJobs:
Column | Type | Description |
---|---|---|
Id | Big Integer | Sequential key
identifying scheduled job. This is not the same as JobId of _Jobs table. |
JobType | Integer | Enumerator for
kind of job. 1 = Load Dimension 2 = Create Cube 3 = Load Facts 4 = Set Cube Properties 5 = Set Dimension Properties 6 = Fill Dimension Attributes 7 = Set Cube Rules 8 = Load Subsets 9 = Clear Cube Region 10 = Delete Dimension 11 = Delete Cube 12 = Set Dimension Level Names 13 = Load Dimension Create DAC |
JobObject | String(71) | The dimension or cube that the job operates on for job types 1, 2, 4, 5, 6, 7, 8, 10, 11, 12 and 13. For job types 3 and 9 this is set to JobObject of FactLoadParameters. |
JobParameter | Integer | Key to _JobsParameters table, which gives element filter information for job. |
Schedule | Text | The schedule to
which a job is to be created. This is expressed in cron format. These are the supported cron strings:
|
Scheduled | Boolean | This column is for system use only and should not be changed. |
Disabled | Boolean | True/False flag to indicate whether this scheduled job will or will not trigger the adding of a job in the _Jobs table. If this is True, no new job will be created based on this scheduled job. |
Comment | Text | User defined comment. |
General information
This table is read through to decide if any new jobs will be added to the _Jobs table. The table is read through repeatedly after an interval of up to approximately a minute.
A new job in _Jobs is created if the Scheduled field is set to True. This happens if all the following criteria are met:
- The Disabled field is False. If this is True, the load process looks no further. A new job based on the current row of _ScheduledJobs is not created if Disabled is True.
- If Disabled is False, then
the Schedule field, a
cron
string, is checked for a match with the current time. If there is a match, the Boolean Scheduled field is then set to True. It is set to False otherwise. - If Scheduled is already True before this process begins, it is left with this value. Scheduled can only be True if a job was scheduled to run on an earlier occasion but had not yet had the chance to.
The new job takes the next available JobId in the _Jobs table, that is, the current maximum plus 1.
The JobType, JobObject and JobParameter values are copied into the fields of the same name of the _Jobs table.
After execution of a spawned job, a note is appended to the Comment field of _Jobs to indicate what has been loaded. After all spawned jobs have executed, the Scheduled field is set to False for all the rows of _ScheduledJobs from which the new rows in _Jobs were created in the current job run.
When the Load Jobs scheduler is enabled, there is an additional polling of the _ScheduledJobs table every 43 seconds. If the time matches for Scheduled Job to be created, a row is written to the _Jobs table to be executed.
If an error occurs during the load of the metadata or the execution of the job:
- The failed job receives an appropriate error code describing the failure. For example, Connection cannot be established, Incorrect metadata, Element does not exist.
- If a job fails, this has no direct effect on other jobs.