2 of 2 people found this helpful
For example, if you schedule a job for only Sunday but also have retro set as on and then the Control-M Server is powered off over the weekend and is restarted on Tuesday ... then the job will be scheduled (with it's normal constraints, e.g. from time and so on) to run on the Tuesday.
Tolerance is the setting by which a job can be seen as 'late' and can be used to skip a cyclic job that has not managed to run within the tolerance setting (e.g. 10 minutes).
RETRO --> orders the jobs retroactively if New Day was missed and the job didn't get ordered. (it can also impact jobs ordered with User Daily)
New Day is 8am
Job is scheduled to get ordered on Mon - Fri
Outage starts at 7:59am on Mon
Outage ends at 8:01 on Tuesday
So two New Days were missed.
Control-M starts at 8:01 and runs New Day once but moves the date forward 2 days.
Our RETRO job will be ordered twice.
The idea of RETRO comes from Mainframe (where Control-M started) and in my opinion never really makes sense for a DS world.
Be careful if you use it as there were some bugs (maybe fixed now) that due to DST change cause Control-M to accidentally order RETRO jobs twice on the day DST changes.
Tolerance is for Cyclic Jobs that use the "run at specific times" cyclic option.
The tolerance tells Control-M how much time can pass from the "specific time" where Control-M should still run that job.
Job is set to run at 7am and 8am with a tolerance of 15min.
If at 7am the job can't run (due to missing conditions, resources, agent unavailable, being held, control-m being down, workload policy restrictions, etc.) Control-M will attempt to run it until 7:15 (7am + 15min tolerance).
If by 7:15 it still can't run the job so it will skip the 7am run and wait for the next scheduled time which is 8am.
Tolerance of 0 means it will always attempt to run a missed cycle.
Thanks for the detail explanation .
I have a question for Tolerance part ..
Does the Tolerance Function is only applicable on Cyclic jobs ? or we can use the tolerance function for Normal OS job ?
Tolerance is required if you use the "Run At" parameter and is designed for cyclic functionality.
If you want to create a "valid time range" for non-cyclic jobs then use the From Time / To Time fields.
1 of 1 people found this helpful
Sorry, I just saw your second question today.
I agree with Mark, "Tolerance" is only for Cyclic Jobs that use the Run at Specific Times option and FROM/TO Time is effectively a tolerance for non-cyclic jobs.
If you want a non-cyclic job to have a tolerance you can use FROM/TO time.
I.e. if you want a non-cyclic job to run at 7am with a tolerance of 15min, set FROM TIME=0700 and UNTIL TIME=0715 and that effectively gives the job a 15min tolerance to run starting at 7am.
Alternatively you can set the job as Cyclic=Yes, with Run At Specific Times = 0700 (only one time) and Tolerance = 15min and that will also work. (but I think the FROM/TO is a better options for non-cyclic jobs)