November 2001
A 21st Century Job Scheduler for
the 3000
In using iJobSched, MPE/iX batch
job scheduling meets the Internet
Review by John Burke
The Internet Job
Scheduler For MPE, iJobSched, available from OmniSolutions after a
recently concluded distribution and support agreement with iJobSched
author Stordahl-Consulting, is a full-featured job scheduler and
monitor for the HP e3000 and MPE/iX. iJobSched is not the first job
scheduler for MPE, but it just might be the first utility of any kind
written specifically for the HP e3000 that was developed with, and is
used with, products from the Open Source arena that have been ported
to MPE. iJobSched is a collection of CGI programs written in GNU g++
that are called from either the Apache/iX Web server or the WebWise
secure Web server. Because it is for the HP e3000, iJobSched has at
its heart an IMAGE database that contains all scheduling and job
execution information.
How it Works
A
batch initiator/monitor server job is continuously running in the
background. It periodically wakes up (user configurable), checks the
status of various job schedules, and initiates any ready jobs. The
background monitor job determines the successful execution of a job,
and thus whether certain dependencies have been satisfied, by the
execution of a supplied EOJ UDC or by the execution of a program
(what the EOJ UDC runs) that writes completion information in the
iJobSched database. One particularly nice feature of iJobSched is its
ability to define a processing day to begin and end at a
user-configurable time (see Figure 1).
The basic building blocks are Jobs
(Figure
3) and Schedule Calendars (Figure 2). Each job may have an
optional recovery option. Schedules (Figure 7) are built up from one
or more jobs that are to be executed in sequence after the previous
job has completed successfully. Schedules are related to schedule
calendars by specifying a run time and schedule calendar (Figure
8). Schedules may have optional recovery options and may have
file or schedule dependencies. A schedule will not start until all
dependencies are satisfied.
Schedules may be put on
HOLD status to temporarily delay the start of the
schedule. Furthermore, schedules can be FORCED to start
at other than the scheduled time.
System Requirements and
Performance
iJobSched was created and tested on
MPE/iX 6.0 with Apache/iX 1.3.4 and should work on any subsequent
version of MPE or Apache/iX (or WebWise). The author warned me that I
might find the CGI programs slow on a low-end machine. I did most of
my testing on a 927 over a DSL connection and, while certainly not
fast, performance was quite acceptable, on the order of navigating
through NMMGR VPlus screens.
Installation
The product is provided as a tar
ball which you can either FTP directly to your HP e3000 or indirectly
via a PC. Create an account, unpack the tar ball and run a script to
complete the installation. Start the background job, make a few
modifications to your Apache/iX or WebWise configuration file and you
are ready to start scheduling with iJobSched.
Documentation
The approximately 100-page
reference manual for iJobSched is downloadable in PDF format. It is
everything I look for in a manual. Since it is available as a PDF
document, it is searchable, though that in itself is probably not a
big deal since the manual contains a very complete Table of Contents.
The thing that really turns me on is that virtually every page
contains either a diagram or screen shot that shows you exactly how
iJobSched works. A minor annoyance: There is no online help. The
manual is so good this is not a real problem; I mention it only
because it is unusual these days not to have online help.
Lets take it out for
a spin
Figure 1 shows the Change Control Master screen and the
default values. Here you input the control values that determine how
iJobSched operates. Cycle Time is used to specify when a schedule
date begins. As noted above, this is a key feature of iJobSched. You
can define a business or processing day to be
anything you want. The default has the schedule day
beginning at 7:00 AM. The Pause Interval controls how often the
background job wakes up and checks the schedulers database. The
default value is 60 seconds. More often than that might have too
great an impact on system performance. A longer interval will, of
course, decrease the batch job monitors responsiveness. All in
all, I think the 60-second default will work well in most situations.
Finally, the History Retention
field specifies how long the run-time schedules for a schedule date
are retained. The default of 3 means that the current schedule
dates run-time schedules plus the previous two days
run-time schedules are available. Run-time schedules beyond the
retention period are deleted when the Cycle Time has elapsed and the
run-time schedules for a new schedule date are generated.
The schedule day is a calendar
event that associates schedules to a particular run date. It can be a
particular day of the week, weekdays, workdays, etc. Figure 2
shows the screen for a schedule day calendar I created and called EOM
for End Of Month. Notice how the last calendar date of each month is
checked. Schedule day calendars are created a calendar year at a
time. iJobSched makes it easy to schedule around holidays.
Jobs are defined independently of
schedules and may therefore be used in more than one schedule. A job
must be defined before it can be used in a schedule, but need not
exist (the JCL file) to be defined in an iJobSched schedule. Figures 3
and 4
show the Change Job and List Job pages, respectively. Job Name is a
unique identifier, Job Description is any meaningful descriptive text
and File Name is the actual job file in either MPE or HFS format.
There are three recovery options. Continue will allow any
remaining jobs in the schedule to run even if this job does not
complete successfully. The rest of the options are fairly
self-explanatory. List Job supports wildcarding on job name, a nice
touch.
Figure 5
shows the Add Schedule page. The Schedule Name is a unique identifier
and, as for jobs, the List Schedules page supports wildcarding. Figure 6
shows the process for adding a job to a schedule; in this case,
TESTJOBA to the schedule EOMPROCS. Figure 7 shows the listing for
all jobs in the schedule EOMPROCS. In Figure 8, the EOMPROCS schedule
is added to the EOM schedule calendar to execute at 11:50 PM. Thus,
the EOMPROCS schedule will be started at 11:50 PM on the last
calendar day of each month with TESTJOBA followed by TESTJOBB (on
successful completion of TESTJOBA), followed by TESTJOBC (on
successful completion of TESTJOBB)
iJobSched allows for more sophisticated job and schedule
dependencies than this simple example shows, but hopefully you get
the idea.
Conclusion
I found iJobSched to be a very interesting product worthy of
consideration if you are looking for a single system job scheduler.
It is easy to install and use, with the Web interface a particular
delight. The only possible drawback is the need for a Web server to
be running on the same machine as the scheduled jobs some
people might object to having a Web server on a production system.
This also means you cannot manage the schedules for multiple machines
from one instance of iJobSched. However, keeping in mind this is the
first release of the product, it is actually quite
impressive.
As
this Test Drive was being finished, a distribution and support
agreement was completed with OmniSolutions for the iJobSched product,
which is still being maintained and developed by Stordahl Consulting.
Contact OmniSolutions for details on support. An evaluation copy of
iJobSched, along with the reference manual, is available for download
at www.stordahl-inc.net
during the transition.
John Burke is editor of
the NewsWires net.digest and Hidden Value columns and has
managed HP 3000 systems for more than 20 years.
|