_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:

  • *: wildcard for every minute, hour, ...
  • */n: interval of n minutes, hours, ...
  • m: single point in time. For example, minute m, hour m, ...
  • m,n,o: list of single points in time
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.