The Cantara Integration Platform provides a
powerful solution for creating RESTful services for Oracle JD Edwards
EnterpriseOne as well as a comprehensive platform of mobile applications and
client software development kits for mobile and desktop applications.
What you may not know is that the solution
also incorporates a powerful batch scheduling tool at no extra cost. The
scheduling platform overcomes a number of key deficiencies in the standard JD
Edwards EnterpriseOne batch scheduler and at a price point that makes
deployment an easy decision.
So, what are the key pain points of the JD
Edwards EnterpriseOne batch scheduler and how does the Cantara Advanced Job
Scheduler overcome these?
Dependency Management
There are only two ways to deal with
inter-job dependencies with the standard JD Edwards scheduler and neither of
them are very appealing. The first, not so safe way, is to just make sure that
jobs are scheduled far enough apart that the first job is finished before the
second one starts. Of course, there is no guarantee that the first job will not
be held up unexpectedly and the second job will just kick off any way.
The second, more common method, is to
schedule all dependent jobs in a single threaded queue. Unfortunately, this is
a very inefficient method and leads to extended batch processing windows,
especially when there are multiple jobs involved.
The Cantara Advanced Job Scheduler has a very
clever way of overcoming this problem and making the overall batch schedule
much easier to manage. The first element is to enable batch jobs to be
scheduled in groups with dependency definition within the group. The second
element to the solution is the ability to define dependencies between groups.
Let’s look at these two elements in more detail.
Group Scheduling
Generally, day end processing incorporates
several closely related batch jobs that must be appropriately sequenced. A good
example of this the manufacturing day end batch jobs. Within the Cantara
scheduler can you can define a manufacturing day end group and place within
this the manufacturing accounting and work order commitments repost batch jobs.
You can define the group as being sequential on success, which basically means
that each job within the group must complete before the next job is submitted
in the order specified. What this means that rather than having to schedule 5
batch jobs independently, the user only needs to schedule the group. If any of
the jobs fails then the group will stop processing and a notification email
will be sent to the designated monitor for that group. Cantara also supports
parallel submission within a group if dependency is not an issue.
Group Dependencies
On top of group scheduling, Cantara then
allows the definition of inter-group dependencies. So, to use the manufacturing
account group example, you can also define a GL batch post group and make this
dependent on the completion of the manufacturing accounting group. Cantara
supports multiple dependency types include submit on success, submit on
completion (even in the prior group has errored) or submit on start which means
that group b won’t start before group a but can run in parallel.
The added benefit of inter-group
dependencies is that a single group can be dependent on the completion of an
unlimited number of other groups. In the case of GL batch post, we may require
that manufacturing accounting, sales day end and AR/AP processing have been
completed before the GL batch post is submitted. This enables users to schedule
the three prior groups to run in parallel thus maximizing system utilization
and minimizing the window within which the day end processing must run.
Schedule Monitoring
The JD Edwards schedule does not contain
any effective method of schedule monitoring and thus organizations generally must
revert to third party tools that monitor the JD Edwards database. This approach
is complicated and not easily repeatable as the parameters that constitute
failure tends to differ between jobs.
The Cantara Advanced Job Scheduler has a
simple monitoring and notification system that allows users to define
notification triggers and to incorporate standard enterprise system monitoring
tools if required. Not only does Cantara monitor the state of the submitted
batch job but it also tracks the run time of the scheduling group. Users can
define a minimum, target and maximum run time for each group and can decide if
a group executing outside of these tolerances constitutes a failure. The
maximum run time is an easy metric and generally indicates that a batch job has
encountered a problem either through incorrect data selection, invalid
processing logic that has caused an infinite loop or system performance
problems. As soon as the maximum run time is exceeded a notification is sent
the group monitor informing of the issue and Cantara can also cease execution
of the group in this instance based on group configuration. The minimum run
time threshold is utilized to ensure that a scheduled group has completed some
data processing. There’s nothing worse that assuming the batch job has
processed successfully only to find that all the report displays is a message
stating “No Data Selected”.
In addition to this, enterprise monitoring tools
can interrogate the state of the batch scheduler and check for failed groups
either through REST services published by Cantara or direct access to the
Cantara scheduler database if preferred.
Job Output from Cantara Console or via notification
Cantara allows access to the PDF or CSV
output of JD Edwards batch jobs directly from the Cantara Administration
Console. In addition, you can choose to have these outputs emailed to one or
more subscribers automatically on job completion.
Restarting the Scheduler
How many times has an organization stop
their batch scheduler for a period of time, forgotten to purge the missed jobs,
restarted the scheduler and then seen their batch queue fill with jobs that are
not required. The Cantara Advanced Job Scheduler provides a simple method to
deal with this situation. There are two options for each scheduled group. The
first is to just skip the execution until the next scheduled trigger point and
the second is to submit the group once immediately before then resuming the
normal schedule. As Cantara still maintains dependencies between groups it
makes stopping and starting the scheduler a painless experience.
Exclusion periods
One common requirement for organizations is
to prevent jobs like GL batch post from running whilst month end processing is
being carried out. For most, this requires the schedule to be manually adjusted
to disable the jobs and then another adjustment to reenable them which can be a
tedious process. The Cantara scheduler allows for exclusion calendars to be
defined and applied to multiple scheduling groups. In simple terms, you may
choose to have a batch post job run every 15 minutes and then exclude execution
for three days during month end processing so that it can be run manually as
required.
Processing Option overrides and Variables
A common headache for users of the JD
Edwards scheduler is the requirement to actively maintain processing options
and data selection that incorporates things like processing date, current
financial period, or multiple changing business units. The Cantara scheduler
overcomes this limitation with a couple of powerful features. The first is that
the Cantara scheduler can override processing options and data selection on
report submission. This allows users to define a single version within JD
Edwards and then reuse that version multiple times, with different processing
options and data selection, within the Cantara scheduler. So, when changes are
required, especially to data selection, it is no longer a requirement for the
version to be promoted through multiple environments and for a JD Edwards
package to be built and deployed for those change to take effect.
The second feature is the use of variables
within processing options, report interconnects and data selection. Let’s say
for example that you have multiple reports which all require the current
financial period to be defined. Within Cantara you would define a variable that
equates to the current financial period and then apply this variable to each of
the reports that requires it. Now a change to the variable value is
automatically applied to all reports that utilize that variable making period
close and changes a simple task. In addition, Cantara variables support
basically calendar arithmetic. This allows users to define data selection and
processing option dates that are calculated from today’s date. This means you
can now set a report processing date to be Today minus or plus any number of
days.
Complex Scheduling Patterns
With the Cantara scheduler, a wide range of
scheduling patterns can be achieved. No longer are you limited to a static
interval based of a start time. You can choose simple patterns like run every
10 minutes or 24 hours up to far more complex patterns such as run at 5:30pm
every Mon, Wed and Fri and only in the months of October to December. In
addition, Cantara is JD Edwards date pattern aware which means jobs can be
scheduled based on the financial date pattern of any company. You may wish to
schedule jobs to run on the last day of the period or the first weekday of the
period or the last Friday of every quarter. All of these options are possible
with the Cantara scheduler and, combined with the advanced dependency
management, an extremely efficient and robust job schedule can be defined for
any organization.
High Availability and Load Balancing
A major pain point for organizations that
are required to meet strict service level agreements and availability targets
is the fragility of the JD Edwards scheduler. The Cantara Advanced Job
Scheduler overcomes this issue in two ways. Firstly, the Cantara Integration
Platform supports horizontal scaling which means that multiple Cantara
instances can run the same schedule at the same time. Thus, if a single Cantara
instance fails the schedule will continue to run as expected. Secondly, the
Cantara Integration Platform supports load balancing and fail over between JD
Edwards batch servers. No longer is the JD Edwards schedule required to run on
a single JD Edwards enterprise server and the processing can be spread across
multiple servers. If any single batch server fails, Cantara automatically
removes it from the group and continues processing on the remaining servers. In
addition, Cantara batch server groups are self-healing so if it detects that
the batch server has resumed operation it will be automatically included back
in the group.
Multiple Environments
The Cantara scheduler allows scheduling
across multiple JD Edwards environments. For example, you may choose to define
a full job schedule against the CRP environment before changing over to the UAT
and then finally the production environment. Alternatively, you may choose to
have a mixed schedule with some jobs running in production and other running in
non-production. All of these options are available with the Cantara scheduler.
Non-JD Edwards Scheduling
Cantara provides a flexible extension
framework which can be included in the job schedule. This means that jobs that
are not part of JD Edwards can be incorporated into the schedule, including
dependencies. Out of the box Cantara comes with extensions for script execution
(for all platforms) and AIS service execution. An example of where this is
useful would be to kick of ETL jobs that extract data into a data warehouse
once the day end processing has completed. Another option would be to populate
Z Tables within JDE prior to executing the import batch job. Extensions can be
written for any number of different applications and situations and therefore
greatly extend the reach and flexibility of the Cantara Advanced Job Scheduler.
No comments:
Post a Comment