AJS Features Outmatch Base Scheduler
In a head-to-head comparison, Advanced Job Scheduler crushes the base scheduler. Why you should upgrade.
Illustration by Carl Wiens
I remember back in the old IBM* System/38* days when companies had to write their own job-scheduler programs or buy third-party scheduling packages. (Whew, I'm really showing my age now.) Many shops would have this enormous CL program with all of the jobs that were to run wrapped in a conditional if statement for each night of the week. Do I need to go any further to say it was a nightmare?
With the introduction of the base job scheduler inside IBM OS/400*, scheduling jobs became much easier to maintain. Since its inception, the base job scheduler has been improved to provide more ways to schedule batch jobs. And when I say more ways, I just mean the frequency in which a job can be scheduled. From there, it pretty well stayed status quo until V3R6 when the 5722-JS1 IBM Advanced Job Scheduler for i5/OS* (AJS) hit the scene. AJS let customers schedule more complex job flows, including more ways to schedule a job, dependencies, report distribution and more. It would be futile for me to try to list every feature of AJS and see if the base scheduler offers matching features, so I'm only going to give the highlights.
Both programs can schedule jobs on specified days of the week, month and year. They both can be set up to not run on certain days, such as holidays. But here are some of the scheduling capabilities of AJS that the base scheduler lacks:
- Schedule a job as many as 10 specific times per day. A job could be scheduled to run at 9 a.m., 11 a.m., 2 p.m. and 6 p.m.
- Schedule a job every specified number of minutes during a time range. For example, you could run a job every 30 minutes between 6 p.m. and 7 a.m.
- Create a single calendar of holidays or omit dates and use in multiple jobs. AJS holiday calendars also have the capability to run the job on a different day - for instance, the next workday. You can set up holidays or exceptions, like making the third Friday of the month a holiday from certain jobs.
- Base schedule on a fiscal calendar.
- Schedule a job every other week, or every two weeks, etc.
- Schedule jobs to run on the same day every year. You could schedule a job to run every April 15 to remind you to file your taxes.
- Schedule for the first or last working day of the month.
- Schedule for specific days of the month. You could schedule a job to run on the 3rd and 18th of every month.
Dependencies determine whether a job can run or when to run it. I'd give you the types of dependencies that are part of the base scheduler, but there aren't any. Here's the list of AJS dependencies:
Job groups - A job group is a group of jobs that will run single threaded in a predefined sequence. The job group can be scheduled and subordinate jobs within the group can be defined to run only on certain days of the week. If a job in a job group doesn't complete normally, the job group will stop. Job groups can be restarted anytime.
Job dependencies - Job dependencies offer more flexibility than a job group. Job dependencies can have any number of jobs defined that must run before a job can be submitted or any number of jobs that will run after a job has completed.
Resource dependencies - A job can be dependent on the existence or nonexistence of resources (objects, hardware configuration statuses, IFS objects) on the system. For instance, the backup job could depend on the availability of a tape drive, or a job may depend on a file to exist and contain records before it will start.
Active dependencies - An active dependency is like a contingency, setting rules that won't allow certain jobs to run at the same time. For instance, you may not want the backup job to start if the daily processing jobs are still running.
Alternate job dependencies - In case a job fails, you may want to run another job.