Cycle ID

New feature iconThis feature is new for adTempus version 4.

The Cycle ID is used to track the execution cycle that job instances belong to.

For example, suppose that each day you run a set of jobs that are linked together using Job Conditions or Job Triggers. One of these jobs, "Data Copy," uses a Job Condition to ensure that it does not run until job "Data Extract" has run successfully. You want to make sure that when "Data Copy" looks to see if "Data Extract" has succeeded, it is looking at the instance that ran in today's cycle, and not the instance from yesterday's cycle.

In earlier versions of adTempus you would enforce this by using a rule that told adTempus to only look at instances of "Data Extract" that ran since "Data Copy" last ran. This rule works in most cases, but can cause problems if jobs get run out of sequence or out of cycle.

The Cycle ID concept allows you to define a unique identification tag that gets assigned to all job instances run during a particular time period. That way you can easily tell the "Data Copy" job to only look at instances of "Data Extract" from the same cycle, without having to rely on comparing execution times.

How the Cycle ID is Assigned to a Job

When a job is submitted for execution, adTempus sets the Cycle ID for the instance to the current Cycle ID defined for the job's Cycle Scope (see next section).

The Cycle ID is simply a timestamp in the form yyyy-MM-dd HH:mm:ss.

Cycle Scopes

When looking for the Cycle ID, adTempus starts with the Job Group to which the job belongs and then works its way up through the group hierarchy, stopping at the first group that has a Cycle ID configured. This means that you can have different Cycle IDs active for different "scopes" as defined by job groups. To define a new scope, simply configure the Cycle ID options in the group that represents the base of the scope.

For example, suppose that under the root job group you have two main Job Groups, "Data Warehouse Updates" and "Customer Data Processing." Each group's jobs are related to a particular business area and run on different processing cycles. Therefore you do not want to use the same Cycle ID for both groups, because resetting the cycle ID at the beginning of one group's cycle would change the Cycle ID in the middle of the other group's cycle.

To create two different Cycle ID scopes, simply enable the Cycle ID options (in the Job Group properties) for each of the groups. All jobs that run in a group (or any of its descendent groups) will get the same Cycle ID.

If all your jobs work as part of the same daily cycle, you can just set the Cycle ID options for the root job group.

How to Update the Cycle ID

For the Cycle ID to be useful, it has to be updated to a new value at the start of each cycle. To do this, identify the job that runs first in your cycle and check the Update the Cycle ID for this job's scope when the job runs option on the Trigger page of the job's properties. Each time this job runs, a new Cycle ID will be generated for the scope that contains the job.

Viewing the Cycle ID for an Instance

To view the CycleID for an active or completed job instance, you can display the properties for the instance. The Cycle ID will be listed on the Job page of the properties window.

The Cycle ID is also available as a column in the History panel, Job Monitor view, and Failed Jobs view. If it is not already displayed, right-click an existing column heading to bring up a list of the available columns, and check the Cycle ID option.